Passa ai contenuti principali

Utilizzare i servizi nei templates twig

Nello sviluppo di un'applicazione web spesso ci si imbatte nel dover progettare un'architettura dinamica
L'implementazione di un tema grafico è tutt'altro che che banale
Twig viene in aiuto con l'estensione dei template, i blocchi, gli include e i render controller
Inoltre c'è la possibilità di scrivere estensioni ad hoc per il proprio progetto
Partiamo dal presupposto che il tema grafico non deve essere fisso, ossia può essere cambiato col tempo
La progettazione del tema grafico richiede di renderlo il più possibile staccato dal controller
Quindi in twig è necessario fare un build di vari frammenti e dati
In linea generale i dati devono essere richiamati da twig e non viceversa
Partendo da questo presupposto, in fase di generazione del template il controller deve inserire tutti i dati, ma proprio tutti
Il controller però in questo caso diventa monolitico
Non è la soluzione migliore
L'altra opzione è inserire in twig i render controller, ma i due oggetti si legano troppo rendendo difficile e lungo una sostituzione della veste grafica
L'ultima opzione è un'idea che mi  venuta strada facendo e di cui non conoscevo l'esistenza, anche perchè la documentazione non è molto chiara
Richiamare in twig i servizi
Il gioco è semplice
twig:
    strict_variables: "%kernel.debug%"
    #engines: ['twig', 'php']
    globals:
       ......

       dati_servizio: @mio_servizio


in twig ora è utilizzabile il servizio in maniera molto semplice:
 {% for dato in dati_servizio.getList() %}
    <option>
        {{ dato.nome }}
    </option>
 {% endfor %}

In questo modo è possibile richiamare i metodi del servizio all'interno di Twig e recuperare i dati

Commenti

Post popolari in questo blog

install language on osTicket

this simple guide aims you to install and configure your language on osTicket i written this guide based on forum post http://osticket.com/forum/discussion/76252/installing-language-pack

Ubuntu: La propria installazione di python è danneggiata. Correggere il collegamento simbolico «/usr/bin/python».

Questa è un problema, soprattutto se si vuole aggiornare la distribuzione.+
Dì la verità: hai pacioccato con le versioni di python vero? Volevi usare la 3.5 e non 2.7 e così hai aggiunto alternatives o manipolato il symlink.
No? io si.
Così in fase di aggiornamento mi sono bloccato.
Allora per risolverlo ecco la soluzione: elimina tuttle le eventuali alternative : sudo update-alternatives –remove-all pythoncrea il symlink alla 2.7 sudo ln -s /usr/bin/python3.5 /usr/bin/pythonaggiorna i permessi: sudo chmod 7777 /usr/bin/python
Ora funziona tutto.
La soluzione l’ho scovata qui: https://askubuntu.com/questions/448926/do-release-upgrade-python-install-is-corrupted

Setup Google Tag Manager con PrestaShop per l'e-commerce avanzato

Google Tag Manage e E-commerce Avanzato all’interno della documentazione ufficiale è descritto sia il processo che il codice di implementazione per il monitoraggio avanzato dell’e-commerce
In breve il codice da inserire deve essere un array tipo dataLayer che contiene una serie di informazioni per il monitoraggio di:
impressioni di prodotto e di categoriadettaglio di prodottocheckoutacquisto Sono presenti anche i meccanismi per il monitoraggio delle promozioni, per l’annullamento ordine e per l’aggiunta dinamica del prodotto in carrello
Nel caso del modulo BwAnalytics sono monitorati i primi 4.
Google Tag Manager L’attivazione dell’ecommerce avanzato si effettua sulla vista di Google Analytics e si impostano i nomi degli step del processo di checout mappati all’interno del codice
Limpostazione di Google Tag Manager per l’e-commerce avanzato richiede la greazione di 3 tag:
impressioni e dattagli categoria e prodottocheckout acquisto pagine prestashop coinvolte Su prestashop le pagine di…