2012-11-01 16 views
9

otrzymuje następujące nieruchomości z PHPDoc komentarza zawierającego adnotację do nauki:Jak „skomentuj” wpisy adnotacji w doktrynie

/** 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

Jaki jest najlepszy sposób na „skomentuj” jedną z linii adnotacji? na przykład coś w tym stylu:

/** 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* //Comment out please// @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

Czy jest obsługiwany sposób, lub ogólna konwencja do tego?

+4

to kolejny powód, dla którego komentarze powinny być komentarzami. –

+0

Jestem skłonny się z tym zgodzić, choć zakładając, że decyzja jest z tego czy innego powodu wykorzystywana do adnotacji, dobrze byłoby złagodzić to ograniczenie. – fazy

+0

// będzie pracować dla adnotacji? –

Odpowiedz

3

Zwykle dodajemy adnotację @foo (ta klasa nie będzie powodować żadnych problemów) w celu komentowania wewnątrz bloków Docku. Możesz zarejestrować się globalną adnotacji na ignorować:

AnnotationReader::addGlobalIgnoredName('foo'); 

ta będzie stosowana jako:

/** 
* @Column(type="string", nullable=false, name="body") 
* @foo type="string", nullable=false, name="body2" 
*/ 
protected $body; 

można zweryfikować na doctrine 2.1 documentation:

The @foo adnotacji. To nie jest adnotacja w dokumentacji, a nie na czarnej liście. W przypadku Adnotacji do Doctrine nie jest całkiem jasne, jak sobie z tym poradzić. W zależności od konfiguracji wyjątków (brak adnotacji) zostanie wyrzucony podczas analizowania tej adnotacji

Według cytatem poniżej, przykład nie powinien wyrzuca żadnego wyjątku, ponieważ @foo adnotacja została registed wcześniej

+0

Dzięki, tego właśnie szukałem. Zapomniałem wspomnieć o tym, że używam frameworka Symfony 2, czy jest możliwe, aby również działał? – fazy

+0

Cieszę się, że mogę Ci pomóc! ... Nigdy nie używałem Symphony, ale myślę, że powinno działać, ponieważ ten wycinek jest użyteczny dla modeli Doctrine – manix

13

Wystarczy wyjąć @ do rozpoznawania adnotacji.

/** 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 
0

Wystarczy umieścić spację między @ a resztą dyrektywy.

/** 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ ORM\GeneratedValue(strategy="AUTO") 
*/