FuelPHP - 模块
模块是编写可重复使用的 Web 功能(如博客、相册、聊天等)的绝佳方式。模块不会干扰 Web 应用程序中的其他代码。它位于自己的文件夹中,并默默提供其功能。模块只是相同的控制器、模型和视图,只是它们被分组、配置并放置在特殊文件夹中。通常,模块通常位于位于 fuel/app/modules 的应用程序子目录中名为 modules 的目录中。
模块配置
我们可以在主应用程序配置文件 fuel/app/config/config.php 中定义模块路径,如下所示。
'module_paths' => array ( path/to.'modules'.DS, // 应用程序模块的路径 path/to.'..'.DS.'globalmods'.DS // 我们的全局模块的路径 ),
模块命名空间
在 FuelPHP 中,每个模块都有自己的 PHP 命名空间。设置单独的命名空间可解决名称冲突问题。例如,可以在命名空间 EmployeeModule 下设置员工模块,如下所示。
<?php namespace Employeemodule; class Controller_Employee { //code here }
模块名称必须与模块文件夹名称相同。
模块结构
我们可以通过创建配置中定义的文件夹名称来创建模块。文件夹名称决定了模块的名称,以及模块中类的命名空间的名称。
模块的结构如下。 −
- classes
- controller
- model
- view
- config
- lang
- tasks
- views
模块可以有自己的配置文件。这在路由设置中非常有用,并且不会干扰应用程序的原始配置。另一个重要概念是,可以通过在 always_load 配置部分中加载模块来重用模块类,如下所示。
'always_load => array ( 'modules' => array('employeemodule'), ),
此外,模块可以立即加载和使用,无需进行如下配置。
Module::load('employeemodule'); \Employeemodule\Myclass::mymethod('params');