ThinkPHP筆記

基礎(chǔ)

文件目錄

www WEB部署目錄(或者子目錄)
├─index.php 入口文件,保留在www目錄
├─README.md README文件,可刪除
├─Application 應(yīng)用目錄,為了安全,可放置www之外
├─Public 資源文件目錄,保留在www目錄
└─ThinkPHP 框架目錄,為了安全,可放置www之外

入口文件

作用:
定義框架路徑、項(xiàng)目路徑(可選)
定義調(diào)試模式和應(yīng)用模式(可選)
定義系統(tǒng)相關(guān)常量(可選)
載入框架入口文件(必須)

控制器

控制器類的命名方式是:控制器名(駝峰法,首字母大寫)+Controller
控制器文件的命名方式是:類名+class.php(類文件后綴)


配置文件

配置文件格式

ThinkPHP框架中默認(rèn)所有配置文件的定義格式均采用返回PHP數(shù)組的方式,格式為:

//項(xiàng)目配置文件
return array(
    'DEFAULT_MODULE'     => 'Index', //默認(rèn)模塊
    'URL_MODEL'          => '2', //URL模式
    'SESSION_AUTO_START' => true, //是否開啟session
    'USER_CONFIG'        => array(
        'USER_AUTH' => true,
        'USER_TYPE' => 2,
    ),
    //更多配置參數(shù)
);

配置加載

配置加載順序,右邊最大
慣例配置->應(yīng)用配置->模式配置->調(diào)試配置->狀態(tài)配置->模塊配置->擴(kuò)展配置->動態(tài)配置

模式配置(可選)

如果使用了普通應(yīng)用模式之外的應(yīng)用模式的話,還可以為應(yīng)用模式(后面會有描述)單獨(dú)定義配置文件,文件命名規(guī)范是: Application/Common/Conf/config_應(yīng)用模式名稱.php(僅在運(yùn)行該模式下面才會加載)。
模式配置文件是可選的

調(diào)試配置(可選)

如果開啟調(diào)試模式的話,則會自動加載框架的調(diào)試配置文件(位于ThinkPHP/Conf/debug.php)和應(yīng)用調(diào)試配置文件(位于Application/Common/Conf/debug.php)

狀態(tài)配置(可選)
每個(gè)應(yīng)用都可以在不同的情況下設(shè)置自己的狀態(tài)(或者稱之為應(yīng)用場景),并且加載不同的配置文件。
舉個(gè)例子,你需要在公司和家里分別設(shè)置不同的數(shù)據(jù)庫測試環(huán)境。那么可以這樣處理,在公司環(huán)境中,我們在入口文件中定義:
define('APP_STATUS','office');
那么就會自動加載該狀態(tài)對應(yīng)的配置文件(位于Application/Common/Conf/office.php)。

讀取配置

C方法的使用

$get = C('配置屬性名');
// 如果my_config尚未設(shè)置的話,則返回default_config字符串
C('my_config',null,'default_config');
//獲取用戶配置中的用戶類型設(shè)置
C('USER_CONFIG.USER_TYPE');

動態(tài)配置

就是給配置參數(shù)賦予一個(gè)新的值
C('參數(shù)名稱','新的參數(shù)值')

擴(kuò)展配置

'LOAD_EXT_CONFIG' => 'user,db',
如果在模塊(假設(shè)是Home模塊)的配置文件中配置的話,則會自動加載模塊目錄下面的配置文件 Application/Home/Conf/user.php和Application/Home/Conf/db.php.

如果配置文件改成:

//加載擴(kuò)展配置文件'LOAD_EXT_CONFIG' =>array('USER'=>'user','DB'=>'db'),
則最終獲取用戶參數(shù)的方式改成:
C('USER.USER_AUTH_ID');

批量配置

$config=array('WEB_SITE_TITLE'=>'ThinkPHP','WEB_SITE_DESCRIPTION'=>'開源PHP框架');
C($config);```

---

#架構(gòu)
**URL訪問規(guī)則**
http://serverName/index.php(或者其他應(yīng)用入口文件)/模塊/控制器/操作/[參數(shù)名/參數(shù)值...]

**自動生成模塊目錄、控制器、模型**

// 綁定Admin模塊到當(dāng)前入口文件
define('BIND_MODULE','Admin');
// 綁定Index控制器到當(dāng)前入口文件
define('BIND_CONTROLLER','Index');
//第一種,生成更多控制器類的方法
define('BUILD_CONTROLLER_LIST','Index,User,Menu');
//第二種,生成更多控制器類的方法, 如果已經(jīng)存在則不會重新生成。
\Think\Build::buildController('Admin','Role');
//第一種,生成模型類的方法
define('BUILD_MODEL_LIST','User,Menu');
//第二種,生成模型類的方法
\Think\Build::buildModel('Admin','Role');
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';


**禁止訪問模塊**

// 設(shè)置禁止訪問的模塊列表
'MODULE_DENY_LIST' => array('Common','Runtime','Api'),


**設(shè)置訪問列表**

'MODULE_ALLOW_LIST' => array('Home','Admin','User'),
'DEFAULT_MODULE' => 'Home',


**單模塊設(shè)計(jì)**
如果你的應(yīng)用夠簡單,那么也許僅僅用一個(gè)模塊就可以完成,那么可以直接設(shè)置:

// 關(guān)閉多模塊訪問
'MULTI_MODULE' => false,
'DEFAULT_MODULE' => 'Home',
一旦關(guān)閉多模塊訪問后,就只能訪問默認(rèn)模塊(這里設(shè)置的是Home)。


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

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,937評論 25 709
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,262評論 6 342
  • 今天用swift3.0寫collectionView的時(shí)候遇到一個(gè)BUG -然后在MyCell 里去算Cell里l...
    coderST閱讀 913評論 0 1
  • 新年伊始有機(jī)會參加香港優(yōu)雅學(xué)堂邢臺分院第一期訓(xùn)練營的培訓(xùn)學(xué)習(xí),學(xué)到很多東西,有很多的感想、感悟和感觸,特別想寫出來...
    三平999閱讀 145評論 0 0

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