diff --git a/src/Base/Controller.php b/src/Base/Controller.php index 3e2bd6f..bdea10c 100644 --- a/src/Base/Controller.php +++ b/src/Base/Controller.php @@ -7,12 +7,15 @@ namespace Kiri\Router\Base; use Kiri; use Kiri\Router\Response; use Kiri\Router\Request; +use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; +use Psr\Container\NotFoundExceptionInterface; use Psr\Log\LoggerInterface; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; use Kiri\Di\Inject\Container; use ReflectionException; +use Kiri\Error\StdoutLogger; /** * Class WebController @@ -24,67 +27,66 @@ abstract class Controller { - /** - * @var Request - */ - #[Container(RequestInterface::class)] - public RequestInterface $request; - - - /** - * @var Response - */ - #[Container(ResponseInterface::class)] - public ResponseInterface $response; - - - /** - * @return ContainerInterface - */ - private function getContainer(): ContainerInterface - { - return Kiri::getDi(); - } + /** + * @var Request + */ + #[Container(RequestInterface::class)] + public RequestInterface $request; /** - * @return Kiri\Error\StdoutLogger - * @throws ReflectionException + * @var Response */ - private function getLogger(): Kiri\Error\StdoutLogger - { - return Kiri::getDi()->get(LoggerInterface::class); - } + #[Container(ResponseInterface::class)] + public ResponseInterface $response; - /** - * @param string $name - * @return mixed - */ - public function __get(string $name) - { - // TODO: Implement __get() method. - return $this->{'get' . ucfirst($name)}(); - } + /** + * @var ContainerInterface + */ + #[Container(ContainerInterface::class)] + public ContainerInterface $container; - /** - * @param Request $request - * @return true - */ - public function beforeAction(RequestInterface $request): bool - { - return true; - } + /** + * @return StdoutLogger + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface + */ + protected function getLogger(): StdoutLogger + { + return $this->container->get(LoggerInterface::class); + } - /** - * @param Response $response - * @return void - */ - public function afterAction(ResponseInterface $response): void - { - } + /** + * @param string $name + * @return mixed + */ + public function __get(string $name) + { + // TODO: Implement __get() method. + return $this->{'get' . ucfirst($name)}(); + } + + + /** + * @param Request $request + * @return true + */ + public function beforeAction(RequestInterface $request): bool + { + return true; + } + + + /** + * @param Response $response + * @return void + */ + public function afterAction(ResponseInterface $response): void + { + } }