У меня было работающее приложение 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'
);
};