如何告诉Symfony 3忽略某些注释?

时间:2017-01-05 23:24:41

标签: annotations symfony

我正在使用Symfony 3开发API,我想使用apidoc来创建文档。 Apidoc使用注释:

/**
 * @api {get} /user/:id Request User information
 * @apiName GetUser
 * @apiGroup User
 *
 * @apiParam {Number} id Users unique ID.
 *
 * @apiSuccess {String} firstname Firstname of the User.
 * @apiSuccess {String} lastname  Lastname of the User.
 */

但Symfony会抛出一个注释异常:

  

[语义错误]方法中的注释“@apiName”   AppBundle \ Controller \ API \ ApiLoginController :: loginAction()从来没有   进口。您是否忘记为此添加“使用”声明?   注释

     

500内部服务器错误 - AnnotationException

有没有办法告诉symfony忽略这些注释?提前谢谢。

2 个答案:

答案 0 :(得分:8)

还有一种方法可以ignore an annotation globally。我们不想为每个类添加注释,因此我们将其添加到引导文件web/app.php中。

Doctrine\Common\Annotations\AnnotationReader::addGlobalIgnoredName('your-custom-annotation');

答案 1 :(得分:7)

你可以使用@IgnoreAnnotation Doctrine annotation。试试这个:

/**
 * @IgnoreAnnotation("api")
 * @IgnoreAnnotation("apiName")
 * @IgnoreAnnotation("apiGroup")
 * @IgnoreAnnotation("apiParam")
 * @IgnoreAnnotation("apiSuccess")
 */
class SomeController extends Controller{
...
    /**
     * @api {get} /user/:id Request User information
     * @apiName GetUser
     * @apiGroup User
     *
     * @apiParam {Number} id Users unique ID.
     *
     * @apiSuccess {String} firstname Firstname of the User.
     * @apiSuccess {String} lastname  Lastname of the User.
     */

该文档位于该链接的下方。