如何给 controller 或 action 附加属性?


在web开发过程中,有没有一种方式给 controller 或 action 附加一种属性,类似给 controller 或 action 打上不同的 tag,用于区分不同的类型,如下:


 /*
 * @Tags("All")
 */
class UserController extends Controller {
    /*
     * @Tags("Read")
     */
    public function index() {
    }

    /*
     * @Tags("Write")
     */
    public function add() {
    }

    /*
     * @Tags("Write")
     */
    public function foo() {
    }
}

laravel python ruby java php

我才不内涵 10 years, 1 month ago

撸 C# 不? 里面有 Attribute 可以给成员进行标注。
python 也可以用 装饰器 来实现。
其他的就不熟了。


UPDATE: PHP 可以通过反射拿到注释,黑魔法……
ReflectionClass::getDocComment
Faking method attributes in PHP?

Boxix answered 10 years, 1 month ago

Java有annotation,问题在于你想怎么利用这些tag?


 @All //也可以@Tags("All")
class UserController extends Controller {
    @Read
    public Object index() {
    }

    @Write
    public Object add() {
    }

    @Write
    public Object foo() {
    }
}

小小的乱乱 answered 10 years, 1 month ago

Your Answer