Zend Expressive Маршруты возвращаются только 404 - PullRequest
0 голосов
/ 24 октября 2019

У меня было работающее приложение Zend Expressive, и я немного поработал над ним. Возвращаясь к работе над ним, я получал только 404 ошибки со всех моих маршрутов. У меня есть настройка приложения для работы под псевдонимом маршрута, который также работал просто отлично. Я предполагаю, что что-то пошло не так в конфигурации, но я не знаю что, и не знаю, где искать. Любая помощь приветствуется. Я могу опубликовать исходный код по мере необходимости, но я просто начну с файла rout.php, так как он сейчас наиболее актуален. Спасибо!

Я использую Zend Router в приложении Zend Expressive.

<?php

declare(strict_types=1);

use Psr\Container\ContainerInterface;
use Zend\Expressive\Application;
use Zend\Expressive\MiddlewareFactory;


return function (Application $app, MiddlewareFactory $factory, ContainerInterface $container) : void {
    $app->get('/ping', App\Handler\PingHandler::class, 'api.ping');

    // Redirect to dashboard
    $app->get('/', function() {
            return new Zend\Diactoros\Response\RedirectResponse('/admin/dashboard');
        },
    'redirect'
    );

    // Dashboard
    $app->route(
        '/dashboard'
        ,
        [
            Zend\Expressive\Authentication\AuthenticationMiddleware::class,
            App\Middleware\LoadUserMiddleware::class,
            App\Middleware\LoadProjectsMiddleware::class,
            App\Middleware\LoadInvoicesMiddleware::class,
            App\Middleware\LoadSubscriptionsMiddleware::class,
            App\Middleware\LoadServersMiddleware::class,
            App\Handler\DashboardHandler::class,
        ],
        [
            'GET',
            'POST'
        ],
        'home'
    );

    // Login
    $app->route(
        '/login'
        ,
        [
            App\Handler\LoginPageHandler::class,
            Zend\Expressive\Authentication\AuthenticationMiddleware::class,
            App\Handler\LoginRedirectHandler::class,
        ],
        [
            'GET',
            'POST',
        ],
        'login'
    );

    // Projects
    $app->route(
        '/projects'
        ,
        [
            Zend\Expressive\Authentication\AuthenticationMiddleware::class,
            App\Middleware\LoadUserMiddleware::class,
            App\Middleware\LoadProjectsMiddleware::class,
            App\Handler\ProjectsHandler::class,
        ],
        [
            'GET',
            'POST',
        ],
        'projects'
    );

    // Add Card
    $app->route(
        '/add-card'
        ,
        [
            Zend\Expressive\Authentication\AuthenticationMiddleware::class,
            App\Middleware\LoadUserMiddleware::class,
            App\Handler\AddCardHandler::class,
        ],
        [
            'GET',
            'POST',
        ],
        'add-card'
    );

    // Add Projects
    $app->route(
        '/projects/add'
        ,
        [
            Zend\Expressive\Authentication\AuthenticationMiddleware::class,
            App\Middleware\LoadUserMiddleware::class,
            App\Middleware\AdminAuthorizationMiddleware::class,
            App\Middleware\LoadProjectsMiddleware::class,
            App\Middleware\LoadFormDependenciesMiddleware::class,
            App\Handler\AddProjectHandler::class,
        ],
        [
            'GET',
            'POST',
        ],
        'projects.add'
    );

    //List Servers
    $app->route(
        '/servers/list'
        ,
        [
            Zend\Expressive\Authentication\AuthenticationMiddleware::class,
            App\Middleware\LoadUserMiddleware::class,
            App\Middleware\AdminAuthorizationMiddleware::class,
            App\Handler\Servers\ListServersHandler::class,
        ],
        [
            'GET',
            'POST',
        ],
        'servers.list'
    );

    // Logout
    $app->get('/logout', function(\Psr\Http\Message\ServerRequestInterface $request) : \Psr\Http\Message\ResponseInterface {
        $session = $request->getAttribute(\Zend\Expressive\Session\SessionMiddleware::SESSION_ATTRIBUTE);
        if ($session->has(\Zend\Expressive\Authentication\UserInterface::class)) {
            $session->clear();
        }

        return new Zend\Diactoros\Response\RedirectResponse('/admin/login');
    },
    'logout'
    );
};

...