Zend Framework - Создание модуля
В этой главе мы узнаем, как создать модуль на основе MVC в Zend Framework. Давайте создадим модуль с именемTutorial чтобы понять процесс создания модуля.
Создайте новый класс PHP с именем Module внутри каталога –myapp / module / Tutorial / src / и реализуйте интерфейс ConfigProviderInterface.
Набор Tutorial как пространство имен для Module класс.
Напишите публичную функцию getConfig в Module class и верните файл конфигурации для Tutorial Модуль.
Полный код для 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 раздел, используя следующий код.
"autoload": {
"psr-4": {
"Application\\": "module/Application/src/",
"Tutorial\\": "module/Tutorial/src/"
}
}
Обновите приложение с помощью композитора update как показано ниже.
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',],
],
];
Файл конфигурации состоит из трех частей, и они следующие:
Controller configuration - Укажите контроллеры, доступные внутри модуля.
Routing configuration - Укажите, как контроллеры в модуле должны быть преобразованы в URL-адреса.
View configuration - Укажите конфигурацию, относящуюся к просмотру движка, например расположение просмотров и т. Д.
Настроить Tutorial модуль в файле конфигурации уровня приложения - myapp / config / modules.config.php.
return ['Zend\Router', 'Zend\Validator', 'Application', 'Tutorial'];
Запустите приложение, выполнив composer serve в корне папки приложения.
Мы успешно добавили новый модуль, но нам все еще нужно добавить Controller, Routing и Views чтобы успешно запустить Tutorial модуль.