Я установил скелетное приложение и рабочий образец тестового скелетного приложения. После этого мне нужно добавить структуру модуля в скелетное приложение Zend, которое показывает ошибку. Мой модуль Имя «Альбом».
module.php
<?php
//testzf2/module/Album/Module.php
namespace Album;
class Album
{
public function getAutoloaderConfig()
{
return array('Zend\Loader\StandardAutoloader' =>
array('namespaces' =>
array(__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,),
),
);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
}
?>
module.config.php
<?php
//testzf2/module/Album/config/module.config.php
return array(
'controllers' => array(
'invokables' => array(
'Album\Controller\Album' => 'Album\Controller\AlbumController', // <----- Module Controller
),
),
// The following section is new and should be added to your file
'router' => array(
'routes' => array(
'album' => array(
'type' => 'segment',
'options' => array(
'route' => '/album[/:action][/:id]', // <---- url format module/action/id
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Album\Controller\Album', // <--- Defined as the module controller
'action' => 'index', // <---- Default action
),
),
),
),
),
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
);
?>
Albumcontroller.php
<?php
//testzf2/module/Album/src/Album/Controller/AlbumComtroller.php
namespace Album\Controller;
use Zend\Mvc\Controller\AbstractActionController;
class AlbumController extends AbstractActionController
{
public function indexAction()
{
return array('valueA'=>555
,'propertyB'=>888);
}
}
?>
Я получаю сообщение об ошибке:
Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message 'Module (Application) could not be initialized.' in D:\xampp\htdocs\Zend\vendor\zendframework\zendframework\library\Zend\ModuleManager\ModuleManager.php:195 Stack trace: #0 D:\xampp\htdocs\Zend\vendor\zendframework\zendframework\library\Zend\ModuleManager\ModuleManager.php(169): Zend\ModuleManager\ModuleManager->loadModuleByName(Object(Zend\ModuleManager\ModuleEvent)) #1 D:\xampp\htdocs\Zend\vendor\zendframework\zendframework\library\Zend\ModuleManager\ModuleManager.php(96): Zend\ModuleManager\ModuleManager->loadModule('Application') #2 [internal function]: Zend\ModuleManager\ModuleManager->onLoadModules(Object(Zend\ModuleManager\ModuleEvent)) #3 D:\xampp\htdocs\Zend\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(468): call_user_func(Array, Object(Zend\ModuleManager\ModuleEvent)) #4 D:\xampp\htdocs\Zend\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(207): Zend\EventMana in D:\xampp\htdocs\Zend\vendor\zendframework\zendframework\library\Zend\ModuleManager\ModuleManager.php on line 195
В сообщениях об ошибках говорится:
Модуль (приложение) не может быть инициализирован.
Так что это не имеет ничего общего с вашим модулем Альбом!
Я думаю, что ваш config / application.config.php имеет неправильные пути и / или ваш Module.php / config.module.php не является правильным в приложении
Ваш Module.php
подпись не уважает Стандарт автозагрузки PSR и ZF2 Модуль Автозагрузчик не удалось инициализировать ваш модуль.
Попробуйте изменить имя класса Album
от
<?php
namespace Album;
class Album
{
в
<?php
namespace Album;
class Module
{
Это должно работать.