2011-11-28 39 views
6

Tôi muốn tạo một vài chú thích tùy chỉnh cho lớp Entity, tôi đã xem qua this article on Doctrine2 tuy nhiên tôi không chắc chắn về cách tích hợp gói này vào gói Symfony của tôi một số ánh sáng về điều này?Symfony2 & Doctrine2: Tạo chú thích tùy chỉnh

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

Cảm ơn

+0

Câu hỏi nằm dưới: bạn có nên tích hợp điều này trong một gói hoặc có các đoạn mã mà bạn có thể đặt ở nơi khác không? Nếu bạn xem [README của gói mở rộng giáo lý] (https://github.com/stof/StofDoctrineExtensionsBundle/blob/master/Resources/doc/index.rst), bạn sẽ thấy rằng gói này phụ thuộc vào thư viện sẽ đi vào bên trong lib/vendor, và đó không phải là một gói. – greg0ire

Trả lời

6

Truyền cảm hứng cho bạn để mở rộng học thuyết:

  • Thư viện DoctrineExtensions chứa một số lớp học chú thích. Nhưng vì chú thích này không có ý nghĩa gì đối với lõi của Doctrine, nó cũng là phần mở rộng này có trách nhiệm diễn giải chúng. Để làm điều đó, nó sử dụng một số người nghe phải được đăng ký vào bộ điều phối sự kiện của Doctrine.

  • Trong Symfony bạn có thể khai báo dịch vụ với doctrine.event_listener (hoặc doctrine.event_subscriber cho người đăng ký sự kiện) để gói Doctrine sẽ tìm và đăng ký chúng cho bạn. StofDoctrineExtensionsBundle chủ yếu nhằm mục đích tự động hóa phần này của đăng ký người nghe sự kiện.

Dù sao, khi bạn nghĩ về việc gia hạn Doctrine, vì nó có thể được sử dụng mà không Symfony, thích chia công việc của bạn thành hai phần: một là phần mở rộng học thuyết, người kia là keo giữa phần mở rộng này và Symfony và được gọi là bó.

Các vấn đề liên quan