我在许多库中都看到过这种情况(来自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功能(因为它似乎与“使用”语句一起使用),或者只是在库中使用这些功能的一些智能文本解析?
我在问,因为我正在开发一个小类,必须阅读一些这样的“元数据”,如果这是语言中包含的东西,它会非常简洁,所以我不必写丑陋的文本解析器。
非常感谢提前。
答案 0 :(得分:1)
不,它是一个功能,可以帮助IDE像netbeans一样在输入代码时自动完成和提示。
如果你想做一些docblock解析,你可以使用反射类来获取有关该类的信息而无需解析docblock(这可能是不准确的)
请参阅此tutorial。