2011-11-28 96 views
6

我想創建一個實體類的一些自定義註釋,我遇到過this article on Doctrine2但是我不確定如何將它集成到我的Symfony包中,任何人都可以脫落對此有所瞭解?Symfony2&Doctrine2:創建自定義註釋

class User implements UserInterface 
{ 
    /** 
    * @var integer $id 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    * 
    * @myCustomVar(remember="true") 
    */ 
    protected $id; 

感謝

+0

基本問題:你是否應該將它整合到一個包中,或者是否存在可以放在別處的代碼片段?如果你看[doctrine extensions bundle的README](https://github.com/stof/StofDoctrineExtensionsBundle/blob/master/Resources/doc/index.rst),你會看到這個bundle依賴於庫將進入庫/供應商,這不是一個捆綁。 – greg0ire

回答

6

激發你的學說擴展:

  • DoctrineExtensions庫包含了一些註解類。但是,由於這些註釋對於Doctrine核心來說並不意味着什麼,所以它也是負責解釋它們的擴展。爲此,它使用一些必須註冊到Doctrine的事件調度程序中的偵聽器。

  • 在Symfony中,您可以使用doctrine.event_listener(或doctrine.event_subscriber用於事件訂戶)聲明服務,以便Doctrine包可以找到它們併爲您註冊。 StofDoctrineExtensionsBundle主要目的是自動化這部分事件監聽器註冊。

無論如何,當你想擴展學說,因爲它可以在不Symfony的使用,喜歡在兩個部分來劃分你的工作:一個是理論的擴展,另一個是該擴展和Symfony和之間的膠水被稱爲捆綁。