二、ThinkPHP基本结构

ThinkPHP框架目录结构解析及其重要性 在PHP开发领域,ThinkPHP作为一款流行的开发框架,以其简洁的语法、丰富的功能和灵活的扩展性,受到了广大开发者的青睐。本文将对ThinkPHP框架的目录结构进行详细解析,并探讨其在框架设计中的重要性。如果我们将目光投向这方面的话,它还使得项目的代码结构更加透明和可理解,便于团队成员之间的协作和沟通。:清晰的目录结构使得开发者能够快速定位到所需的文件,减少了在项目中搜索文件的时间。如果我们将目光投向这方面的话,每个目录都有其特定的功能和意义,使得开发者能够更快地理解和适应项目的代码结构。 阅读详情

1、ThinkPHP目录结构

重点目录和文件
application-------------------业务代码(MVC所在目录)
config------------------------配置文件
public------------------------应用web虚拟主机指向的目录
route-------------------------路由定义目录
runtime-----------------------框架自动生成的目录(在Linux中要设置可写权限)
thinkphp----------------------thinkphp核心代码
vendor------------------------第三方类库
composer.json-----------------composer配置文件
think-------------------------think提供的命令行工具

2、thinkphp命名规范

1、目录使用小写加下划线
2、类的文件名以命名空间定义,且命名空间的路径和类库文件所在目录一致
3、方法和属性命名使用驼峰命名法
4、常量以大写字母加下划线命名
5、配置参数以小写字母加下划线命名
6、环境变量定义以大写字母加下划线命名
7、数据表和字段采用小写加下划线命名

3、路由

3.1路由介绍

thinkphp有两种路由规则

1、pathinfo模式
2、自定义路由模式
如设置了自定义路由,则使用自定义路由的方式访问,如没有设置自定义路由,则默认使用pathinfo模式访问

3.2隐藏index.php文件

1、打开apache的重写模块
LoadModule rewrite_module modules/mod_rewrite.so

2、虚拟主机中允许重写

<VirtualHost *:80>
	# 设置网站目录
	DocumentRoot "${INSTALL_DIR}/www/tp5.1/public"
	# 设置网站域名
	ServerName www.tp.com
	# 错误日志
	ErrorLog "${INSTALL_DIR}/www/tp5.1/logs/error.log"
	# 成功日志
	CustomLog "${INSTALL_DIR}/www/tp5.1/logs/access.log" combined
	# 设置目录访问权限
	<Directory D:/wampserver/www/tp5.1/public>
	    # 指定目录启用
	    Options Indexes FollowSymLinks 
	    # 是否允许使用.htaccess文件
	    AllowOverride All (更改此处)
	    # 访问目录权限
	    Require all granted
	</Directory>
</VirtualHost>

3、修改入口文件(public/.htaccess)

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

3.3路由相关配置

1、强制路由 在config/app.php中配置文件中设置
'url_route_must' => true,
//会强制使用路由,这种方式下面必须严格给每一个访问地址定义路由规则

2、路由缓存

'route_check_cache' => true
//开启后会提高性能,但在开发阶段不要开启

3、完全匹配

'route_complete_match'   => true,

3.4定义路由

3.4.1 路由格式
Route::请求方式(‘路由表达式’,function());
or
Route::请求方式(‘路由表达式’,‘模块名/控制器名/方法名’);
//定义好路由控制后,原pathinfo就失效了

Route::请求方式(‘路由表达式’,‘模块名/控制器名/方法名’) -> name('name');
//为路由设置别名

3.4.2 请求类型

Route::get(); 		// 定义GET请求路由规则    查询
Route::post();  	// 定义POST请求路由规则   添加
Route::put(); 	    // 定义PUT请求路由规则    修改
Route::delete();    // 定义DELETE请求路由规则 删除
Route::any(); 		// 所有请求都支持的路由规则  框架提供 不推荐

3.4.3 路由参数

//必选参数
Route::请求方式(‘路由表达式/:参数’,匿名函数);
//可选参数
Route::请求方式(‘路由表达式/[:参数]’,匿名函数);
例:
Route::get('path/[:name]',function($name){
	return 'my name is '.$name;
});

3.5路由分组

Route::group('group_name',function(){
	Route::get('name1','path1');
	Route::post('name1','path1');
	Route::delete('name1','path1');
})
//分组路由嵌套
Route::group(['method' => 'get'],function(){
	Route::group('group_name',function(){
		Route::get('name1','path1');
		Route::post('name1','path1');
		Route::delete('name1','path1');
	})
})

4、控制器

4.1、相关配置

'controller_suffix' => false,
// 表示默认情况下,控制器无特殊后缀。例如 Index控制器,文件名为Index.php

'controller_suffix' => 'Controller',
// 表示控制器以Controller为后缀。例如Index控制器,文件名为IndexController.php

4.2命令行创建分组和控制器

php thinlk bulid --moudle name      //创建分组
php think make:controller --plain module_name/controller_name      //创建控制器

4.3、开启调试模式

方法一:
'app_debug' => true,

方法二:(推荐方法)
在根目录创建.vue文件

APP_DEBUG=true

4.4、前置操作

设置beforeActionListh属性可以指定某个方法作为其他方法的前置操作,数组键名为需要调用的前置方法名,无值的话为当前控制器下所有方法的前置操作
public $beforeActionList = [
	'before' => ['fun1','fun2'];
]

public function before(){
	return 'I'm before';
}
public function fun1(){
	return 'I'm fun1';
}
public function fun2(){
	return 'I'm fun2';
}

4.5、页面跳转

thinkphp的 \think\controller 类内置了两个跳转方法success和error,用于页面跳转提示。
public function fun(){
	return $this -> success('success',url('route	'));
}
thinkPHP5.0的框架简介、安装及文件目录结构 一、ThinkPHP框架简介 ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进... 阅读详情

相关推荐

ThinkPHP5目录结构

FastAdmin是一款基于ThinkPHP+Bootstrap的快速后台开发框架。

分享it知识! 1157

一、ThinkPHP架构

对于一个HTTP应用来说,从用户发起请求到响应输出结束,大致的标准请求流程如下: 载入Composer的自动加载autoload文件 实例化系统应用基础类think\App 获取应用目录等相关路径信息 加载全局的服务提供provider.php 设置容器实例及应用对象实例,确保当前容器对象唯一 从容器中获取HTTP应用类think\Http 执行HTTP应用类的run方法启动一个HTTP应用 获取当前请求对象实例(默认为app\Request继承think\Request)保存到容器 执行think\Ap

苏迪的博客 2166

ThinkPHP框架功能与实践指南

ThinkPHP是一个快速、简单的PHP开发框架,秉承“大道至简”的设计理念,旨在为开发者提供更加简单、快速、高效的开发体验。作为中国最受欢迎的PHP框架之一,ThinkPHP以其高度的定制化、稳定的性能和丰富的功能模块受到广大开发者的喜爱。ThinkPHP作为一个现代的PHP框架,提供了强大的路由系统和数据库操作支持。本章节将深入探讨如何设计和应用自定义路由系统,以及如何简化数据库操作实现高效数据交互。在Web开发中,路由负责将外部请求映射到应用程序内部的处理程序。

weixin_35754676的博客 1560

认识ThinkPHP框架

认识ThinkPHP框架

天天学安全专属博客 1863

K-近邻算法: k-nearest neighbor classification (kNN) 详细介绍

@创建于:2020.04.09 @修改于:2020.04.09,2024.06.22 文章目录1、kNN介绍2、k近邻法的三要素详解2.1 距离度量2.2 k值的选择2.3 分类决策规则3、k近邻法的实现:kd树4、Python实现过程5、优缺点6、常见问题 1、kNN介绍 kNN是一个基本而简单的分类算法,作为监督学习,那么KNN模型需要的是有标签的训练数据,对于新样本的类别由与新样本距离最近的k个训练样本点按照分类...

chenhepg的博客 9万+

TLSv1.0与TLSv1.1安全漏洞深度解析与实战修复指南

本文深度解析TLSv1.0与TLSv1.1的安全漏洞,包括POODLE和BEAST攻击原理,并提供实战修复指南。通过禁用老旧协议、配置安全加密套件和网络层防护措施,有效提升系统安全性。文章还针对无法立即升级的场景,给出了补偿性防御方案,帮助管理员全面应对传输层安全风险。

weixin_29322855的博客 206

ThinkPHP 详细介绍

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国...

Lansonli(蓝深李)的博客 2340

ADC噪声参数博弈论:为何24位ADC的有效分辨率可能不如16位?

本文深入探讨了ADC噪声参数的核心矛盾,揭示了24位ADC有效分辨率可能不如16位ADC的根本原因。关键在于跳出单纯比较位数的误区,转而关注输入参考噪声这一绝对指标。文章通过分析参考电压对满量程范围和噪声模型的影响,阐述了动态范围与最小可测信号之间的取舍逻辑,为工程师提供了基于系统实际需求的ADC选型与噪声评估框架。

snow3的博客 704

【ThinkPHP框架教程·Part-02】开发规范和目录结构

本章节我们来学习一下 ThinkPHP6.0 的编码开发规范以及框架的目录结构。

实用技术干货分享⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄对您有用的话请点个关注吧~ 1688

12V INPUT电源电路设计中的关键保护机制解析【精简】

本文深入解析了12V INPUT电源电路设计中不可或缺的关键保护机制。针对常见的电源反接、过压及浪涌等风险,文章详细拆解了PMOS防反接、TVS过压钳位、OVP芯片关断以及快速断电电路等核心防护方案的设计原理、选型要点与实战优化技巧,旨在帮助工程师构建可靠、经济的电源前端防御体系。

weixin_29158047的博客 228

逆向工程实战:如何一步步破解京东APP的sign签名算法(附Frida脚本)

本文详细解析了京东APP的sign签名算法逆向工程实战,通过Frida脚本动态分析Java层和Native层的多层签名机制,揭示商业应用的加密协议设计。文章提供了完整的逆向工程方法论与工具链,帮助开发者深入理解移动应用安全防护体系,提升安全防御能力。

weixin_28622215的博客 916

ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器

上一篇我们学习了Windows下Nginx+PHP5+ThinkPHP_3.2.1的安装与配置,现在来要理清ThinkPHP的目录结构及访问规则,创建第一个控制器,弄懂控制器的访问规则,修改惯例配置;ThinkPHP的默认模块名称是“Home”,也就是说如果你在浏览器地址栏中输入“http://localhost/index.php”的话,默认访问的是“http://localhost/index.php/Home”;修改方法:用文本编辑工具打开“F:\PHP\ThinkPHP\Conf\conventio

无知人生,记录点滴 4万+

工业异常检测评价指标(I-AUROC、PRO等)

模型评价指标:TPR、FPR、Recall、ROC、AUC、AUROC、IoU、PRO、AUPRO等

qq_1532145264的博客 7431

ThinkPHP 的目录结构

ThinkPHP 的目录结构非常清晰和容易部署。大致的目录结构如下,以项目为基础进行部署。┎━ThinkPHP 框架系统目录┃ ┝ ThinkPHP.php 系统公共文件┃ ┝ Common 公共文件目录┃ ┝ Tpl 框架系统模版目录┃ ┝ Lang 系统语言包目录┃ ┝ PlugIns 公共插件目录┃ ┗ Lib 系统基类库目录┃  ┝ Think 系统运行库(必须)┃  ┝ Com

besily的专栏 1829

[deprecated]第二章:DRM 框架概述:2.2 GEM显存管理概述

本文深入分析了Linux DRM子系统中GEM(Graphics Execution Manager)的显存管理机制。GEM通过核心数据结构drm_gem_object抽象显存buffer,结合drm_vma_offset_manager和drm_mm实现高效的地址空间分配与管理。该系统支持显存动态分配/回收、用户空间mmap映射、多进程访问隔离和跨设备共享等关键功能,并通过引用计数和同步机制确保并发安全。

图形/计算GPU的驱动与虚拟化技术分享园地 2538

Open3D 点云数学形态学滤波(Python版本)

Open3D 点云数学形态学滤波(Python版本)

dayuhaitang1的博客 1396

ThinkPHP 目录结构

2.0ThinkPHP 目录结构 在前面的博客中,通过一个简单的案例向大家演示了在ThinkPHP 框架下开发的大致法程,本篇博客将对ThinkPHP框架目录结构进行详细讲解。 要想在项目中熟练地使用ThinkFPHP框架.首先需要了解ThankPHP框架的目录结构 表2-1 ThinkPHP框架目录结构 表2-1 ThinkPHP框架目录结构 ...

dice7578的博客 597

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

thinkphp 目录结构

初始的目录结构如下: ~~~ www WEB部署目录(或者子目录) ├─application 应用目录 │ ├─common 公共模块目录(可以更改) │ ├─module_name 模块目录 │ │ ├─config.php 模块配置文件 │ │ ├─common.php ...

weixin_30597269的博客 318

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

thinkphp目录结构

目录结构 application 应用目录(可设置)是整个网站的核心 ———index前台目录 ————————controller控制器 ————————model数据模型 ————————view页面 ———admin后台目录 extend 扩展类库资源 public静态资源和入口文件 ——static 存放静态资源css、js、img、 —...

bendan233的博客 578

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

thinkphp6目录结构

thinkphp6目录结构简介单应用模式多应用模式默认应用文件 简介 相对于5.1来说,6.0版本目录结构的主要变化是核心框架纳入vendor目录,然后原来的application目录变成app目录。 6.0支持多应用模式部署,所以实际的目录结构取决于你采用的是单应用还是多应用模式,分别说明如下。 单应用模式 默认安装后的目录结构就是一个单应用模式 www WEB部署目录(或者子目录) ├─app 应用目录 │ ├─controller 控制器目录 │ ├─model

徊忆羽菲 2775

ThinkPHP学习(二理清ThinkPHP的目录结构及访问规则,创建第一个控制器

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上一篇:ThinkPH

hftyfdg的博客 454

用phpstudy部署thinkphp / 使用教程

(一)安装顺序: (1)在phpstudy中安装php7.1+版本,将路径添加到系统环境变量PATH,cmd下测试是否安装成功: php -v (2)安装composer:Wondows 平台上,打开 https://www.phpcomposer.com/: 下载 setup.exe 安装程序,一步步安装即可,中途需要取php.exe路径,此后一直保持默认选项。 cmd下测试: (3)安装th...

Quest_sec的博客 6960

thinkPHP目录结构

目录结构如下: project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ │ ├─config.php 模块配置文件 │ │ ├─common.php 模块函数文件 │ ...

weixin_30527551的博客 286

对于ThinkPHP入口文件以及模块目录结构的学习

ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。 应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。 入口文件定义 入口文件主要完成: 定义框架路径、项目路径(可选)定义调试模式和应用模式(可选)定义系统相关常量(可选)载入框架入口文件(必须) 入口文件中支持定义的一些系统常量:

HOXJUN的博客 5289

ThinkPHP目录结构详解及其重要性

它清晰、合理、易于理解和维护的目录结构不仅提高了开发效率和代码质量,也降低了后期扩展和维护的难度。因此,对于使用ThinkPHP进行开发的开发者来说,深入了解其目录结构并遵循其规范进行代码编写是非常重要的。在PHP框架的海洋中,ThinkPHP以其简洁、高效和易用性赢得了众多开发者的青睐。而一个框架的目录结构,不仅体现了其设计的合理性,也直接影响到开发者的使用体验和项目的维护效率。本文将对ThinkPHP的目录结构进行详细的解析,并探讨其重要性。

x3088的博客 628

thinkphp的目录结构

├─ThinkPHP.php 框架入口文件 ├─Common 框架公共文件 ├─Conf 框架配置文件 ├─Extend 框架扩展目录 ├─Lang 核心语言包目录 ├─Lib 核心类库目录 │ ├─Behavior 核心行为类库 │ ├─Core 核心基类库 │ ├─Driver 内置驱动 │ │ ├─Cache 内置缓存驱动 │ │ ├─Db 内置数据库驱动 │ │ ├─

u011409389的专栏 949
上一篇: 一、ThinkPHP环境搭建(wamp)
下一篇: 三、ThinkPHP的请求和响应
10086love10010
博客等级 码龄10年 0粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值