[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的架构设计对模块的目录结构保留了很多的灵活性,尤其是对于用于存储的目录具有高度的定制化,因此上述的目录结构仅供建议参考。
- 前言
- 更新说明
- 数据库说明
- 第一章 前端框架及插件
- 第一节 Bootstrap
- 第二节 Layui
- 第三节 Vue.js
- 1.Element UI
- 第四节 DataTables
- 1.数据源
- 第二章 Thinkphp 5.0
- 控制器
- 第一节 增加
- 第二节 删除
- 第三节 修改
- 第四节 查询
- MVC
- 第一节 增加
- 第二节 删除
- 第三节 修改
- 第四节 查询
- MVC+AJAX
- 第一节 增加
- 第二节 删除
- 第三节 修改
- 第四节 查询
- 小功能
- 第一节 常用函数
- 第二节 随机数
- 第三节 URL
- 扩展开发
- 第一节 分布式数据库
- 第二节 内容上传
- 1.本地上传
- 2.七牛云上传
- 第三节 导入导出
- 1.Excel
- 2.Word
- 第四节 发送邮件
- 第五节 模板分离
- 第六节 注册登录
- 1.用户登录
- 2.用户注册
- 3.管理登录
- 第七节 菜单导航
- 第八节 判断手机
- 第九节 富文本编辑器
- 1.Ueditor
- 2.CKEditor
- 第十节 购物车
- 第十一节 安全验证
- 1.默认验证码
- 常用API开发
- 第一节 API接口使用
- 第二节 微信开发
- 附件下载
- 第一节 ThinkPHP 优化版
- 第二节 常用后台模板下载
- 实例源码
- 第一节 MQ CMS
- 第二节 MQ Edu