文章目录
- 一、开发规范
- 1、目录和文件的规范
- 2、函数和类、属性命名规范
- 3、常量与配置的规范
- 4、数据表和字段的规范
- 二、目录结构
- 1、单应用模式目录结构图(默认)
- 2、多应用模式目录结构图(自定义)
- 3、仅允许public目录对外访问
- 4、其他重要文件
本章节我们来学习一下 ThinkPHP6.0 的编码开发规范以及框架的目录结构。
一、开发规范
ThinkPHP6.0 遵循的是 PSR-2 的命名规范和 PSR-4 的自动加载;
1、目录和文件的规范
- 目录名(小写+下划线);
- 类库和函数文件统一以.php 为后缀;
- 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径
一致;
- 类(包含接口和 Trait)文件采用驼峰式命名(首字母大写),其它采用
小写+下划线命名;
- 类名(包括接口和 Trait)和文件名保持一致,统一采用驼峰式命名
(首字母大写);
2、函数和类、属性命名规范
- 类的命名采用驼峰法(首字母大写),如:User、UserType;
- 函数的命名使用小写字母和下划线(小写字母开头)的方式,
如:get_client_ip;
- 方法的命名使用驼峰法(首字母小写),如:getUserName;
- 属性的命名使用驼峰法(首字母小写),如:tableName;
- 特例:以双下划线__打头的函数或方法作为魔术方法,如: __call 和 __autoload;
3、常量与配置的规范
- 常量以大写字母和下划线命名,如:APP_PATH;
- 配置参数以小写字母和下划线命名,如:url_convert;
- 环境变量定义使用大写字母和下划线命名,如:APP_DEBUG;
4、数据表和字段的规范
- 数据表和字段采用小写加下划线方式命名;
- 并注意字段名不要以下划线开头,如: think_user 表和 user_name
- 字段不建议使用驼峰和中文作为数据表及字段命名;
二、目录结构
ThinkPHP6.0 支持多应用模式部署,app 是应用目录;
1、单应用模式目录结构图(默认)
单应用完整结构:
www WEB部署目录(或者子目录)
├─app 应用目录
│ ├─controller 控制器目录
│ ├─model 模型目录
│ ├─ ... 更多类库目录
│ │
│ ├─common.php 公共函数文件
│ └─event.php 事件定义文件
│
├─config 配置目录
│ ├─app.php 应用配置
│ ├─cache.php 缓存配置
│ ├─console.php 控制台配置
│ ├─cookie.php Cookie配置
│ ├─database.php 数据库配置
│ ├─filesystem.php 文件磁盘配置
│ ├─lang.php 多语言配置
│ ├─log.php 日志配置
│ ├─middleware.php 中间件配置
│ ├─route.php URL和路由配置
│ ├─session.php Session配置
│ ├─trace.php Trace配置
│ └─view.php 视图配置
│
├─view 视图目录
├─route 路由定义目录
│ ├─route.php 路由定义文件
│ └─ ...
│
├─public WEB目录(对外访问目录)
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写
│
├─extend 扩展类库目录
├─runtime 应用的运行时目录(可写,可定制)
├─vendor Composer类库目录
├─.example.env 环境变量示例文件
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行入口文件
2、多应用模式目录结构图(自定义)
上图中,app_name 可以有多个,即多应用模式;
多应用完整结构:
www WEB部署目录(或者子目录)
├─app 应用目录
│ ├─app_name 应用目录
│ │ ├─common.php 函数文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ ├─config 配置目录
│ │ ├─route 路由目录
│ │ └─ ... 更多类库目录
│ │
│ ├─common.php 公共函数文件
│ └─event.php 事件定义文件
│
├─config 全局配置目录
│ ├─app.php 应用配置
│ ├─cache.php 缓存配置
│ ├─console.php 控制台配置
│ ├─cookie.php Cookie配置
│ ├─database.php 数据库配置
│ ├─filesystem.php 文件磁盘配置
│ ├─lang.php 多语言配置
│ ├─log.php 日志配置
│ ├─middleware.php 中间件配置
│ ├─route.php URL和路由配置
│ ├─session.php Session配置
│ ├─trace.php Trace配置
│ └─view.php 视图配置
│
├─public WEB目录(对外访问目录)
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写
│
├─extend 扩展类库目录
├─runtime 应用的运行时目录(可写,可定制)
├─vendor Composer类库目录
├─.example.env 环境变量示例文件
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行入口文件
3、仅允许public目录对外访问
在目录结构上,只确保对外可访问的仅public目录;其他配置文件不应该允许用户访问。
在这里需要分清一个问题,就是启动的web服务有两种情况:Apache服务和ThinkPHP启动自带的服务。
ThinkPHP启动自带的web服务默认通过8000端口访问。
而phpstudy的Apache服务可默认通过80端口直接访问到WWW目录下的文件。
4、其他重要文件
在app目录中,还提供了一些文件,这些文件将在后面逐步讲到;