|
| 1 | +ThinkPHP 5.0 |
| 2 | +=============== |
| 3 | + |
| 4 | +[](https://packagist.org/packages/topthink/think) |
| 5 | +[](https://packagist.org/packages/topthink/think) |
| 6 | +[](https://packagist.org/packages/topthink/think) |
| 7 | +[](https://packagist.org/packages/topthink/think) |
| 8 | + |
| 9 | +ThinkPHP5在保持快速开发和大道至简的核心理念不变的同时,PHP版本要求提升到5.4,对已有的CBD模式做了更深的强化,优化核心,减少依赖,基于全新的架构思想和命名空间实现,是ThinkPHP突破原有框架思路的颠覆之作,其主要特性包括: |
| 10 | + |
| 11 | + + 基于命名空间和众多PHP新特性 |
| 12 | + + 核心功能组件化 |
| 13 | + + 强化路由功能 |
| 14 | + + 更灵活的控制器 |
| 15 | + + 重构的模型和数据库类 |
| 16 | + + 配置文件可分离 |
| 17 | + + 重写的自动验证和完成 |
| 18 | + + 简化扩展机制 |
| 19 | + + API支持完善 |
| 20 | + + 改进的Log类 |
| 21 | + + 命令行访问支持 |
| 22 | + + REST支持 |
| 23 | + + 引导文件支持 |
| 24 | + + 方便的自动生成定义 |
| 25 | + + 真正惰性加载 |
| 26 | + + 分布式环境支持 |
| 27 | + + 更多的社交类库 |
| 28 | + |
| 29 | +> ThinkPHP5的运行环境要求PHP5.4以上。 |
| 30 | +
|
| 31 | +详细开发文档参考 [ThinkPHP5完全开发手册](http://www.kancloud.cn/manual/thinkphp5) |
| 32 | + |
| 33 | +## 目录结构 |
| 34 | + |
| 35 | +初始的目录结构如下: |
| 36 | + |
| 37 | +~~~ |
| 38 | +www WEB部署目录(或者子目录) |
| 39 | +├─application 应用目录 |
| 40 | +│ ├─common 公共模块目录(可以更改) |
| 41 | +│ ├─module_name 模块目录 |
| 42 | +│ │ ├─config.php 模块配置文件 |
| 43 | +│ │ ├─common.php 模块函数文件 |
| 44 | +│ │ ├─controller 控制器目录 |
| 45 | +│ │ ├─model 模型目录 |
| 46 | +│ │ ├─view 视图目录 |
| 47 | +│ │ └─ ... 更多类库目录 |
| 48 | +│ │ |
| 49 | +│ ├─command.php 命令行工具配置文件 |
| 50 | +│ ├─common.php 公共函数文件 |
| 51 | +│ ├─config.php 公共配置文件 |
| 52 | +│ ├─route.php 路由配置文件 |
| 53 | +│ ├─tags.php 应用行为扩展定义文件 |
| 54 | +│ └─database.php 数据库配置文件 |
| 55 | +│ |
| 56 | +├─public WEB目录(对外访问目录) |
| 57 | +│ ├─index.php 入口文件 |
| 58 | +│ ├─router.php 快速测试文件 |
| 59 | +│ └─.htaccess 用于apache的重写 |
| 60 | +│ |
| 61 | +├─thinkphp 框架系统目录 |
| 62 | +│ ├─lang 语言文件目录 |
| 63 | +│ ├─library 框架类库目录 |
| 64 | +│ │ ├─think Think类库包目录 |
| 65 | +│ │ └─traits 系统Trait目录 |
| 66 | +│ │ |
| 67 | +│ ├─tpl 系统模板目录 |
| 68 | +│ ├─base.php 基础定义文件 |
| 69 | +│ ├─console.php 控制台入口文件 |
| 70 | +│ ├─convention.php 框架惯例配置文件 |
| 71 | +│ ├─helper.php 助手函数文件 |
| 72 | +│ ├─phpunit.xml phpunit配置文件 |
| 73 | +│ └─start.php 框架入口文件 |
| 74 | +│ |
| 75 | +├─extend 扩展类库目录 |
| 76 | +├─runtime 应用的运行时目录(可写,可定制) |
| 77 | +├─vendor 第三方类库目录(Composer依赖库) |
| 78 | +├─build.php 自动生成定义文件(参考) |
| 79 | +├─composer.json composer 定义文件 |
| 80 | +├─LICENSE.txt 授权说明文件 |
| 81 | +├─README.md README 文件 |
| 82 | +├─think 命令行入口文件 |
| 83 | +~~~ |
| 84 | + |
| 85 | +> router.php用于php自带webserver支持,可用于快速测试 |
| 86 | +> 切换到public目录后,启动命令:php -S localhost:8888 router.php |
| 87 | +> 上面的目录结构和名称是可以改变的,这取决于你的入口文件和配置参数。 |
| 88 | +
|
| 89 | +## 命名规范 |
| 90 | + |
| 91 | +`ThinkPHP5`遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范: |
| 92 | + |
| 93 | +### 目录和文件 |
| 94 | + |
| 95 | +* 目录不强制规范,驼峰和小写+下划线模式均支持; |
| 96 | +* 类库、函数文件统一以`.php`为后缀; |
| 97 | +* 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致; |
| 98 | +* 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写); |
| 99 | + |
| 100 | +### 函数和类、属性命名 |
| 101 | +* 类的命名采用驼峰法,并且首字母大写,例如 `User`、`UserType`,默认不需要添加后缀,例如`UserController`应该直接命名为`User`; |
| 102 | +* 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 `get_client_ip`; |
| 103 | +* 方法的命名使用驼峰法,并且首字母小写,例如 `getUserName`; |
| 104 | +* 属性的命名使用驼峰法,并且首字母小写,例如 `tableName`、`instance`; |
| 105 | +* 以双下划线“__”打头的函数或方法作为魔法方法,例如 `__call` 和 `__autoload`; |
| 106 | + |
| 107 | +### 常量和配置 |
| 108 | +* 常量以大写字母和下划线命名,例如 `APP_PATH`和 `THINK_PATH`; |
| 109 | +* 配置参数以小写字母和下划线命名,例如 `url_route_on` 和`url_convert`; |
| 110 | + |
| 111 | +### 数据表和字段 |
| 112 | +* 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 `think_user` 表和 `user_name`字段,不建议使用驼峰和中文作为数据表字段命名。 |
| 113 | + |
| 114 | +## 参与开发 |
| 115 | +请参阅 [ThinkPHP5 核心框架包](https://github.com/top-think/framework)。 |
| 116 | + |
| 117 | +## 版权信息 |
| 118 | + |
| 119 | +ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 |
| 120 | + |
| 121 | +本项目包含的第三方源码和二进制文件之版权信息另行标注。 |
| 122 | + |
| 123 | +版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) |
| 124 | + |
| 125 | +All rights reserved。 |
| 126 | + |
| 127 | +ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 |
| 128 | + |
| 129 | +更多细节参阅 [LICENSE.txt](LICENSE.txt) |
0 commit comments