[TOC] ***** # 安装ThinkPHP ## 环境要求 `ThinkPHP5`的环境要求如下: >[info] * PHP >= 5.4.0 > * PDO PHP Extension > * MBstring PHP Extension > * CURL PHP Extension 严格来说,`ThinkPHP`无需安装过程,这里所说的安装其实就是把`ThinkPHP`框架放入`WEB`运行环境(**前提是你的WEB运行环境已经OK**),可以通过下面几种方式获取和安装ThinkPHP。 ## 官网下载安装 获取`ThinkPHP`的方式很多,官方网站([http://thinkphp.cn](http://thinkphp.cn/))提供了[稳定版本](http://thinkphp.cn/down/framework.html)或者带扩展完整版本的下载。 >[danger] 官网的下载版本不一定是最新版本,GIT版本获取的才是保持更新的版本。 ## Composer安装 `ThinkPHP5`支持使用`Composer`安装,如果还没有安装`Composer`,你可以按 [Composer安装](http://www.kancloud.cn/thinkphp/composer/35669) 中的方法安装。在`Linux`和`Mac OS X`中可以运行如下命令: ~~~ curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer ~~~ 在 Windows 中,你需要下载并运行 [Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe)。 如果遇到任何问题或者想更深入地学习 Composer,请参考 [Composer 文档(英文)](https://getcomposer.org/doc/),[Composer 中文](http://www.kancloud.cn/thinkphp/composer)。 如果你已经安装有`Composer`请确保使用的是最新版本,你可以用 `composer self-update` 命令更新`Composer`为最新版本。 为了避免安装过慢,可以使用阿里云的`composer`镜像 ~~~ composer config -g repo.packagist composer https://packagist.phpcomposer.com ~~~ 然后在命令行下面,切换到你的web根目录下面并执行下面的命令: ~~~ composer create-project topthink/think=5.0.* tp5 --prefer-dist ~~~ 表示安装最新的5.0版本。 如果出现错误提示,请根据提示操作或者参考[Composer中文文档](http://www.kancloud.cn/thinkphp/composer)。 >[danger] 如果国内访问`composer`的速度比较慢,可以参考这里的说明[使用国内镜像](https://pkg.phpcomposer.com/) ## Git安装 如果你不太了解`Composer`或者觉得`Composer`太慢,也可以使用`git`版本库安装和更新,`ThinkPHP5.0`拆分为多个仓库,主要包括: * 应用项目:`https://github.com/top-think/think` * 核心框架:`https://github.com/top-think/framework` 如果你访问github速度比较慢,可以考虑下面两个国内GIT仓库: ### 码云 * 应用项目:`https://gitee.com/liu21st/thinkphp5` * 核心框架:`https://gitee.com/liu21st/framework.git` ### Coding * 应用项目:`https://git.coding.net/liu21st/thinkphp5.git` * 核心框架:`https://git.coding.net/liu21st/framework.git` >[info] 之所以设计为应用和核心仓库分离,是为了支持`Composer`单独更新核心框架。 首先克隆下载应用项目仓库 ~~~ git clone https://github.com/top-think/think tp5 ~~~ 然后切换到`tp5`目录下面,再克隆核心框架仓库: ~~~ git clone https://github.com/top-think/framework thinkphp ~~~ >[danger] 由于目前仓库默认分支还不是`5.0`版本,你需要切换到`master`分支(首先进入thinkphp目录后执行下面的命令) > ~~~ > git checkout master > ~~~ 两个仓库克隆完成后,就完成了`ThinkPHP5.0`的`Git`方式下载,如果需要更新核心框架的时候,只需要切换到thinkphp核心目录下面,然后执行: ~~~ git pull https://github.com/top-think/framework ~~~ >[info] 如果不熟悉`git`命令行,可以使用任何一个GIT客户端进行操作,在此不再详细说明。 无论你采用什么方式获取的`ThinkPHP`框架,现在只需要做最后一步来验证是否正常运行。 在浏览器中输入地址: ~~~ http://localhost/tp5/public/ ~~~ 如果浏览器输出如图所示: ![](https://box.kancloud.cn/2016-03-11_56e274a2376df.png) 恭喜你,现在已经完成`ThinkPHP5`的安装! >[info] 如果是mac或者linux环境,请确保`runtime`目录有可写权限 如果你无法正常运行并显示`ThinkPHP`的欢迎页面,那么请检查下你的服务器环境: > * PHP`5.4`以上版本(**注意:PHP5.4dev版本和PHP6均不支持**) > * WEB服务器是否正常启动 ***** # 命名规范 `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`。 #目录结构 下载最新版框架后,解压缩到web目录下面,可以看到初始的目录结构如下: ~~~ 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 命令行入口文件 ~~~ >[danger] 如果是mac或者linux环境,请确保`runtime`目录有可写权限 5.0的部署建议是`public`目录作为web目录访问内容,其它都是web目录之外,当然,你必须要修改`public/index.php`中的相关路径。如果没法做到这点,请记得设置目录的访问权限或者添加目录列表的保护文件。 >[info] router.php用于php自带webserver支持,可用于快速测试 > 启动命令:php -S localhost:8888 router.php 5.0版本自带了一个完整的应用目录结构和默认的应用入口文件,开发人员可以在这个基础之上灵活调整。 >[info] 上面的目录结构和名称是可以改变的,尤其是应用的目录结构,这取决于你的入口文件和配置参数。 >[info] 由于ThinkPHP5.0的架构设计对模块的目录结构保留了很多的灵活性,尤其是对于用于存储的目录具有高度的定制化,因此上述的目录结构仅供建议参考。