Задать универсальный роут

149
12 сентября 2021, 03:20

Пробую делать spa приложение на ZF3. Нужен универсальный роут

Вот в Ларавел есть такая возможность

Route::any('{any?}', function () {
        return view('index');
    })->where('any','.*');

А как это можно сделать в Zend Framework 3?

Answer 1

Возможно Вам подойдет \Zend\Mvc\Router\Http\Regex::class => '/(?<url>.+)'

Answer 2

Благодарю @abu, повозился и сам как-то понял. Дам все же немного развернутый ответ. Кому-нибудь пригодится.

У меня модуль базовый "App". Создал новый модуль "Api" И вот что у меня в конфигурациях модулей

//module App, file: config.module.php
'routes' => [
            'home' => [
                'type' => Regex::class,
                'options' => [
                    'regex'    => '([^\?]+)(\?.*)?',
                    'defaults' => [
                        'controller' => Controller\IndexController::class,
                        'action'     => 'index',
                    ],
                    'spec' => ''
                ],
            ],
        ],

//module Api file:config.module.php
'routes' => [
            'api_index' => [
                'type'    => Regex::class,
                'options' => [
                    'regex'    => '/api/(?<index>[a-zA-Z0-9_-]+)',
                    'defaults' => [
                        'controller'    => Controller\IndexController::class,
                        'action'        => 'index',
                    ],
                    'spec' => '/api/%index%'
                ],
            ],
        ],

Все работает. При обращении ко всем роутам с сегментом api будет обращение к модулю Api, а во всех остальных случаях будет отвечать базовый модуль.

READ ALSO
Парсер на php как взять текст

Парсер на php как взять текст

Всем привет! Есть страница: https://wwwbetexplorer

195
Проверка, авторизован ли пользователь в шаблоне freemarker

Проверка, авторизован ли пользователь в шаблоне freemarker

Разрабатываю проект на Spring MVC, Spring Boot, Spring Security, и в качестве шаблонизатора использую FreemarkerНеобходимо сделать так, чтобы если посетитель сайта...

122
Запрос json к веб-серверу отрабатывает на эмуляторе в Android Sudio, но не работает на реальном устройстве

Запрос json к веб-серверу отрабатывает на эмуляторе в Android Sudio, но не работает на реальном устройстве

В мобильном приложении, разрабатываемом в Android Studio на Java, выполняется обращение веб-серверу с запросом на проверку подключения к БД MS SQL ServerВ...

85