-
ThinkPHP框架
1.TP框架基础
1.1目录结构
1.project 应用部署目录 2.├─application 应用目录(可设置) 3.│ ├─common 公共模块目录(可更改) 4.│ ├─index 模块目录(可更改) 5.│ │ ├─config.php 模块配置文件 6.│ │ ├─common.php 模块函数文件 7.│ │ ├─controller 控制器目录 8.│ │ ├─model 模型目录 9.│ │ ├─view 视图目录 10.│ │ └─ ... 更多类库目录 11.│ ├─command.php 命令行工具配置文件 12.│ ├─common.php 应用公共(函数)文件 13.│ ├─config.php 应用(公共)配置文件 14.│ ├─database.php 数据库配置文件 15.│ ├─tags.php 应用行为扩展定义文件 16.│ └─route.php 路由配置文件 17.├─extend 扩展类库目录(可定义) 18.├─public WEB 部署目录(对外访问目录) 19.│ ├─static 静态资源存放目录(css,js,image) 20.│ ├─index.php 应用入口文件 21.│ ├─router.php 快速测试文件 22.│ └─.htaccess 用于 apache 的重写 23.├─runtime 应用的运行时目录(可写,可设置) 24.├─vendor 第三方类库目录(Composer) 25.├─thinkphp 框架系统目录 26.│ ├─lang 语言包目录 27.│ ├─library 框架核心类库目录 28.│ │ ├─think Think 类库包目录 29.│ │ └─traits 系统 Traits 目录 30.│ ├─tpl 系统模板目录 31.│ ├─.htaccess 用于 apache 的重写 32.│ ├─.travis.yml CI 定义文件 33.│ ├─base.php 基础定义文件 34.│ ├─composer.json composer 定义文件 35.│ ├─console.php 控制台入口文件 36.│ ├─convention.php 惯例配置文件 37.│ ├─helper.php 助手函数文件(可选) 38.│ ├─LICENSE.txt 授权说明文件 39.│ ├─phpunit.xml 单元测试配置文件 40.│ ├─README.md README 文件 41.│ └─start.php 框架引导文件 42.├─build.php 自动生成定义文件(参考) 43.├─composer.json composer 定义文件 44.├─LICENSE.txt 授权说明文件 45.├─README.md README 文件 46.├─think 命令行入口文件
1.2配置文件
1.框架主配置文件(惯例配置文件) thinkphp/convention.php
2. 应用公共配置文件 application/config.php, application/database.php 对整个应用生效
3.模块配置文件 application/模块目录/config.php 对当前模块生效
1.3函数文件
1.框架助手函数文件 thinkphp/helper.php
2.应用公共函数文件 application/common.php
3.模块函数文件 application/模块目录/common.php
一般不建议直接修改thinkphp/helper.php
2.请求的生命周期
3.TP框架中的控制器
3.1控制器的后缀
打开配置文件application/config.php,有如下配置
'controller_suffix' => false,
如果需要进行设置,可以设置为(我们不需要这么设置)
'controller_suffix' => 'Controller',
表示控制器以Controller为后缀。例如Index控制器,文件名为IndexController.php
3.2控制器的定义
1.表示控制器以Controller为后缀。例如Index控制器,文件名为IndexController.php
定义位置:application/模块目录/controller/目录下
命名规则:控制器名称(首字母大写) + (控制器后缀,默认没有) + .php
默认:Index控制器 Index.php
2.编写控制器
声明命名空间 namespace app\模块目录名\controller
引入控制器基类(可选) use think\Controller; think是命名空间 Controller是基类控制器
定义当前控制器类,继承控制器基类(可选)
3.3框架的命名空间
命名空间本身是PHP就有的,用来防止命名冲突问题的。
TP框架中的命名空间,通常和目录挂钩。
原因:TP中的自动加载机制,会将类的命名空间作为加载路径的一部分。
1. 声明命名空间 使用namespace关键字
2.引入指定的类 使用use关键字 命名空间\类名称
3.完全限定式访问 在使用类时,\完整命名空间\类名称(继承和实例化)
如果一个类没有命名空间,使用 \类名
4.命令行创建模块目录及文件
4.1命名行创建模块目录
通常可以通过以下命令,自动生成模块目录
php think build --module 模块名
4.2
php think make:controller 模块名/控制器名
php think make:controller 模块名/控制器名 --plain
4.3
php think make:model 模块名/模型名