FuelPHP - Moduli

Il modulo è un ottimo modo per scrivere funzionalità web riutilizzabili come blog, album, chat, ecc. Il modulo non disturba l'altro codice nell'applicazione web. Vive nella propria cartella e fornisce silenziosamente le sue funzionalità. I moduli sono semplicemente lo stesso controller, modelli e viste, tranne per il fatto che sono raggruppati, configurati e inseriti in una cartella speciale. Di solito, un modulo risiede in genere nella sottodirectory dell'applicazione denominata moduli situata in fuel / app / modules.

Configurazione del modulo

Possiamo definire il percorso dei moduli nel file di configurazione dell'applicazione principale, fuel / app / config / config.php come segue.

'module_paths' => array ( 
   path/to.’modules'.DS,              // path to application modules 
   path/to.’..’.DS.'globalmods'.DS    // path to our global modules 
),

Spazio dei nomi del modulo

In FuelPHP, ogni modulo ha il proprio spazio dei nomi PHP. L'impostazione di uno spazio dei nomi separato risolve i conflitti di nome. Ad esempio, un modulo dipendente può essere impostato nello spazio dei nomi, EmployeeModule come segue.

<?php  
   namespace Employeemodule;  

   class Controller_Employee { 
      //code here 
   }

Il nome del modulo deve essere identico al nome della cartella del modulo.

Struttura del modulo

Possiamo creare un modulo creando un nome di cartella definito nella configurazione. Il nome delle cartelle determina il nome del modulo e il nome dello spazio dei nomi per le classi nel modulo.

La struttura del modulo è la seguente:

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

Il modulo può avere i propri file di configurazione. È molto utile nella configurazione del routing e non disturba la configurazione originale dell'applicazione. Un altro concetto importante è che la classe del modulo può essere riutilizzata caricando il modulo nella sezione di configurazione always_load come segue.

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

Inoltre, i moduli possono essere caricati e utilizzati immediatamente senza configurare come segue.

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