2023-04-15 23:29:27 +08:00
|
|
|
<?php
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
2023-04-15 23:31:16 +08:00
|
|
|
namespace Kiri\Router\Base;
|
2023-04-15 23:29:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
use Kiri;
|
2023-04-19 12:35:39 +08:00
|
|
|
use Kiri\Router\Response;
|
|
|
|
|
use Kiri\Router\Request;
|
2023-04-16 02:01:26 +08:00
|
|
|
use Psr\Container\ContainerInterface;
|
2023-04-15 23:29:27 +08:00
|
|
|
use Psr\Log\LoggerInterface;
|
2023-04-15 23:40:05 +08:00
|
|
|
use Psr\Http\Message\RequestInterface;
|
|
|
|
|
use Psr\Http\Message\ResponseInterface;
|
2023-05-26 10:16:21 +08:00
|
|
|
use Kiri\Di\Inject\Container;
|
2023-04-17 01:13:27 +08:00
|
|
|
use ReflectionException;
|
2023-04-15 23:29:27 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Class WebController
|
|
|
|
|
* @package Kiri\Web
|
2023-04-17 01:13:27 +08:00
|
|
|
* @property-read ContainerInterface $container
|
|
|
|
|
* @property-read LoggerInterface $logger
|
2023-04-15 23:29:27 +08:00
|
|
|
*/
|
|
|
|
|
abstract class Controller
|
|
|
|
|
{
|
|
|
|
|
|
2023-04-16 16:09:14 +08:00
|
|
|
|
|
|
|
|
/**
|
2023-04-19 12:35:39 +08:00
|
|
|
* @var Request
|
2023-04-16 16:09:14 +08:00
|
|
|
*/
|
2023-05-26 10:16:21 +08:00
|
|
|
#[Container(RequestInterface::class)]
|
2023-04-16 02:51:27 +08:00
|
|
|
public RequestInterface $request;
|
2023-04-15 23:29:27 +08:00
|
|
|
|
2023-04-16 16:09:14 +08:00
|
|
|
|
|
|
|
|
/**
|
2023-04-19 12:35:39 +08:00
|
|
|
* @var Response
|
2023-04-16 16:09:14 +08:00
|
|
|
*/
|
2023-05-26 10:16:21 +08:00
|
|
|
#[Container(ResponseInterface::class)]
|
2023-04-16 02:51:27 +08:00
|
|
|
public ResponseInterface $response;
|
2023-04-15 23:29:27 +08:00
|
|
|
|
|
|
|
|
|
2023-04-16 16:09:14 +08:00
|
|
|
/**
|
2023-04-17 01:13:27 +08:00
|
|
|
* @return ContainerInterface
|
2023-04-16 16:09:14 +08:00
|
|
|
*/
|
2023-04-17 01:13:27 +08:00
|
|
|
private function getContainer(): ContainerInterface
|
|
|
|
|
{
|
|
|
|
|
return Kiri::getDi();
|
|
|
|
|
}
|
2023-04-15 23:40:05 +08:00
|
|
|
|
|
|
|
|
|
2023-04-16 16:09:14 +08:00
|
|
|
/**
|
2023-04-17 01:13:27 +08:00
|
|
|
* @return LoggerInterface
|
|
|
|
|
* @throws ReflectionException
|
2023-04-16 16:09:14 +08:00
|
|
|
*/
|
2023-04-17 01:13:27 +08:00
|
|
|
private function getLogger(): LoggerInterface
|
|
|
|
|
{
|
|
|
|
|
return Kiri::getDi()->get(LoggerInterface::class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param string $name
|
|
|
|
|
* @return mixed
|
|
|
|
|
*/
|
|
|
|
|
public function __get(string $name)
|
|
|
|
|
{
|
|
|
|
|
// TODO: Implement __get() method.
|
|
|
|
|
return $this->{'get' . ucfirst($name)}();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2023-04-19 12:35:39 +08:00
|
|
|
/**
|
|
|
|
|
* @param Request $request
|
|
|
|
|
* @return true
|
|
|
|
|
*/
|
|
|
|
|
public function beforeAction(RequestInterface $request): bool
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param Response $response
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
public function afterAction(ResponseInterface $response): void
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2023-04-15 23:29:27 +08:00
|
|
|
}
|