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\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
{
}
}