### 環境搭建
[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.hmoore.net/thinkphp/thinkphp5_quickstart/145249#composer-)
####git 下載和更新
當然你也可以使用Git來安裝和下載ThinkPHP5的核心文件,使用Git的時候你首先要在本地的磁盤中新建一個空白的文件夾作為git倉庫,然后在DOS界面下進入這個倉庫目錄,最后使用Git命令來下載遠程的ThinkPHP5的核心文件,詳情參見[Git下載和更新](http://www.hmoore.net/thinkphp/thinkphp5_quickstart/145249#git-)
就筆者的使用來看,目前,Git要穩定以點,使用Composer下載和更新的時候經常會出現一些意外的錯誤,可能跟Composer的站點被墻有關。推薦使用Git。
好了,下載好了核心文件,就可以搭建我們的項目了,給我們的項目起個響亮的名字吧,我覺得DC這個名字很不錯。(其實是隨便起的)
####PHP運行環境搭建
不過,似乎PHP的運行環境還沒有,我們可以使用PHP的任一常用的運行環境。現在的環境基本都是多合一的,不僅包括網站服務,還包括數據庫服務和其它的一些服務,推薦使用**XAMPP**(Apache+MySQL+PHP+PERL),下載它的最新版本,然后安裝即可。安裝好了,把我們的項目放在你的安裝目錄下的htdocs文件夾中,這個文件夾也是XAMPP的網站發布的目錄。

####入口文件
跟我們ThinkPHP其它版本相同,搭建好環境后就可以運行入口文件了。詳情參見[入口文件](http://www.hmoore.net/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文件夾(主要程序目錄)**的目錄吧:

####數據庫配置
搭建環境完成以后,我們所做的第一件事情應該是將我們的數據庫配置到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!”了!