dkplus/action-arguments

提供使用变量操作参数的能力。

This package is auto-updated.

Last update: 2024-09-08 22:11:35 UTC


README

Build Status Scrutinizer Quality Score Coverage Status Total Downloads Latest Stable Version Latest Unstable Version Dependency Status

功能

  • 从路由匹配中提供命名标量参数。(示例 1
  • 可以将标量参数转换为类。
  • 内置对 Doctrine ORM 的支持(示例 2示例 3),但也可以通过使用回调与每个其他映射解决方案一起使用(示例 4示例 5)。
  • 支持可选参数。
  • 当某个参数无法映射到实体时,将显示404错误页面。
  • 如果您的断言可以从服务定位器中检索,则可以将参数注入到您的断言中;这样,您可以通过更好的断言来改进您的控制器/路由保护程序。

示例

命名标量参数

use DkplusActionArguments\Controller\AbstractActionController;

class IndexController extends AbstractActionController
{
    /**
     * Route looks like /user/:id
     */
    public function viewAction($id)
    {
        return array('user' => $this->mapper->find($id));
    }
}

使用 Doctrine ObjectRepository::find 进行最简单的转换

use DkplusActionArguments\Controller\AbstractActionController;

class IndexController extends AbstractActionController
{
    /**
     * Route looks like /user/:user
     */
    public function viewAction(User $user)
    {
        return array('user' => $user);
    }
}

使用自定义 Doctrine ObjectRepository 方法进行转换

use DkplusActionArguments\Annotation\MapParam;
use DkplusActionArguments\Controller\AbstractActionController;

class IndexController extends AbstractActionController
{
    /**
     * Route looks like /user/:name
     * @MapParam(from="name", to="user", using="findOneByName")
     */
    public function viewAction(User $user)
    {
        return array('user' => $user);
    }
}

使用回调进行转换

use DkplusActionArguments\Annotation\MapParam;
use DkplusActionArguments\Controller\AbstractActionController;

class IndexController extends AbstractActionController
{
    /**
     * Route looks like /user/:user
     * @MapParam(to="user", using={"sm_key", "method"})
     */
    public function viewAction(User $user)
    {
        return array('user' => $user);
    }
}

使用自定义转换器进行转换

use DkplusActionArguments\Annotation\MapParam;
use DkplusActionArguments\Controller\AbstractActionController;

class IndexController extends AbstractActionController
{
    /**
     * Route looks like /user/:user
     * @MapParam(to="user", using="my_converter_sm_key")
     */
    public function viewAction(User $user)
    {
        return array('user' => $user);
    }
}

安装

此模块的安装使用 composer。有关 composer 文档,请参阅 getcomposer.org

php composer.phar require dkplus/action-arguments

当被要求输入要安装的版本时,键入 dev-master。然后您可以通过将 DkplusActionArguments 添加到您的模块中,在 config/application.config.php 中启用它。

安装后,将 config/dkplus-action-arguments.global.php.dist 复制到 application/autoload/dkplus-action-arguments.global.php

待办事项

  • 初始化命名参数
  • 添加参数转换器
  • 支持 BjyAuthorize、SpiffyAuthorize、ZfcRbac
  • 更好的文档
  • 为 BjyAuthorize、SpiffyAuthorize 和 ZfcRbac-Support 添加测试
  • 找到合适的类名
  • 降低代码复杂性
  • 通过控制台清除缓存。