ThinkPHP3.2.3 添加新模塊過程

自動生成模塊目錄


3.2.2版本開始,可以支持自動生成默認模塊之外的模塊目錄以及批量生成控制器和模型類。
例如,如果我們需要生成一個Admin模塊用於後臺應用,在應用入口文件中定義如下:

// 綁定Admin模塊到當前入口文件
define('BIND_MODULE','Admin');
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';

然後訪問URL地址

http://serverName/index.php

就會生成Admin模塊的目錄,並生成一個默認的控制器類Admin\Controller\IndexController。 如果需要生成更多的控制器類,可以定義BUILD_CONTROLLER_LIST常量,例如:

// 綁定Admin模塊到當前入口文件
define('BIND_MODULE','Admin');
define('BUILD_CONTROLLER_LIST','Index,User,Menu');
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';

訪問後會自動生成三個指定的控制器類:

Admin\Controller\IndexController
Admin\Controller\UserController
Admin\Controller\MenuController

注意:默認生成的控制器類都是繼承Think\Controller,如果需要繼承其他的公共類需要另外調整。 如果在應用的公共配置文件中設置關閉了 APP_USE_NAMESPACE的話,生成的控制器類則不會採用命名空間定義。

還可以自己手動調用Think\Build類的方法來生成控制器類,例如:

// 生成Admin模塊的Role控制器類
// 默認類庫爲Admin\Controller\RoleController
// 如果已經存在則不會重新生成
\Think\Build::buildController('Admin','Role');

同樣,也可以定義BUILD_MODEL_LIST支持生成多個模型類:

// 綁定Admin模塊到當前入口文件
define('BIND_MODULE','Admin');
define('BUILD_CONTROLLER_LIST','Index,User,Menu');
define('BUILD_MODEL_LIST','User,Menu');
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';

訪問會自動生成模型類:

Admin\Model\UserModel
Admin\Model\MenuModel

注意:默認生成的模型類都是繼承Think\Model,如果需要繼承公共的模型類需要另外調整。 如果在應用的公共配置文件中設置關閉了 APP_USE_NAMESPACE的話,生成的模型類則不會採用命名空間定義。

也可以自己手動調用Think\Build類的方法來生成模型類,例如:

// 生成Admin模塊的Role模型類
// 默認類庫爲Admin\Model\RoleModel
// 如果已經存在則不會重新生成
\Think\Build::buildModel('Admin','Role');

禁止訪問模塊


3.2對模塊的訪問是自動判斷的,所以通常情況下無需配置模塊列表即可訪問,但可以配置禁止訪問的模塊列表(用於被其他模塊調用或者不開放訪問),默認配置中是禁止訪問Common模塊和Runtime模塊(Runtime目錄是默認的運行時目錄),我們可以增加其他的禁止訪問模塊列表:

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

設置後,Api模塊不能通過URL直接訪問,事實上,可能我們只是在該模塊下面放置一些公共的接口文件,因此都是內部調用即可。

設置訪問列表


如果你的應用下面模塊比較少,還可以設置允許訪問列表和默認模塊,這樣可以簡化默認模塊的URL訪問。

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

設置之後,除了Home、Admin和User模塊之外的模塊都不能被直接訪問,並且Home模塊是默認訪問模塊(可以不出現在URL地址)。

摘自手冊: ThinkPHP3.2完全開發手冊-模塊化設計

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章