Класс Zend Framework не загружается в Ubuntu

52
8

Я портировал приложение Zend Framework на другой сервер. Это приложение Zend Framework 2.3.*

Теперь, перейдя к этому URL- адресу http://calendar.app/calendar, я получаю следующую ошибку:

Fatal error: Class 'Calendar\Controller\CalendarController' not found in/home/vagrant/Code/calendar/vendor/zendframework/zendframework/library/Zend/ServiceManager/AbstractPluginManager.php on line 170

Мой CalendarControler живет в моем модуле календаря, который загружается как

return array(
'controllers' => array(
'invokables' => array(
'Calendar' => 'Calendar\Controller\CalendarController',
),
),
'router' => array(
'routes' => array(
'calendar' => array(
'type' => 'Literal',
'options' => array(
'route' => '/calendar',
'defaults' => array(
'controller' => 'calendar',
'action' => 'index',
),
),
),
),
),
'view_manager' => array(
'template_path_stack' => array(
__DIR__ . '/../view',
),
),

);

Я пытался

composer clear-cache composer dump-autoload

Но это не помогло. Как я могу это исправить.

спросил(а) 2015-09-10T21:42:00+03:00 4 года, 5 месяцев назад
1
Решение
91

Объявление Calendar внутри массива неверно. Вам нужно использовать полное имя в массиве, чтобы Zend мог найти класс.

return array(
'controllers' => array(
'invokables' => array(
'Calendar\ControllerCalendar' => 'Calendar\Controller\CalendarController',
),
'alias' => array(
'Calendar' => 'Calendar\ControllerCalendar',
),
),
'router' => array(
'routes' => array(
'calendar' => array(
'type' => 'Literal',
'options' => array(
'route' => '/calendar',
'defaults' => array(
'controller' => 'calendar',
'action' => 'index',
),
),
),
),
),
'view_manager' => array(
'template_path_stack' => array(
__DIR__ . '/../view',
),
),

Помимо этой ошибки. Подумайте об использовании контроллеров, если ваш класс имеет жесткие зависимости, или вы используете диспетчер службы, например $this->getServiceLocator() внутри вашего контроллера. :)

ответил(а) 2015-09-11T09:06:00+03:00 4 года, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема