Module
Les modules sont à créer dans un dossier Modules à la racine du projet.
Les modules sont des sous-applications qui peuvent être utilisées dans plusieurs applications.
Module documentation
Namespace
Il faut définir le namespace pour pouvoir utiliser les classes du module.
public $psr4 = [
APP_NAMESPACE => APPPATH, // For custom app namespace
// Obligé d'écrire le chemin complet pour que ça fonctionne, on ne peut pas seulement mettre Modules
'Modules\WidgetIncludeCode' => ROOTPATH . 'Modules/WidgetIncludeCode',
'Modules\Mytest' => ROOTPATH . 'Modules/Mytest',
];
Routes
La configuration des routes du module se fait dans le fichier Routes.php du module (et pas dans App).
$routes->get('/test2','MyTestCtrl::index', ['namespace' => 'Modules\Mytest\Controllers']);
//ou
$routes->get('/test2', '\Modules\Mytest\Controllers\MyTestCtrl::index' );
Possibilité de grouper les routes dans un groupe de routes contenant un préfixe.
Optimisation
To avoid wasting time scanning for irrelevant Composer packages, you can manually specify packages to discover by editing the $composerPackages variable in app/Config/Modules.php: