Anotace – komplexnejsi

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
xmn
Člen | 6
+
0
-

Zdravim,

momentalne pracuji na komplexnejsim systemu, jehoz soucasti je i neco jako ORM. Vazby mezi db a modelem vytvarim pomoci Annotations ale mam bohuzel problem zadat slozitejsi anotaci, ktera by, teoreticky, mela fungovat. IMHO je problem v regularu ve tride Annotation

<?php
	/**
	 * @var array
	 * @dbTable(table='article_meta',pk=false,bind=array('id'=>'article_id','var'=>'var','val'=>'value','type'=>'type'))
	 * */
	protected $meta;
?>

parametr bind je rozparsovan takto: [bind] ⇒ array(‚var‘=>‚var‘

tzn. za prvnim parem pole je „utnut“. Coz se mi samo o sobe nelibi. Jedna se o bug? Nicmene bych privital i naslednou interpretaci parametru tak aby se array() interpretoval na pole, true/false na booly a pod. Bylo by to dokonale ;-)

Diky za info,

Mirek.

Editoval xmn (20. 7. 2009 7:37)

David Grudl
Nette Core | 8228
+
0
-

Ten parser je poměrně jednoduchý a s taktovýmto využitím nepočítá. Takovýto zápis v phpDoc čitelně stejně nevypadá, takže bych asi nešel cestou úpravy parseru, ale úpravy zápisu. Co třeba

<?php
	/**
	 * @var array
	 * @dbTable(table='article_meta',pk=false)
	 * @dbBind(id=article_id,var=var,val=value,type=type)
	 * */
	protected $meta;
?>