### 环境搭建 [TOC=4,6] ####composer什么鬼? 笔者在使用ThinkPHP老版本的时候,搭建环境时直接下载ThinkPHP的核心文件放在自己的项目中,然后按照教程中所说的搭建方式写好index.php,运行后该入口文件自动生成项目目录。而当我看教程中的ThinkPHP5环境搭建的时候还是有点很不习惯的,用Composer在Dos界面使用cmd下载核心文件。那么Composer究竟是个什么鬼呢? >[info] Composer 是 PHP5以上 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。 看了上面百度百科给的解释,分析可以得出它是PHP5的一个工具,而不是针对ThinkPHP的,也就是说所有使用PHP5的项目都可以用它。而所有你想在项目中使用的依赖库都必须在**composer.json**文件中写明。好吧,下面我们来看看如何使用composer来下载ThinkPHP5的核心文件。 ####Composer下载和更新 参见[Composer安装和更新](http://www.kancloud.cn/thinkphp/thinkphp5_quickstart/145249#composer-) ####git 下载和更新 当然你也可以使用Git来安装和下载ThinkPHP5的核心文件,使用Git的时候你首先要在本地的磁盘中新建一个空白的文件夹作为git仓库,然后在DOS界面下进入这个仓库目录,最后使用Git命令来下载远程的ThinkPHP5的核心文件,详情参见[Git下载和更新](http://www.kancloud.cn/thinkphp/thinkphp5_quickstart/145249#git-) 就笔者的使用来看,目前,Git要稳定以点,使用Composer下载和更新的时候经常会出现一些意外的错误,可能跟Composer的站点被墙有关。推荐使用Git。 好了,下载好了核心文件,就可以搭建我们的项目了,给我们的项目起个响亮的名字吧,我觉得DC这个名字很不错。(其实是随便起的) ####PHP运行环境搭建 不过,似乎PHP的运行环境还没有,我们可以使用PHP的任一常用的运行环境。现在的环境基本都是多合一的,不仅包括网站服务,还包括数据库服务和其它的一些服务,推荐使用**XAMPP**(Apache+MySQL+PHP+PERL),下载它的最新版本,然后安装即可。安装好了,把我们的项目放在你的安装目录下的htdocs文件夹中,这个文件夹也是XAMPP的网站发布的目录。 ![](https://box.kancloud.cn/518b6c0ac9dbaa3a5871df3d846e3b02_504x171.png) ####入口文件 跟我们ThinkPHP其它版本相同,搭建好环境后就可以运行入口文件了。详情参见[入口文件](http://www.kancloud.cn/thinkphp/thinkphp5_quickstart/145249#u5165u53E3u6587u4EF6) 默认情况下,TP5将入口文件放在Public文件夹中,我们可以直接把它复制到项目根目录下(一般的做法),也可以将服务器网站的根目录设置为这里的Public文件夹(在apache的httd.conf 中可以设置)然后运行。 ####模块(moudle)目录 一般在ThinkPHP中会自带**Index模块**,包括控制器、模型、视图等文件夹,而我们在开发项目的时候除了前台的Index模块还需要后台的**Admin模块**,以往在ThinkPHP的前述版本中我们需要手工的来添加它,包括它的子文件夹。在TP5中,我们可以直接使用命令来完成,是不是很炫酷? 切换到命令行模式下,进入到应用根目录并执行如下指令: `php think build --module admin` 就会生成一个默认的admin模块,包括如下目录结构: ├─admin │ ├─controller 控制器目录 │ ├─model 模型目录 │ ├─view 视图目录 │ ├─config.php 模块配置文件 │ └─common.php 模块公共文件 同时也会生成一个默认的Index控制器文件。 下面来纵观下看看项目中**application文件夹(主要程序目录)**的目录吧: ![](https://box.kancloud.cn/61f34aaba61c4801a5159e20b8d31e1a_204x419.png) ####数据库配置 搭建环境完成以后,我们所做的第一件事情应该是将我们的数据库配置到ThinkPHP5中。本系统使用Mysql数据库,在项目的application文件夹的**database.php**中配置数据库连接信息(TP5不再将数据库配置放在config.php中了)。配置代码如下: ~~~ return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'dc', // 用户名 'username' => 'root', // 密码 'password' => '******(您的数据库连接密码)', // 端口 'hostport' => '', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'tb_', // 数据库调试模式 'debug' => true, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型 array 数组 collection Collection对象 'resultset_type' => 'array', // 是否自动写入时间戳字段 'auto_timestamp' => false, // 是否需要进行SQL性能分析 'sql_explain' => false, ]; ~~~ 配置好了数据库连接后,我们就可以针对数据库中的表写与之对应的模型了,通过实例化这些模型来操作数据库。 ####万事具备 好了,做了上述操作后,我们项目的环境搭建就完成了,后面就是写有用的业务代码环节了。是时候可以说“Hello World!”了!