ThinkPHP3.2.3 添加新模块过程
来源:互联网 发布:17年华研网络词作大赛 编辑:程序博客网 时间:2024/06/09 20:19
自动生成模块目录
从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\IndexControllerAdmin\Controller\UserControllerAdmin\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\UserModelAdmin\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完全开发手册-模块化设计
- ThinkPHP3.2.3 添加新模块过程
- thinkphp3.2版本添加模块
- thinkphp3.23 新建新的模块
- ThinkPHP3.2.3添加水印
- PHP添加新模块
- Nginx添加新模块
- 03_Nginx添加新模块
- ffmpeg-添加新模块分析
- nginx新添加lua模块
- thinkphp3.2.3 重命名默认模块名 和 新建模块
- A13 添加wifi模块过程
- 向CVS添加新的项目模块
- Apache中添加gzip新模块
- MT6573添加新硬件模块驱动方法
- Android开发:Framework添加新模块
- Android开发:Framework添加新模块
- linux内核添加新的模块
- Darwin Streaming Server 添加新模块
- 算法系列——Gray Code
- 基于jq的导航栏元素划入效果
- 常见Linux命令
- 头文件包含顺序以及设计原则
- AFNetworking 3.0 源码解读(八)之 AFImageDownloader
- ThinkPHP3.2.3 添加新模块过程
- qt dependant doesn not exist错误的解决方法
- 《图解HTTP》整理(1)
- AFNetworking 3.0 源码解读(九)之 AFNetworkActivityIndicatorManager
- Redis非关系型数据库
- HDU
- scala继承补充
- Vector与迭代器模式
- poj2391 二分最大流+拆点