PHP“namespaced”docblock标签?

时间:2012-09-21 10:14:08

标签: php annotations comments docblocks

我在许多库中都看到过这种情况(来自Doctrine2的例子),这些库的代码与注释一起使用:

<?php
namespace MyProject\Entities;

use Doctrine\ORM\Mapping AS ORM;
use Symfony\Component\Validation\Constraints AS Assert;

/**
 * @ORM\Entity
 * @MyProject\Annotations\Foobarable
 */
class User
{
    /**
     * @ORM\Id @ORM\Column @ORM\GeneratedValue
     * @dummy
     * @var int
     */
    private $id;
}

我好像有些评论标签是“命名空间”。这是一些我不知道的PHP功能(因为它似乎与“使用”语句一起使用),或者只是在库中使用这些功能的一些智能文本解析?

我在问,因为我正在开发一个小类,必须阅读一些这样的“元数据”,如果这是语言中包含的东西,它会非常简洁,所以我不必写丑陋的文本解析器。

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

不,它是一个功能,可以帮助IDE像netbeans一样在输入代码时自动完成和提示。

如果你想做一些docblock解析,你可以使用反射类来获取有关该类的信息而无需解析docblock(这可能是不准确的)

请参阅此tutorial