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');