2012-09-21 41 views
0

我在很多有代碼與註釋工作的圖書館看到了這一點使用(從Doctrine2爲例):PHP「namespaced」docblock標籤?

<?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

不,它的一個功能是幫助IDE的netbeans在那裏自動完成和提示輸入代碼。

如果你想要做一些解析文檔塊,作爲替代方案,你可以使用反射類,以獲取有關類的信息,而不解析文檔塊(這可能是不準確的)

看到這個tutorial

+0

我一直在使用反射來閱讀docblocks之前,但我想知道是否有一種方法來「命名空間」他們。所以我猜,在上面的例子中,Doctrine解析器基本上將「namespaced」標籤解析爲最後一個值(column,id,entity,whatever)? – Pinetree