renanonline8/slim-utils

Slim 框架的工具

1.0.0 2019-05-30 02:19 UTC

README

Slim 框架 3 的工具

安装

composer require renanonline8/slim-utils

使用

BaseController

此类的作用是创建控制器类

  1. 创建类
namespace App\Controller;

use \SlimUtils\Controller\BaseController;
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

final class Controller extends BaseController
{
    
    public function control(Request $request, Response $response, Array $args)
    {
        //implement the code...

        //for use a container...
        $this->containerName->functionContainer();
    }
}
  1. 创建带有 Controller 的容器
$container['ControllerIndex'] = function($c) {
    return new \App\Controller\ControllerIndex($c);
};
  1. 实现路由
$app->get('/[{name}]', 'Controller:control');

中间件

此类的作用是成为一个具有对容器易于访问的中间件抽象

  1. 创建类
namespace App\Middleware;

use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use \SlimUtils\Middleware\BaseMiddleware;
use \SlimUtils\Middleware\InterfaceMiddleware;


class ExampleMid extends BaseMiddleware implements InterfaceMiddleware
{
    public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next)
    {
        //for use a container...
        $this->containerName->functionContainer();
        
        $response->getBody()->write('BEFORE');
        $response = $next($request, $response);
        $response->getBody()->write('AFTER');

        return $response;
    }
}
  1. 在路由中添加中间件
$app->get('/[{name}]', 'Controller:control')->add(new ExampleMid($container));