ThinkPHP5 ---基礎(chǔ)篇(安裝)
一、ThinkPHP簡介
i. ThinkPHP是一個免費(fèi)開源 快速簡單 面向?qū)ο?輕量級的PHP開發(fā)框架
ii. 創(chuàng)立于2006年初 遵循Apache2開源協(xié)議發(fā)布
iii. 秉承簡潔實(shí)用的設(shè)計(jì)原則 注重易用性
iv. 支持composer(包管理工具)方式安裝 類似于node.js里面的npm
v. 5版本與之前版本不兼容
二、MVC簡介
i. Model(模型) View(視圖) Controller(控制器)的縮寫 是一種業(yè)務(wù)邏輯 數(shù)據(jù) 顯示頁面分離的設(shè)計(jì)典范(設(shè)計(jì)模式:單例|工廠|觀察者...) 業(yè)務(wù)邏輯封裝之后 在改進(jìn)或者個性化定制界面用戶交互的同時 對編寫好的業(yè)務(wù)邏輯不影響
ii. 優(yōu)勢
耦合性低 任何一層的改變 對其他層影響不大
重用性高
可維護(hù)性高


iii. MVC的變形
- 無Model模式
a) 企業(yè)官網(wǎng) 靜態(tài)數(shù)據(jù)展示 基本上不涉及數(shù)據(jù)庫操作 展示靜態(tài)頁面 Controller主要是路由跳轉(zhuǎn) View主要展示頁面
- 無View的API接口開發(fā)
a) 給app寫接口的時候 不需要展示界面 所有數(shù)據(jù)都通過json|xml返回
三、ThinkPHP5的安裝
i. Git方式安裝
- 需要clone兩個包

a) 進(jìn)入think 選擇open in Desktop(選擇clone或者open in Desktop 本地都需要安裝git環(huán)境 最簡單的下載git桌面版 詳情參考版本工具GIT篇) 如果是用命令行 可以加上git clone --depth=1 ... 只克隆最新一次commit

b) 選擇本地項(xiàng)目目錄


c) 然后clone framework 核心包

d) 在上一步的目錄下新建thinkphp目錄 clone


瀏覽器訪問 進(jìn)入到public目錄 出現(xiàn)下面界面說明安裝成功

同理 選擇DownloadZip 然后解壓縮 也可以 分別下載兩個包 然后將framework包重命名thinkphp 移動到think目錄下即可
ii. Composer方式安裝
- 本地先安裝composer環(huán)境
a) 進(jìn)入官網(wǎng) <u>https://www.phpcomposer.com/</u> ->下載


b) 雙擊 安裝 (過程中需要綁定php.exe)

c) windows+R cmd 打開命令行 composer驗(yàn)證是否安裝成功

d) 通過composer安裝ThinkPHP
i. 命令行進(jìn)入項(xiàng)目目錄

ii. Composer create-project --prefer-dist topthink/think think_composer進(jìn)入到項(xiàng)目目錄 命令行安裝
composer create-project --prefer-dist topthink/think=5.0.20 think_composer 可以指定下載版本




安裝過程中 需要聯(lián)網(wǎng)...... 網(wǎng)速不穩(wěn)定的話 可能會導(dǎo)致安裝不成功
也可以在composer官網(wǎng) 安裝包列表 選擇下載tp版本 上面的命令也可以指定版本
iii. localhost測試


iii. Download官網(wǎng)安裝
- 進(jìn)入http://www.thinkphp.cn/ 官網(wǎng)
image.png
- 需要先登錄 然后選擇版本下載
四、設(shè)置網(wǎng)站根目錄為 public目錄 (選)
i. Apache配置文件 httpd-vhosts.conf
ii. 此文件下可以配置虛擬主機(jī) 如a.com 便于本地測試
需要在httpd.conf文件中打開擴(kuò)展
需要在System32/drivers/etc/hosts文件中配置 127.0.0.1 a.com 配置
重啟服務(wù)器生效

五、ThinkPHP5的目錄結(jié)構(gòu)
i. Application 應(yīng)用目錄

ii. Extend 擴(kuò)展類庫目錄
- 下載第三方庫的時候使用的 不是通過composer下載的
a) 如 有一個好用的第三方庫 但是沒有composer包 這種情況下可以將類庫下載到extend目錄 之后修改命名空間 就直接可以在應(yīng)用中使用了
iii. Public根目錄

iv. Runtime 網(wǎng)站運(yùn)行中的緩存文件 日志緩存 編譯文件等等
v. Thinkphp框架系統(tǒng)目錄

vi. Vendor 通過composer安裝 過程中生成的目錄
- 里面有thinkphp主程序文件 各種類庫文件
六、 目錄和文件開發(fā)規(guī)范
i. 目錄使用小寫+下劃線的方式命名(不允許大寫)
ii. 類庫函數(shù)文件名 均以.php結(jié)尾 (5版本以前是.class.php 5版本之后.php)
iii. 類的文件名均以命名空間定義 且命名空間和類庫文件所在路徑一致
- 如 application/index/controller/Index.php
namespace app\index\controller (app定義頂級應(yīng)用模塊目錄)
iv. 類文件采用駝峰 首字母大寫 其余文件為小寫+下劃線命名
如 控制器 Index.php
路由文件 route.php 數(shù)據(jù)庫配置文件 database.php
v. 類名和類文件名保持一致 駝峰命名 首字母大寫 不需要后綴
- 如 Index.php (5版本前是 IndexController.php 5版本之后是 Index.php)
vi. 函數(shù)駝峰命名 首字母小寫
- 如 public function getUserName(){}
vii. 屬性名駝峰 首字母小寫
- 如 public $tableName = ‘’ ;
viii. 以雙下劃線(__)開頭的函數(shù)或者方法為魔術(shù)方法
如 public function __construct(){}
自定義函數(shù)的時候 函數(shù)名注意避免
ix. 常量和配置
- 常量以大寫字母和下劃線命名
a) 如define(‘APP_PATH’, DIR . ’/../application/’) ;盡量不要下劃線開頭
- 配置參數(shù)以小寫字母和下劃線命名
a) 如 config.php

x. 其他規(guī)范
- 表和字段采用小寫+下劃線的命名方式 不能下劃線開頭
a) 如 tb_user 表
- 應(yīng)用類庫的命名空間統(tǒng)一為app(可以配置)
a) 一般情況下不要更改 app為默認(rèn)頂級應(yīng)用
七、ThinkPHP5模塊設(shè)計(jì)
i. 概要:
5.0版本對模塊的功能做了靈活設(shè)計(jì) 默認(rèn)采用多模塊的架構(gòu) 并且支持單一模塊設(shè)計(jì) 所有模塊的命名空間均以app作為根命名空間(可配置)
根據(jù)項(xiàng)目需求

FAQ:
一、啟動本地環(huán)境 查看端口占用
1.找到被占端口pid
netstat -aon|findstr "3306"

2.根據(jù)pid 查看進(jìn)程
tasklist|findstr "1880"

3.結(jié)束進(jìn)程
taskkill /f /t /im mysqld.exe

二、自定義common模塊報錯:

報錯信息:

分析:
這是thinkphp的規(guī)定 默認(rèn)common是公用模塊 存放 通用方法 不允許在URL上直接訪問
解決:


將重復(fù)性的代碼 權(quán)限 數(shù)據(jù)處理放在common模塊 簡化程序
三、修改application目錄
i. 將application目錄重命名 app
ii. 修改public/index.php define(‘APP_PATH’, DIR . ‘/../app/’);

