Zend Framework - Création d'un module

Dans ce chapitre, nous allons apprendre à créer un module basé sur MVC dans le Zend Framework. Créons un module appeléTutorial pour comprendre le processus de création du module.

  • Créez une nouvelle classe PHP nommée Module dans le répertoire –myapp / module / Tutorial / src / et implémentez ConfigProviderInterface.

  • Ensemble Tutorial comme espace de noms pour le Module classe.

  • Ecrire une fonction publique getConfig dans le Module class et renvoyez le fichier de configuration pour le Tutorial Module.

Le code complet du Module la classe est la suivante -

<?php  
namespace Tutorial; 
use Zend\ModuleManager\Feature\ConfigProviderInterface;
class Module implements ConfigProviderInterface { 
   public function getConfig() {    
      return include __DIR__ . '/../config/module.config.php'; 
   }    
}

Configurer le Tutorial module dans le composer.json sous le autoload section en utilisant le code suivant.

"autoload": { 
   "psr-4": { 
      "Application\\": "module/Application/src/", 
      "Tutorial\\": "module/Tutorial/src/" 
   } 
}

Mettre à jour l'application à l'aide du composeur update comme indiqué ci-dessous.

composer update

le composer La commande apportera les modifications nécessaires à l'application et affichera les journaux dans l'invite de commande comme indiqué ci-dessous -

Loading composer repositories with package information 
Updating dependencies (including require-dev) 
   - Removing zendframework/zend-component-installer (0.3.0) 
   - Installing zendframework/zend-component-installer (0.3.1) 
   Downloading: 100%           
   
   - Removing zendframework/zend-stdlib (3.0.1) 
   - Installing zendframework/zend-stdlib (3.1.0) 
   Loading from cache  
   
   - Removing zendframework/zend-eventmanager (3.0.1) 
   - Installing zendframework/zend-eventmanager (3.1.0) 
   Downloading: 100%           
   
   - Removing zendframework/zend-view (2.8.0) 
   - Installing zendframework/zend-view (2.8.1) 
   Loading from cache  
   
   - Removing zendframework/zend-servicemanager (3.1.0) 
   - Installing zendframework/zend-servicemanager (3.2.0) 
   Downloading: 100%           
   
   - Removing zendframework/zend-escaper (2.5.1) 
   - Installing zendframework/zend-escaper (2.5.2) 
   Loading from cache  
   
   - Removing zendframework/zend-http (2.5.4) 
   - Installing zendframework/zend-http (2.5.5) 
   Loading from cache  
   
   - Removing zendframework/zend-mvc (3.0.1) 
   - Installing zendframework/zend-mvc (3.0.4) 
   Downloading: 100%          
   
   - Removing phpunit/phpunit (5.7.4) 
   - Installing phpunit/phpunit (5.7.5) 
   Downloading: 100%           

Writing lock file 
Generating autoload files

Créez le fichier de configuration du module, «module.config.php» à /config/ avec le code suivant -

<?php  
namespace Tutorial;  
   
use Zend\ServiceManager\Factory\InvokableFactory; 
use Zend\Router\Http\Segment;  
return [ 
   'controllers' => [ 
      'factories' => [Controller\TutorialController::class => InvokableFactory::class,], 
   ],
   'view_manager' => [ 
      'template_path_stack' => ['tutorial' => __DIR__ . '/../view',], 
   ], 
];

Le fichier de configuration comprend trois parties et sont les suivantes -

  • Controller configuration - Spécifiez les contrôleurs disponibles à l'intérieur du module.

  • Routing configuration - Spécifiez comment les contrôleurs du module doivent être résolus en URL.

  • View configuration - Spécifiez la configuration relative à la vue du moteur telle que l'emplacement des vues, etc.

Configurer le Tutorial module dans le fichier de configuration au niveau de l'application - myapp / config / modules.config.php.

return ['Zend\Router', 'Zend\Validator', 'Application', 'Tutorial'];

Exécutez l'application en exécutant le composer serve à la racine du dossier de l'application.

Nous avons ajouté avec succès un nouveau module, mais nous devons encore ajouter le Controller, Routing et Views pour exécuter avec succès le Tutorial module.