FuelPHP - 模块



模块是编写可重用 Web 功能(如博客、相册、聊天等)的好方法。模块不会干扰 Web 应用中的其他代码。它存在于自己的文件夹中,并默默地提供其功能。模块只是相同的控制器、模型和视图,只不过它们被分组、配置并放置在特殊的文件夹中。通常,模块通常位于应用程序的名为 modules 的子目录中,位于 fuel/app/modules 中。

模块配置

我们可以在主应用程序配置文件 fuel/app/config/config.php 中定义模块路径,如下所示。

'module_paths' => array ( 
   path/to.’modules'.DS,              // path to application modules 
   path/to.’..’.DS.'globalmods'.DS    // path to our global modules 
),

模块命名空间

在 FuelPHP 中,每个模块都有自己的 PHP 命名空间。设置单独的命名空间可以解决名称冲突。例如,一个员工模块可以设置在命名空间 EmployeeModule 下,如下所示。

<?php  
   namespace Employeemodule;  

   class Controller_Employee { 
      //code here 
   }

模块名称必须与模块的文件夹名称相同。

模块结构

我们可以通过创建在配置中定义的文件夹名称来创建模块。文件夹名称决定了模块的名称,以及模块中类的命名空间名称。

模块的结构如下所示:

    • 控制器
    • 模型
    • 视图
  • 配置
  • 语言
  • 任务
  • 视图

模块可以有自己的配置文件。这在路由设置中非常有用,并且不会干扰应用程序的原始配置。另一个重要的概念是,可以通过在 always_load 配置部分加载模块来重用模块类,如下所示。

'always_load => array ( 
   'modules' => array('employeemodule'), 
), 

此外,模块可以立即加载和使用,无需配置,如下所示。

Module::load('employeemodule');  
\Employeemodule\Myclass::mymethod('params');
广告