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                 命令行入口文件

目录和文件

  • 目录使用小写+下划线;
  • 类库、函数文件统一以.php为后缀;
  • 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
  • 类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;
  • 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);

函数和类、属性命名

  • 类的命名采用驼峰法(首字母大写),例如 UserUserType,默认不需要添加后缀,例如UserController应该直接命名为User
  • 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip
  • 方法的命名使用驼峰法(首字母小写),例如 getUserName
  • 属性的命名使用驼峰法(首字母小写),例如 tableNameinstance
  • 以双下划线“__”打头的函数或方法作为魔术方法,例如 __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\Indexapp\index\model\User

请避免使用PHP保留字(保留字列表参见 http://php.net/manual/zh/reserved.keywords.php )作为常量、类名和方法名,以及命名空间的命名,否则会造成系统错误。

thinkphp5的目录结构和命名规范相关推荐

  1. 成为构架师必知的Vue目录结构和构建规范,恩师王红元的蘑菇街项目❤

    目录 项目开发流程 目录风格 代码组织格式 目录结构 项目开发流程 划分目录 引用两个css文件 项目模块划分:tabbar->路由映射关系 目录风格 文件夹字母小写,组件首字母大写比较清晰 代 ...

  2. MAB建模规范-Naming Conventions命名规范

    规则ID:db.jm.hd.ar被用于Ver 1.0的规范.na和jc用于从版本2.0到现在创建的规范 NA-MAAB代表北美和欧洲.J-MAAB代表日本 目录 Naming Conventions命 ...

  3. cpp教程2-cpp命名规范整理

    目录 命名通用规则 文件命名规则 变量命名规则 名字空间命名规则 宏命名 define头文件保护命名 匈牙利命名法zzz 谷歌开源cpp代码规范 命名通用规则 文件名.函数名.变量名命名应具有描述性, ...

  4. 关于java变量命名,介绍阿里JAVA命名规范及IDEA实时检测插件的使用以及CODELF取名神器

    JAVA开发中,我们经常会为如何来命名烦心. 有大神曾说计算机科学的两件难事:缓存失效和命名 的确,程序员最头疼的事:命名 但其实,有规范可以遵循.还有工具帮我们取名,更有插件帮我们实时检查是否违反规 ...

  5. muduo网络库:18---muduo简介之(muduo库的由来、编译安装、目录结构、代码结构、线程模型)

    一.由来 2010年3月陈硕先生写了一篇<学之者生,用之者死--ACE历史与简评>(文章参阅:https://blog.csdn.net/Solstice/article/details/ ...

  6. git flow 命名规范 驼峰_图解ThinkPHP5框架(一):基础知识,开发规范与目录结构

    php中文网最新课程 每日17点准时技术干货分享 基于最新ThinkPHP5.0.8制定,原稿是xmind思维导图制作,如果觉得图片看不太清楚,可以下载xmind源文件,用xmind软件打开. 另外, ...

  7. FleaPHP 开发指南 - 4. 命名规范和目录结构

    FleaPHP 的命名规则和目录结构初看上去比较复杂,但习惯以后,你会发现这种命名规则带来许多好处.因此像 Zend Framework 也是采用同样的做法. 当然,FleaPHP 对于应用程序的命名 ...

  8. php网站目录结构图,thinkPHP5.0站点目录结构-我心向阳

    一.ThinkPHP5.0的目录结构 安装后(或者下载后的压缩文件解压后)可以看到下面的目录结构: tp5 ├─application 应用目录 ├─extend 扩展类库目录(可定义) ├─publ ...

  9. Vue目录详解和文件命名规范(超详细)

    框架 Vue-cli: 3 axios:发送请求 Vuex:store仓库 项目目录结构 dist:生成的打包目录 node_modules:依赖包目录 public: 放置系统的静态文件,比如,图片 ...

最新文章

  1. selenium 不同版本Driver
  2. Stuts的Web.xml 详解
  3. C语言二叉查找树练习:单词查找
  4. 【Shall脚本】定时在线备份上传
  5. 软考中级——软件工程基础概念总结
  6. CodeForces - 1343F Restore the Permutation by Sorted Segments(思维)
  7. 运行一个Hadoop Job所需要指定的属性
  8. Android WebView 图片超出宽度自适应,点击查看大图
  9. 模板库 | 销售管理类报表,邀您提反馈
  10. android 触摸屏(TP)问题现象分析和解决方法
  11. go for 循环遍历数组并排序_Go语言基础教程:for循环语句
  12. activemq之调用问题研究
  13. android jar包下载地址
  14. igbt原理动画演示视频_igbt的结构原理与特性图解
  15. 机器人开发--二维激光SLAM介绍
  16. 算法(c++)——循环比赛日程安排问题
  17. 裸眼3d项目,数字平原是这样制作的
  18. IntelliJ IDEA pycharm webstorm 激活
  19. 从零搭建SSM框架及所遇到问题
  20. Android app 录音回音消除两种方法

热门文章

  1. 【 FPGA 】Xilinx FPGA器件命名意义?
  2. SQL Server 2017 AlwaysOn on Linux 配置和维护(18)
  3. Saltstack使用(基础)
  4. Winforms-GePlugin-Control-library
  5. 转vc++ 类自己消失
  6. 利用openssh实现chroot监牢
  7. 3.2 封装成帧和透明传输
  8. Python中多层List展平为一层
  9. 结构体为什么要4字节对齐
  10. Xilinx Select IO的介绍