方法参数过滤器

    目录

    imi 框架的方法参数过滤器是一种方便开发者在框架层面对方法参数进行过滤的机制。

    注解说明

    @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!"}');