Zend Framework - Erstellen eines Moduls

In diesem Kapitel erfahren Sie, wie Sie ein MVC-basiertes Modul im Zend Framework erstellen. Lassen Sie uns ein Modul namens erstellenTutorial um den Modulerstellungsprozess zu verstehen.

  • Erstellen Sie eine neue PHP-Klasse mit dem Namen Module im Verzeichnis –myapp / module / Tutorial / src / und implementieren Sie das ConfigProviderInterface.

  • einstellen Tutorial als Namespace für die Module Klasse.

  • Schreiben Sie eine öffentliche Funktion getConfig in dem Module Klasse und geben Sie die Konfigurationsdatei für die Tutorial Modul.

Der vollständige Code für die Module Klasse ist wie folgt -

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

Konfigurieren Sie die Tutorial Modul in der composer.json unter dem autoload Abschnitt mit dem folgenden Code.

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

Aktualisieren Sie die Anwendung mit dem Composer update Befehl wie unten gezeigt.

composer update

Das composer Der Befehl nimmt die erforderlichen Änderungen an der Anwendung vor und zeigt die Protokolle in der Eingabeaufforderung wie unten gezeigt an.

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

Erstellen Sie die Modulkonfigurationsdatei "module.config.php" unter /config/ mit folgendem Code -

<?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',], 
   ], 
];

Die Konfigurationsdatei besteht aus drei Teilen:

  • Controller configuration - Geben Sie die im Modul verfügbaren Controller an.

  • Routing configuration - Geben Sie an, wie die Controller im Modul in URLs aufgelöst werden sollen.

  • View configuration - Geben Sie die Konfiguration für die Ansicht der Engine an, z. B. den Speicherort der Ansichten usw.

Konfigurieren Sie die Tutorial Modul in der Konfigurationsdatei auf Anwendungsebene - myapp / config / modules.config.php.

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

Führen Sie die Anwendung aus, indem Sie das ausführen composer serve im Stammverzeichnis des Anwendungsordners.

Wir haben erfolgreich ein neues Modul hinzugefügt, müssen aber noch das hinzufügen Controller, Routing und Views um das erfolgreich auszuführen Tutorial Modul.