ThinkPHP5 基礎(chǔ)學(xué)習(xí)

一、獲取ThinkPHP

獲取ThinkPHP的方式很多,官方網(wǎng)站是最好的下載和文檔獲取來源。建議使用composer或者git安裝:

  • topthink/thinkphp是3.2版本。
  • topthink/think是最新thinkphp5。
  • topthink/framework是核心框架,一般不選擇。

官網(wǎng)下載版本提供了完整版和核心版兩個版本,核心版本只保留了核心類庫和必須的文件,去掉了所有的擴(kuò)展類庫和驅(qū)動,支持標(biāo)準(zhǔn)模式和SAE模式,一般下載完整版進(jìn)行開發(fā)。


二、環(huán)境要求

  • 框架本身沒有什么特別模塊要求,具體的應(yīng)用系統(tǒng)運行環(huán)境要求視開發(fā)所涉及的模塊。ThinkPHP底層運行的內(nèi)存消耗極低,而本身的文件大小也是輕量級的,因此不會出現(xiàn)空間和內(nèi)存占用的瓶頸。

  • PHP5.4以上版本(注意:PHP5.3dev版本和PHP6均不支持)

  • topthink/think依賴于php相應(yīng)版本和topthink/framework組件。

  • 支持Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase、Mongo以及PDO等多種數(shù)據(jù)庫和連接


三、目錄結(jié)構(gòu)

下載ThinkPHP框架后,解壓縮到web目錄下面,可以看到初始的目錄結(jié)構(gòu)如下:

ThinkPHP5.0.9目錄結(jié)構(gòu)
  • 一級目錄有六個,分別是應(yīng)用目錄,拓展類庫目錄,web開放目錄,運行時目錄,框架系統(tǒng)目錄,第三方類庫。

  • 一級目錄中有一些文件,分別是協(xié)議,readme,composer配置和鎖文件,think命令行工具,自動生成定義文件build.php。

  • README.md文件僅用于說明,實際部署的時候可以刪除。

  • 上面的目錄結(jié)構(gòu)和名稱是可以改變的,這取決于你的入口文件和配置參數(shù)。

  • ThinPHP默認(rèn)路由訪問順序是/模塊/控制器/控制器方法


四、入口文件

ThinkPHP采用單一入口模式進(jìn)行項目部署和訪問,無論完成什么功能,一個應(yīng)用都有一個統(tǒng)一(但不一定是唯一)的入口。應(yīng)該說,所有應(yīng)用都是從入口文件開始的,并且不同應(yīng)用的入口文件是類似的。

  • 入口文件定義

  • 入口文件主要完成:

    • 定義框架路徑、項目路徑(可選)

    • 定義調(diào)試模式和應(yīng)用模式(可選)

    • 定義系統(tǒng)相關(guān)常量(可選)

    • 載入框架入口文件(必須)

默認(rèn)情況下,TP5版本的框架已經(jīng)自帶了一個應(yīng)用入口文件(以及默認(rèn)的目錄結(jié)構(gòu)),內(nèi)容如下:
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';

  • 注意:3.2版本開始無需定義APP_NAME常量

如果你改變了項目目錄(例如把Application更改為Apps),只需要在入口文件更改APP_PATH常量定義即可:

define('APP_PATH','./Apps/');

require './ThinkPHP/ThinkPHP.php';

  • 注意:APP_PATH的定義支持相對路徑和絕對路徑,但必須以“/”結(jié)束

五、開發(fā)規(guī)范

使用ThinkPHP開發(fā)的過程中應(yīng)該盡量遵循下列命名規(guī)范:

  • 類文件都是以.class.php為后綴(這里是指的ThinkPHP內(nèi)部使用的類庫文件,不代表外部加載的類庫文件),使用駝峰法命名,并且首字母大寫,例如 DbMysql.class.php;

  • 類的命名空間地址和所在的路徑地址一致,例如 Home\Controller\UserController類所在的路徑應(yīng)該是 Application/Home/Controller/UserController.class.php;

  • 確保文件的命名和調(diào)用大小寫一致,是由于在類Unix系統(tǒng)上面,對大小寫是敏感的(而ThinkPHP在調(diào)試模式下面,即使在Windows平臺也會嚴(yán)格檢查大小寫);

  • 類名和文件名一致(包括上面說的大小寫一致),例如 UserController類的文件命名是UserController.class.php, InfoModel類的文件名是InfoModel.class.php, 并且不同的類庫的類命名有一定的規(guī)范;

  • 函數(shù)、配置文件等其他類庫文件之外的一般是以.php為后綴(第三方引入的不做要求);

  • 函數(shù)的命名使用小寫字母和下劃線的方式,例如 get_client_ip;

  • 方法的命名使用駝峰法,并且首字母小寫或者使用下劃線“_”,例如 getUserName,_parseType,通常下劃線開頭的方法屬于私有方法;

  • 屬性的命名使用駝峰法,并且首字母小寫或者使用下劃線“_”,例如 tableName、_instance,通常下劃線開頭的屬性屬于私有屬性;

  • 以雙下劃線“__”打頭的函數(shù)或方法作為魔法方法,例如 __call 和 __autoload;

  • 常量以大寫字母和下劃線命名,例如 HAS_ONE和 MANY_TO_MANY;

  • 配置參數(shù)以大寫字母和下劃線命名,例如HTML_CACHE_ON;

  • 語言變量以大寫字母和下劃線命名,例如MY_LANG,以下劃線打頭的語言變量通常用于系統(tǒng)語言變量,例如 CLASS_NOT_EXIST;

  • 對變量的命名沒有強(qiáng)制的規(guī)范,可以根據(jù)團(tuán)隊規(guī)范來進(jìn)行;

  • ThinkPHP的模板文件默認(rèn)是以.html 為后綴(可以通過配置修改);

  • 數(shù)據(jù)表和字段采用小寫加下劃線方式命名,并注意字段名不要以下劃線開頭,例如 think_user 表和 user_name字段是正確寫法,類似 _username 這樣的數(shù)據(jù)表字段可能會被過濾。

  • 特例:在ThinkPHP里面,有一個函數(shù)命名的特例,就是單字母大寫函數(shù),這類函數(shù)通常是某些操作的快捷定義,或者有特殊的作用。例如:A、D、S、L 方法等等,他們有著特殊的含義,后面會有所了解。

  • 由于ThinkPHP默認(rèn)全部使用UTF-8編碼,所以請確保你的程序文件采用UTF-8編碼格式保存,并且去掉BOM信息頭(去掉BOM頭信息有很多方式,不同的編輯器都有設(shè)置方法,也可以用工具進(jìn)行統(tǒng)一檢測和處理),否則可能導(dǎo)致很多意想不到的問題。
    開發(fā)建議

  • 在使用ThinkPHP進(jìn)行開發(fā)的過程中,我們給出如下建議,會讓你的開發(fā)變得更輕松:

    • 遵循框架的命名規(guī)范和目錄規(guī)范;

    • 開發(fā)過程中盡量開啟調(diào)試模式;

    • 多看看日志文件,查找隱患問題;

    • 養(yǎng)成使用I函數(shù)獲取輸入變量的好習(xí)慣;

    • 環(huán)境改變后首先要清空Runtime目錄;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容