Con il motore di elaborazione delle annotazioni Doctrine per PHP e gli Annotatons utilizzati per Doctrine Entities e per Zend Form, e possibilmente altre cose, e anche in altre lingue, sembra che Annotations
sia qui per rimanere.
Esempi di annotazioni per il modulo Zend:
/**
* @Annotation\Filter({"name":"StringTrim"})
* @Annotation\Validator({"name":"StringLength", "options":{"min":1, "max":24}})
* @Annotation\Validator({"name":"Regex","options":{"pattern":"/^[a-zA-Z][a-zA-Z0-9_-]{0,24}$/"}})
* @Annotation\Attributes({"type":"text"})
* @Annotation\Options({"label":"Username:"})
* @Annotation\ErrorMessage("Invalid Username")
*/
public $username;
La classe AnnotationBuilder
con l'aiuto del motore di elaborazione continuerà a costruire per me un modulo Zend, secondo le specifiche. Modi alternativi per farlo sono disponibili tramite classi e metodi Zend \ Form.
Preoccupazioni
Ho notato che le annotazioni sono fondamentalmente commenti e non sono soggette a verifica da parte dell'interprete o di un compilatore, e questo è parte della mia preoccupazione. Se alcune sintassi cambiano, non vi è alcun messaggio di errore e non è immediatamente rilevabile nulla che debba essere corretto.
Si potrebbe pensare che l'errata digitazione di una proprietà possa generare un errore da qualche parte, ma no - tentando di modificare alcune delle direttive di annotazione, non viene emesso un avviso, ma si presume che i valori predefiniti siano assunti. Come tale, digitando un'annotazione non si ottiene il feedback su alcuna sintassi degli errori semantici.
Domanda
Quando sono disponibili altri modi (classi, metodi, api, matrici), che possono essere controllati staticamente e dinamicamente, è dannoso per la qualità del codice e la manutenzione utilizzare le annotazioni?