FuelPHP - Módulos
El módulo es una excelente manera de escribir funcionalidades web reutilizables como blog, álbum, chat, etc. El módulo no interfiere con el otro código en la aplicación web. Vive en su propia carpeta y proporciona silenciosamente su funcionalidad. Los módulos son simplemente el mismo controlador, modelos y vistas, excepto que están agrupados, configurados y colocados en una carpeta especial. Por lo general, un módulo normalmente reside dentro del subdirectorio de la aplicación llamado módulos ubicado en fuel / app / modules.
Configuración del módulo
Podemos definir la ruta de los módulos en el archivo de configuración de la aplicación principal, fuel / app / config / config.php de la siguiente manera.
'module_paths' => array (
path/to.’modules'.DS, // path to application modules
path/to.’..’.DS.'globalmods'.DS // path to our global modules
),
Espacio de nombres del módulo
En FuelPHP, cada módulo tiene su propio espacio de nombres PHP. Establecer un espacio de nombres separado corrige los conflictos de nombres. Por ejemplo, un módulo de empleado se puede configurar en el espacio de nombres, EmployeeModule de la siguiente manera.
<?php
namespace Employeemodule;
class Controller_Employee {
//code here
}
El nombre del módulo debe ser idéntico al nombre de la carpeta del módulo.
Estructura del módulo
Podemos crear un módulo creando un nombre de carpeta definido en la configuración. El nombre de las carpetas determina el nombre del módulo y el nombre del espacio de nombres para las clases del módulo.
La estructura del módulo es la siguiente:
- classes
- controller
- model
- view
- config
- lang
- tasks
- views
El módulo puede tener sus propios archivos de configuración. Es muy útil en la configuración del enrutamiento y no altera la configuración original de la aplicación. Otro concepto importante es que la clase de módulo se puede reutilizar cargando el módulo en la sección de configuración always_load de la siguiente manera.
'always_load => array (
'modules' => array('employeemodule'),
),
Además, los módulos se pueden cargar y usar instantáneamente sin configurar de la siguiente manera.
Module::load('employeemodule');
\Employeemodule\Myclass::mymethod('params');