FuelPHP 模块

 

模块是编写可重复使用的网络功能(例如博客、相册、聊天等)的好方法。模块不会干扰网络应用程序中的其他代码。它位于自己的文件夹中并默默地提供其功能。模块只是相同的控制器、模型和视图,只是它们被分组、配置并放置在一个特殊的文件夹中。通常,模块通常驻留在位于fuel/app/modules 的名为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 
   }

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

 

模块结构

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

模块结构如下:

  • classes controller
  • model
  • view
  • config
  • lang
  • tasks
  • views

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

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

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

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

 包在代码重用方面类似于模块,但在以下方面有所不同,它不会映射到网址无法通过 HMVC 请求访问 简而言之,包不是直接的网络功能,如博客、相册等。相反,它是一个组合在一起的功能库,如电子邮件处理、文档 ...