This commit is contained in:
xl
2023-11-17 09:28:00 +08:00
parent 73a71267f5
commit c621ba0676
+53 -51
View File
@@ -7,12 +7,15 @@ namespace Kiri\Router\Base;
use Kiri; use Kiri;
use Kiri\Router\Response; use Kiri\Router\Response;
use Kiri\Router\Request; use Kiri\Router\Request;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use Psr\Container\NotFoundExceptionInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use Psr\Http\Message\RequestInterface; use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Kiri\Di\Inject\Container; use Kiri\Di\Inject\Container;
use ReflectionException; use ReflectionException;
use Kiri\Error\StdoutLogger;
/** /**
* Class WebController * Class WebController
@@ -24,67 +27,66 @@ abstract class Controller
{ {
/** /**
* @var Request * @var Request
*/ */
#[Container(RequestInterface::class)] #[Container(RequestInterface::class)]
public RequestInterface $request; public RequestInterface $request;
/**
* @var Response
*/
#[Container(ResponseInterface::class)]
public ResponseInterface $response;
/**
* @return ContainerInterface
*/
private function getContainer(): ContainerInterface
{
return Kiri::getDi();
}
/** /**
* @return Kiri\Error\StdoutLogger * @var Response
* @throws ReflectionException
*/ */
private function getLogger(): Kiri\Error\StdoutLogger #[Container(ResponseInterface::class)]
{ public ResponseInterface $response;
return Kiri::getDi()->get(LoggerInterface::class);
}
/** /**
* @param string $name * @var ContainerInterface
* @return mixed */
*/ #[Container(ContainerInterface::class)]
public function __get(string $name) public ContainerInterface $container;
{
// TODO: Implement __get() method.
return $this->{'get' . ucfirst($name)}();
}
/** /**
* @param Request $request * @return StdoutLogger
* @return true * @throws ContainerExceptionInterface
*/ * @throws NotFoundExceptionInterface
public function beforeAction(RequestInterface $request): bool */
{ protected function getLogger(): StdoutLogger
return true; {
} return $this->container->get(LoggerInterface::class);
}
/** /**
* @param Response $response * @param string $name
* @return void * @return mixed
*/ */
public function afterAction(ResponseInterface $response): void 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
{
}
} }