FuelPHP - Модули

Модуль - отличный способ написать многоразовые веб-функции, такие как блог, альбом, чат и т. Д. Модуль не мешает другому коду в веб-приложении. Он живет в своей собственной папке и молча обеспечивает свои функции. Модули - это просто один и тот же контроллер, модели и представления, за исключением того, что они сгруппированы, настроены и помещены в специальную папку. Обычно модуль обычно находится в подкаталоге приложения с именем 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 
   }

Название модуля должно совпадать с именем папки модуля.

Структура модуля

Мы можем создать модуль, создав папку с именем, указанным в конфигурации. Имя папки определяет имя модуля и имя пространства имен для классов в модуле.

Структура модуля следующая -

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

Модуль может иметь собственные файлы конфигурации. Это очень полезно при настройке маршрутизации и не нарушает исходную конфигурацию приложения. Другая важная концепция заключается в том, что класс модуля можно повторно использовать, загрузив модуль в разделе конфигурации always_load следующим образом.

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

Кроме того, модули можно загружать и использовать мгновенно, без настройки следующим образом.

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