Учебники

Zend Framework — Создание модуля

В этой главе мы узнаем, как создать модуль на основе MVC в Zend Framework. Давайте создадим модуль, называемый Tutorial, чтобы понять процесс создания модуля.

  • Создайте новый класс PHP с именем Module в каталоге –myapp / module / Tutorial / src / и реализуйте интерфейс ConfigProviderInterface.

  • Установите Tutorial в качестве пространства имен для класса Module .

  • Напишите публичную функцию getConfig в классе Module и верните файл конфигурации для учебного модуля.

Создайте новый класс PHP с именем Module в каталоге –myapp / module / Tutorial / src / и реализуйте интерфейс ConfigProviderInterface.

Установите Tutorial в качестве пространства имен для класса Module .

Напишите публичную функцию getConfig в классе Module и верните файл конфигурации для учебного модуля.

Полный код для класса Module выглядит следующим образом:

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

Сконфигурируйте модуль Tutorial в composer.json в разделе автозагрузки , используя следующий код.

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

Обновите приложение с помощью команды обновления composer, как показано ниже.

composer update 

Команда composer внесет необходимые изменения в приложение и покажет журналы в командной строке, как показано ниже —

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 

Создайте файл конфигурации модуля «module.config.php» в / config / со следующим кодом —

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

Файл конфигурации состоит из трех частей, и они следующие:

  • Конфигурация контроллера — укажите контроллеры, доступные внутри модуля.

  • Конфигурация маршрутизации — укажите, как контроллеры в модуле должны быть преобразованы в URL-адреса.

  • Просмотр конфигурации — укажите конфигурацию, относящуюся к просмотру движка, например расположение просмотров и т. Д.

Конфигурация контроллера — укажите контроллеры, доступные внутри модуля.

Конфигурация маршрутизации — укажите, как контроллеры в модуле должны быть преобразованы в URL-адреса.

Просмотр конфигурации — укажите конфигурацию, относящуюся к просмотру движка, например расположение просмотров и т. Д.

Сконфигурируйте модуль Tutorial в файле конфигурации уровня приложения — myapp / config / modules.config.php.

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

Запустите приложение, выполнив команду composer в корне папки приложения.

Мы успешно добавили новый модуль, но нам все еще нужно добавить Controller, Routing и Views, чтобы успешно запустить модуль Tutorial .