74 lines
2.8 KiB
PHP
74 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace Lean;
|
|
|
|
use League\Route\Http\Exception\MethodNotAllowedException;
|
|
use League\Route\Strategy;
|
|
use League\Route\Http\Exception\NotFoundException;
|
|
use Lean\ApplicationStrategy\MethodNotAllowedInterface;
|
|
use Lean\ApplicationStrategy\NotFoundDecoratorInterface;
|
|
use Lean\ApplicationStrategy\ThrowableHandlerInterface;
|
|
use Lean\Factory\HttpFactoryInterface;
|
|
use Psr\Container\ContainerInterface;
|
|
use Psr\Http\Message\ResponseInterface;
|
|
use Psr\Http\Message\ServerRequestInterface;
|
|
use Psr\Http\Server\MiddlewareInterface;
|
|
use Psr\Http\Server\RequestHandlerInterface;
|
|
use function DI\get;
|
|
|
|
class ApplicationStrategy extends Strategy\ApplicationStrategy {
|
|
|
|
public function __construct(
|
|
ContainerInterface $di,
|
|
) {
|
|
$this->setContainer($di);
|
|
}
|
|
|
|
public function getNotFoundDecorator(NotFoundException $exception): MiddlewareInterface
|
|
{
|
|
return $this->getContainer()->get(NotFoundDecoratorInterface::class);
|
|
}
|
|
|
|
public function getThrowableHandler(): MiddlewareInterface
|
|
{
|
|
return $this->getContainer()->get(ThrowableHandlerInterface::class);
|
|
}
|
|
|
|
public function getMethodNotAllowedDecorator(MethodNotAllowedException $exception): MiddlewareInterface
|
|
{
|
|
return $this->getContainer()->has(MethodNotAllowedInterface::class) ? $this->getContainer()->get(MethodNotAllowedInterface::class) : parent::getMethodNotAllowedDecorator($exception);
|
|
}
|
|
/*
|
|
<<<<<<< HEAD
|
|
public function getMethodNotAllowedDecorator(MethodNotAllowedException $exception): MiddlewareInterface
|
|
{
|
|
return $this->getContainer()->has(MethodNotAllowedInterface::class) ? $this->getContainer()->get(MethodNotAllowedInterface::class) : parent::getMethodNotAllowedDecorator($exception);
|
|
=======
|
|
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
|
{
|
|
if (php_sapi_name() !== 'cli' and ! defined('STDIN')) {
|
|
return $this->throw404($request);
|
|
}
|
|
|
|
return $handler->handle($request);;
|
|
}
|
|
|
|
public function throw404(ServerRequestInterface $request) : ResponseInterface
|
|
{
|
|
if ( getenv('DEBUG') && $this->di->has(\Picea\Asset\Asset::class) ) {
|
|
$params = $request->getServerParams();
|
|
|
|
$scpName = basename(explode('?', $params['REQUEST_URI'] ?? "", 2)[0]);
|
|
list(, $ext) = array_pad(explode('.', $scpName), 2, null);
|
|
|
|
if ($ext && in_array($ext, ApplicationStrategy::ASSET_TRIGGER_UPDATE)) {
|
|
$this->di->get(\Picea\Asset\Asset::class)->launchInstall();
|
|
}
|
|
}
|
|
|
|
return $this->di->get('error.404');
|
|
}
|
|
};
|
|
>>>>>>> af8b686 (- WIP on ulmus-user mechanics updates)
|
|
}*/
|
|
} |