plugse/ctrl

通过注册的路由启动控制器

1.0.0 2023-09-29 12:23 UTC

This package is auto-updated.

Last update: 2024-09-16 15:21:01 UTC


README

GitHub release (release name instead of tag name) GitHub PHP PHP Unit

从先前指定的路由执行控制器

菜单

作为依赖项安装

使用Composer安装File和Path

直接通过Composer安装

  composer require plugse/ctrl

修改composer.json文件

  1. 创建或修改composer.json文件
  2. 创建或修改require属性
{
    "require": {
        "plugse/ctrl": "^1"
    }
}
  1. 使用以下命令更新库
    composer update

运行测试

要运行测试,请运行以下命令

  composer run-script post-install-cmd

功能

  • 返回在控制器定义的路由中执行的方法的结果。
/**
     * Retorna o resultado do método executado na classe controller definida na rota.
     * @return string
     */
    $boot = new Bootstrap();
    echo $boot->getResponse();
  • 允许创建一个Route类(一个路由)。
    /**
     * @param string $controllerName - O nome do controller (sem o sufixo Controller).
     * @param string $method - O método http que será usado para acessar a action. Valor padrão GET.
     * @param string $action - A função a ser executada na classe controller. Valor padrão index.
     * @param bool $isPrivate - Essa rota é privada? Valor padrão false.
     */
    new Route('foo');
  • 允许创建五个路由:index、create、update、cancel和erase。
    /**
     * @param string $controllerName - O nome do controller (sem o sufixo Controller).
     * @param array $omit - A lista de rotas que devem alterar o seu parâmetro $isPrivate. Valor padrão [].
     */

    new RouteCollection('foo');
  • 执行在路由中定义的控制器类的方法
    /**
     * @param Request $request - Objeto com os parâmetros definidos na requisição http.
     * @param Routes $routes - Listagem das rotas definidas na aplicação.
     * @param string $controllersPath - Caminho para a pasta onde se encontram as classes controller. Valor padão: './src/infra/http/controllers/' .
     */
    $starter = new ControllerStarter($request, $routes);
    echo $starter->execute();

异常

  1. ClassNotFoundError
  2. FileNotFoundError
  3. MethodNotImplementedError
  4. PermitionDeniedError
  5. PermitionIncorrectError
  6. RouteNotImplementedError
  7. TokenDecodeError
  8. TokenExpiredError