Visualizzazione post con etichetta twig. Mostra tutti i post
Visualizzazione post con etichetta twig. Mostra tutti i post

giovedì 10 luglio 2014

Recuperare variabili GET con twig

Ipotizziamo di dover recuperare una variabile inviata con tramite GET con Twig.
In realtà non si capisce perchè uno debba fare una cosa del genere, vista la potenza delle rotte di symfony, ma non si sa mai.

Quindi ipotizziamo un indirizzo del genere con tanto di variabile GET annessa.

www.miosito.com/pagina/?nomeVariabile=123

Per recuperare il valore della variabile con twig basterà

{{ app.request.query.get('nomeVariabile') }}


giovedì 5 giugno 2014

Su mac non funziona il debug php twig.

Mi è capitato di non riuscire a utilizzare il comando twig {{ dump() }} per il debug.
Per un progetto symfony su mac.

L'unica cosa che sono riuscito a ottenere é una pagina bianca.

L'errore nel file di log é

[05-Jun-2014 09:59:48 Europe/London] PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 116391936 bytes) in /Applications/MAMP/htdocs/pro/vendor/twig/twig/lib/Twig/Extension/Debug.php on line 63


Il problema sta ne file php.ini.
Bisogna abilitare xdebug.

Quindi cercare la riga
[xdebug]
;zend_extension="/Applications/MAMP/bin/php/php5.5.10/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"


e togliere il ; per decommentare.

Riavviare apache e funzionerà tutto.

                                                   /-----------------------------/

Per installare e utilizzare xdebug su linux (ubuntu)
Bisogna prima scaricare e installare il pacchetto:

sudo apt-get install php5-xdebug
 Aprire il file php.ini e aggiungere la stringa:

zend_extension="/usr/lib/php5/20110331/xdebug.so"

Generalmente il file php.ini si trova qui:

/etc/php5/apache2/php.ini

Mentre la stringa da aggiungere potrebbe essere differente. Per trovare l'indirizzo reale del file
xdebug.so 
locate xdebug.so
Sostituite quello il risultato con l'indirizzo che ho scritto io, quello da aggiungere nel file php.ini.

Non rimane che riavviare apache.


sudo /etc/init.d/apache2 restart

domenica 1 dicembre 2013

Ottenere informazioni utente fosUserBundle Symfony2

Per recuperare I dati dell'utente nel controller è necessario utilizzare l'oggetto
$this->getUser()
Quindi per recuperare, ad esempio, l'id dell'utente bisogna utilizzare il metodo ->getId quindi:
$this->getUser()->getId()
Per fare la stessa cosa sul template, quindi utilizzando twig, bisogna fare la stessa cosa, quindi per far spampare l'username dell'utente:
{{ app.user.username }}
E' possibile anche controllare se l'utente è loggato:
{% if is_granted("ROLE") %}
    Hi {{ app.user.username }}
{% endif %}
Ovviamente è necessario scrivere al posto di ROLE il reale ruolo dell'utente, quello che si è scritto nel file di configurazione, ad esempio ROLE_USER o ROLE_ADMIN.