LeanMapper
LeanMapper copied to clipboard
Metoda Property::getAnnotation zpřístupňující originální anotaci
Rád bych navázal na tento komentář.
Jsem určitě pro komentář zpřístupnit. Otázkou pouze zůstává, jak nejlépe na to, protože parser nyní funguje tak, že si příznaky „vyzobává“ z celého řádku. On aktuálně neřeší místo, kde je poslední anotace.
Příklad namísto slov:
@property Book $book m:hasOne tohle je kniha m:filter(order)
Z tohoto zápisu parser vytáhne příznaky hasOne
a filter
. Co by vracela zamýšlená metoda Property::getDescription
?
Docela se mi líbí, že to takhle funguje. Zvláště to oceníme, až brzy budou moci být anotace přes více řádků:
/**
* @property Book[] $books
* m:hasOne Knihy, které autor napsal
* m:filter(order#published) Seřazené od nejstarších
*
* @property int $age Věk autora
* m:form(unsigned, range: 1-99) Metadata pro továrnu na formulář
*
* @property string|null $website
*/
Řešením by bylo zpřístupnit celou originální anotaci, řekněme pomocí metody Property::getAnnotation
. To by bylo velmi jednoduché. Bylo by to dostatečné řešení?
V podstatě jsem to chtěl pro to, abych mohl dát při generování databáze (schematu) komentáře ke sloupcům. Pokud by tedy vrátila kompletní anotaci (patřící k property), tak si tam klidně vrazím komentář celý, i s lm anotacemi.
@jasir Něco takového bych nejspíše řešil něčím jako m:comment(Můj komentář do databáze)
nebo obdobným vlastním flagem.
Jinak k tématu issue: Řešení Property::getAnnotation
je myslím dostačující. Jediné, co mě ještě napadlo na *"vylepšení", by byla možnost vrátit pole 'flag' => 'komentář'
, čímž bychom dostali zvlášť komentář ke každému flagu. Tedy z uvedeného příkladu něco jako:
array(
'hasOne' => 'Knihy, které autor napsal',
'filter(order#published)' => 'Seřazené od nejstarších',
);
// neřeším unikátnost klíčů atd.
Jen nevím, jestli by to bylo k něčemu dobré...
Hmm, to máš vlastně pravdu