2012-02-15 16 views
8

Mi chiedo dove posso ottenere maggiori informazioni sulla sintassi speciale come @somevar o %somevar% nella configurazione yaml di symfony2?Symfony 2 YAML che passa array

Ad esempio, l'utilizzo di @ definisce una chiamata a un servizio, ovvero il modo in cui si passano le dipendenze ai servizi. %somevar% invece si riferisce al valore di un parametro già definito con il nome somevar.

Quindi, se faccio:

parameters: 
    custom: "some value" 
    another: %custom% 

poi another verrà popolato con il valore di custom, che nel mio caso è "un valore". La mia domanda è, dove sono documentate queste relazioni?

La mia particolare esigenza è di poter fare riferimento a un elemento di un array, ad esempio %somevar[somekey]%, ma quella sintassi non funziona.

Grazie in anticipo!

EDIT: ho trovato questo: Full merge key support. Full support for references, aliases, and full merge key. Don't repeat yourself by referencing common configuration bits.

nella documentazione YAML, ma nessuna documentazione furthur riguardo ..

risposta

0

Cosa che si sta cercando non è realmente circa Yaml in sé, ma circa il caricatore Yaml di il contenitore di iniezione delle dipendenze.

Se si cerca documenti su di esso, qui sono quelli per il vecchio componente (v1): http://components.symfony-project.org/dependency-injection/trunk/book/05-Service-Description

Symfony2 viene fornito con un nuovo componente (basato sugli stessi principi). È possibile trovare i documenti ufficiali qui: http://symfony.com/doc/current/book/service_container.html#service-parameters

Per quanto riguarda il problema, non è possibile accedere ai tasti dei parametri DI, è necessario appiattire quindi manualmente.

È possibile utilizzare un'estensione DI per soddisfare le proprie esigenze, fare esempio su alcuni pacchetti come: https://github.com/symfony/AsseticBundle/blob/master/DependencyInjection/AsseticExtension.php#L54 (forse non è l'esempio migliore).

+0

Grazie, beh, in realtà avevo solo bisogno di fare riferimento ai parametri all'interno di altri parametri, per evitare la duplicazione. Quindi, non è nemmeno all'altezza del DI. Ho scoperto che gli alias di YAML potrebbero fare il trucco, devo solo taggare le voci di cui ho bisogno e quindi fare riferimento a esse come mostrato qui: http://code.google.com/p/snakeyaml/wiki/Documentation#Aliases Non come flessibile come mi aspettavo, ma farà il trucco. Grazie comunque! –