ThinkPHP5
目录:
project 应用部署目录
├─application 应用目录(可设置)
│ ├─common 公共模块目录(可更改)
│ ├─index 模块目录(可更改)
│ │ ├─config.php 模块配置文件
│ │ ├─common.php 模块函数文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ └─ ... 更多类库目录
│ ├─command.php 命令行工具配置文件
│ ├─common.php 应用公共(函数)文件
│ ├─config.php 应用(公共)配置文件
│ ├─database.php 数据库配置文件
│ ├─tags.php 应用行为扩展定义文件
│ └─route.php 路由配置文件
├─extend 扩展类库目录(可定义)
├─public WEB 部署目录(对外访问目录)
│ ├─static 静态资源存放目录(css,js,image)
│ ├─index.php 应用入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于 apache 的重写
├─runtime 应用的运行时目录(可写,可设置)
├─vendor 第三方类库目录(Composer)
├─thinkphp 框架系统目录
│ ├─lang 语言包目录
│ ├─library 框架核心类库目录
│ │ ├─think Think 类库包目录
│ │ └─traits 系统 Traits 目录
│ ├─tpl 系统模板目录
│ ├─.htaccess 用于 apache 的重写
│ ├─.travis.yml CI 定义文件
│ ├─base.php 基础定义文件
│ ├─composer.json composer 定义文件
│ ├─console.php 控制台入口文件
│ ├─convention.php 惯例配置文件
│ ├─helper.php 助手函数文件(可选)
│ ├─LICENSE.txt 授权说明文件
│ ├─phpunit.xml 单元测试配置文件
│ ├─README.md README 文件
│ └─start.php 框架引导文件
├─build.php 自动生成定义文件(参考)
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行入口文件
app(应用目录)->index(模块)->controller(控制层)
->command.php(控制台配置文件)【用命令行执行时执行此配置】
->common.php(项目的公共文件)【编写的通用函数可以写于此】
->config.php(应用的配置文件)
->database.php(数据库配置文件)
->route.php(路由文件)【要对url美化,可修改这个文件】
->tags.php(应用行为扩展文件)【有很多钩子,可对框架扩展,而不需要修改框架本身的源码,需要在某一个钩子上注册某一些函数或注册某些行为,通过行为来改变框架的执行流程】
extend(下载第三方库使用)
public(网站根目录)->rebots.txt(搜索引擎爬虫文件,给搜索引擎看)
->router.php(框架快速启动的测试文件)
->static(网站静态文件)
runtime(网站运行中的缓存文件)【日志、缓存、编译文件】
thinphp(框架文件) ->base.php(定义一些常量)
->composer.json(定义composer的定义文件)
->console.php(控制台的入口文件)
->convention.php(框架默认的配置文件)
->helper.php(助手函数)
->start.php(框架启动文件)
libraiy(核心)->traits(类库的扩展)
tpl(框架默认模板)
vendor(通过composer安装过程生成的文件)【通过composer安装的所有的类库都会在这】
ThinkPHP5
开发规范
命名规范
ThinkPHP5
遵循PSR-2
命名规范和PSR-4
自动加载规范,并且注意如下规范:
目录和文件
-
目录使用小写+下划线;
-
类库、函数文件统一以
.php
为后缀; -
类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
-
类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;
-
类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);
函数和类、属性命名
-
类的命名采用驼峰法(首字母大写),例如
User
、UserType
,默认不需要添加后缀,例如UserController
应该直接命名为User
; -
函数的命名使用小写字母和下划线(小写字母开头)的方式,例如
get_client_ip
; -
方法的命名使用驼峰法(首字母小写),例如
getUserName
; -
属性的命名使用驼峰法(首字母小写),例如
tableName
、instance
; -
以双下划线“__”打头的函数或方法作为魔术方法,例如
__call
和__autoload
;
常量和配置
-
常量以大写字母和下划线命名,例如
APP_PATH
和THINK_PATH
; -
配置参数以小写字母和下划线命名,例如
url_route_on
和url_convert
;
数据表和字段
-
数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如
think_user
表和user_name
字段,不建议使用驼峰和中文作为数据表字段命名。
应用类库命名空间规范
应用类库的根命名空间统一为app(不建议更改,可以设置app_namespace
配置参数更改,V5.0.8
版本开始使用APP_NAMESPACE
常量定义);
例如:app\index\controller\Index
和app\index\model\User
。