2015-09-10 3 views
1

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

Теперь при переходе на этот адрес 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

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

+1

Календарь \ Контроллер \ CalendarController - это косые черты в правильном направлении? и я думаю, что вам нужно поставить весь путь – volkinc

+2

Эта ошибка, кажется, указывает на одну из трех вещей: либо у вас нет файла с именем «Календарь/Контроллер/CalendarController.php» в вашем пути, у вас есть файл, но класс имя, определенное в нем, не соответствует, или вы не зарегистрировали автозагрузчик. –

ответ

0

Ваше объявление 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() внутри вашего контроллера. :)