ThinkPHP3.2.3可以支持自动生成默认模块之外的模块目录以及批量生成控制器和模型类。
例如,如果我们需要生成一个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
的话,生成的控制器类则不会采用命名空间定义。
同样,也可以定义BUILD_MODEL_LIST
支持生成多个模型类:
// 绑定Admin模块到当前入口文件 define('BIND_MODULE','Admin'); 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\Controller\RoleController // 如果已经存在则不会重新生成 \Think\Build::buildController('Admin','Role'); // 生成Admin模块的Role模型类 // 默认类库为Admin\Model\RoleModel // 如果已经存在则不会重新生成 \Think\Build::buildModel('Admin','Role');
更多的方法可以参考Think\Build类库。