Скелет Zend Framework 3 из двух модулей

Я следую учебнику Zend Framework 3 по скелету книги.

Сначала я заработал модуль приложения, где он показывает стандартный экран приветствия zend.

Когда я добавил модуль альбома, все пошло нормально. Когда я перехожу к /album в своем URL-адресе, он отображает раздел альбома, так что все в порядке. Однако, когда я удаляю /album из конца URL-адреса, чтобы вернуться в раздел приложения, я получаю следующую страницу 404.

**A 404 error occurred**
  Page not found.
  The requested controller could not be mapped to an existing controller class.

 Controller:
 ApplicationController (resolves to invalid controller class or alias: 
 ApplicationController)
 No Exception available

Я бы показал некоторые разделы своего кода, но в данный момент я не уверен, какой файл может быть причиной этого. Если кто-то может сказать мне, какой файл конфигурации вызывает эту проблему, я могу загрузить его. Я почти уверен, что это маршрутизация, но исходя из ZF1, это что-то вроде головной боли.

Если кто-то может помочь или объяснить мне, где искать, я был бы очень благодарен.

ОБНОВЛЕНИЕ Ниже приведен мой module.config.php для моего модуля приложения.

   <?php
/**
 * @link      http://github.com/zendframework/ZendAlbumApplication for the canonical source repository
 * @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com)
 * @license   http://framework.zend.com/license/new-bsd New BSD License
 */

namespace Application;

use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;
use Zend\ServiceManager\Factory\InvokableFactory;

return [
    'router' => [
        'routes' => [
            'home' => [
                'type' => Literal::class,
                'options' => [
                    'route'    => '/',
                    'defaults' => [
                        'controller' => \ApplicationController::class,
                        'action'     => 'index',
                    ],
                ],
            ],
            'application' => [
                'type'    => Segment::class,
                'options' => [
                    'route'    => '/application[/:action]',
                    'defaults' => [
                        'controller' => Controller\IndexController::class,
                        'action'     => 'index',
                    ],
                ],
            ],
        ],
    ],
    'controllers' => [
        'factories' => [
            Controller\IndexController::class => InvokableFactory::class,
        ],
    ],
    'view_manager' => [
        'display_not_found_reason' => true,
        'display_exceptions'       => true,
        'doctype'                  => 'HTML5',
        'not_found_template'       => 'error/404',
        'exception_template'       => 'error/index',
        'template_map' => [
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
            'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
            'error/404'               => __DIR__ . '/../view/error/404.phtml',
            'error/index'             => __DIR__ . '/../view/error/index.phtml',
        ],
        'template_path_stack' => [
            __DIR__ . '/../view',
        ],
    ],
];
?>

ОБНОВЛЕНИЕ 2 Когда я заменяю /album на /application в URL-адресе, отображается страница приветствия каркаса Zend Framework. Я думал, что эта страница будет отображаться только с http://localhost? Я упускаю смысл или могу сделать модуль приложения модулем по умолчанию, чтобы вам не нужно было добавлять /application в конец URL-адреса?


person WayneP    schedule 18.09.2017    source источник
comment
можешь показать свои модули/application/config.php   -  person Gautam Rai    schedule 18.09.2017
comment
Обновил мой оригинальный пост.   -  person WayneP    schedule 18.09.2017
comment
Я только что добавил /application к своему URL-адресу, и он показывает страницу фреймворка Zend. Я ожидал, что эта страница будет отображаться, когда к URL-адресу не был добавлен бит /application?   -  person WayneP    schedule 18.09.2017
comment
Могу ли я упустить момент, и мне просто нужно установить маршрут по умолчанию, чтобы при переходе на localhost. он показывает модуль приложения?   -  person WayneP    schedule 18.09.2017


Ответы (1)


Я сделал это. Кажется, это была новая ошибка/опечатка.

Пришлось изменить строчку:

'контроллер' => \ApplicationController::class,

TO

'контроллер' => Контроллер\ИндексКонтроллер::класс,

Спасибо, что указали мне правильное направление и сказали, какую страницу кода загрузить.

person WayneP    schedule 18.09.2017