dkplus / action-arguments
提供使用变量操作参数的能力。
1.0
2014-01-28 20:04 UTC
Requires
Requires (Dev)
- bjyoungblood/bjy-authorize: 1.4.*
- phpunit/phpunit: ~3.7
- satooshi/php-coveralls: ~0.6
- spiffy/spiffy-authorize: dev-master
- squizlabs/php_codesniffer: 1.5.*
- zendframework/zend-config: 2.2.*
- zendframework/zend-console: 2.2.*
- zendframework/zend-serializer: 2.2.*
- zendframework/zend-test: 2.2.*
- zf-commons/zfc-rbac: 2.0.*
- zf-commons/zfc-user: 0.*
This package is auto-updated.
Last update: 2024-09-08 22:11:35 UTC
README
功能
- 从路由匹配中提供命名标量参数。(示例 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 添加测试
- 找到合适的类名
- 降低代码复杂性
- 通过控制台清除缓存。