2011-11-28 13 views
6

Chciałbym utworzyć kilka niestandardowych adnotacji dla klasy Entity, natknąłem się na this article on Doctrine2, ale nie jestem pewien, jak zintegrować to z moim pakietem Symfony, czy ktoś może rzucić trochę światła na ten temat?Symfony2 & Doctrine2: Utwórz adnotacje niestandardowe

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

Dzięki

+0

Podstawowe pytanie: czy należy to zintegrować w pakiecie, czy też istnieją fragmenty kodu, które można umieścić gdzie indziej? Jeśli spojrzysz na [README pakietu rozszerzeń doktryny] (https://github.com/stof/StofDoctrineExtensionsBundle/blob/master/Resources/doc/index.rst), zobaczysz, że ten pakiet jest zależny od biblioteka, która wejdzie do biblioteki/dostawcy i nie jest to pakiet. – greg0ire

Odpowiedz

6

inspirować do przedłużenia nauką

  • Biblioteka DoctrineExtensions zawiera kilka klas adnotacji. Ale ponieważ te adnotacje nie mają znaczenia dla rdzenia Doktryny, to właśnie to rozszerzenie jest odpowiedzialne za ich interpretację. Aby to zrobić, wykorzystuje niektóre detektory, które muszą zostać zarejestrowane w narzędziu do wysyłania zdarzeń Doctrine.

  • W Symfony można zadeklarować usługi z doctrine.event_listener (lub doctrine.event_subscriber dla abonentów wydarzenie) więc wiązka Doctrine będzie je znaleźć i zarejestrować je dla Ciebie. The StofDoctrineExtensionsBundle przede wszystkim ma za zadanie zautomatyzować tę część rejestracji detektorów zdarzeń.

W każdym razie, kiedy myślisz o rozszerzenie doktryny, ponieważ może on być stosowany bez Symfony, wolą podzielić swoją pracę na dwie części: jedna jest rozszerzeniem doktryny, drugi jest klej pomiędzy tym rozszerzeniu i Symfony i nazywa się pakietem.

Powiązane problemy