CakePhp 3 : Espaces de noms (namespace) et Classes (class) personnelles
Intégrer proprement une class PHP personnelle dans un projet CakePHP 3 avec les espaces de noms PHP5
Les namespaces sont disponibles depuis PHP 5.3.
Ils permettent d’encapsuler des éléments et donc de différencier les classes dans un projet.
Voici la méthodologie pour gérer des classes personnelles dans CakePHP 3…
1) Ajouter un répertoire « Lib » dans le « src » du projet
Rien de spécial : créer un répertoire dans le src du projet CakePhp 3...
2) Ajouter une classe PHP dans « Lib » avec l’espace de nom qui va bien !
Il faut ajouter dans le fichier de class un namespace pour contraindre la class dans un espace spécifique : « namespace Lib »;
Nom du fichier : MyClass.php
namespace Lib; class MyClass { public function __construct() { die('test'); } }
3) Déclarer le nom dans l’autoload de composer.json
Charger la classe automatiquement dans le projet…
"autoload": { "psr-4": { "App\\": "src", "Lib\\": "src/Lib" } },
4) Utiliser la classe dans un contrôleur
Préciser que l’on veux utiliser une classe spécifique en précisant l’espace dans lequel la trouver : « use Lib\MyClass »
use Lib\MyClass; class TestController extends AppController{ public function index() { $class = new MyClass(); } }
5) Lancer une mise à jour des fichiers d’autoload
Lancer la commande depuis le dossier du projet :
composer.phar dump-autoload
Comments are closed.