FuelPHP - Modules
Le module est un excellent moyen d'écrire des fonctionnalités Web réutilisables telles que blog, album, chat, etc. Le module ne perturbe pas les autres codes de l'application Web. Il vit dans son propre dossier et fournit silencieusement ses fonctionnalités. Les modules sont simplement les mêmes contrôleurs, modèles et vues, sauf qu'ils sont regroupés, configurés et placés dans un dossier spécial. Habituellement, un module réside généralement dans le sous-répertoire de l'application nommé modules situé dans fuel / app / modules.
Configuration du module
Nous pouvons définir le chemin des modules dans le fichier de configuration de l'application principale, fuel / app / config / config.php comme suit.
'module_paths' => array (
path/to.’modules'.DS, // path to application modules
path/to.’..’.DS.'globalmods'.DS // path to our global modules
),
Espace de nom du module
Dans FuelPHP, chaque module a son propre espace de noms PHP. La définition d'un espace de noms séparé résout les conflits de noms. Par exemple, un module d'employé peut être défini sous l'espace de noms, EmployeeModule comme suit.
<?php
namespace Employeemodule;
class Controller_Employee {
//code here
}
Le nom du module doit être identique au nom de dossier du module.
Structure du module
Nous pouvons créer un module en créant un nom de dossier défini dans la configuration. Le nom des dossiers détermine le nom du module et le nom de l'espace de noms pour les classes du module.
La structure du module est la suivante -
- classes
- controller
- model
- view
- config
- lang
- tasks
- views
Le module peut avoir ses propres fichiers de configuration. Il est très utile dans la configuration du routage et ne perturbe pas la configuration d'origine de l'application. Un autre concept important est que la classe de module peut être réutilisée en chargeant le module dans la section de configuration always_load comme suit.
'always_load => array (
'modules' => array('employeemodule'),
),
De plus, les modules peuvent être chargés et utilisés instantanément sans être configurés comme suit.
Module::load('employeemodule');
\Employeemodule\Myclass::mymethod('params');