方法参数过滤器

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

    注解说明

    @FilterArg

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

    用法示例

    简单使用:

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

    复杂用法:

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

    /**
     * @Bean("XXX")
     */
    class TestXXX
    {
        public function decode($data)
        {
            return json_decode($data, true);
        }
    }
    
    /*
     * @FilterArg(name="data", filter=@Callback(
     *     class=@Inject("XXX"),
     *     method="decode"
     * ))
     */
    public function test($data)
    {
        var_dump($data); // 这是一个数组
    }
    
    $obj->test('{"id":1, "message": "imi nb!"}');