方法参数过滤器

在方法调用时,你可以通过方法参数过滤器,对传入方法的参数进行过滤处理。

注解说明

@FilterArg

属性名称 说明
name 参数名
filter 过滤器callable

用法示例

简单使用:

  1. /*
  2. * @FilterArg(name="data", filter="json_decode")
  3. */
  4. public function test($data)
  5. {
  6. var_dump($data); // 这是一个stdClass对象
  7. }
  8. $obj->test('{"id":1, "message": "imi nb!"}');

复杂用法:

结合@Callback@Inject注解使用,支持使用bean中的方法。

  1. /**
  2. * @Bean("XXX")
  3. */
  4. class TestXXX
  5. {
  6. public function decode($data)
  7. {
  8. return json_decode($data, true);
  9. }
  10. }
  11. /*
  12. * @FilterArg(name="data", filter=@Callback(
  13. * class=@Inject("XXX"),
  14. * method="decode"
  15. * ))
  16. */
  17. public function test($data)
  18. {
  19. var_dump($data); // 这是一个数组
  20. }
  21. $obj->test('{"id":1, "message": "imi nb!"}');