A volte può capitare di dover testare delle condizioni complesse su un oggetto Doctrine. In questi casi, il semplice array solitamente usato col metodo check() può non bastare. Per esempio mi è capitato recentemente di dover testare alcuni campi data con una condizione >= (maggiore o uguale).
Ma lo stesso metodo check() è abbastanza flessibile da accettare come secondo parametro non solo un array, ma anche un oggetto Doctrine_Query. Basterà quindi costruire le condizioni in questo modo e passarle, e il gioco è fatto.
personalizzare i filtri nel backend – 2
Se ricordate un vecchio post sull’applicazione della traduzione ai filtri del backend, sappiate che ora c’è una soluzione migliore:
1 2 3 4 | if (sfConfig::get('sf_i18n')) { $this->widgetSchema->getFormFormatter()->setTranslationCatalogue('sf_admin'); } |
Tutto qui. Basta mettere queste poche righe di codice nelle classi BaseFormFilterDoctrine.class.php o BaseFormFilterPropel.class.php e il gioco è fatto. I filtri saranno tradotti, anche in altre eventuali lingue supportate dall’applicazione.
Symfony2 arriva il sito dei Bundle
Vi stavate iniziando a chiedere se il tal plugin per symfony fosse stato convertito in bundle per symfony 2? Per rispondere a questo quesito è stato pubblicato da qualche giorno il sito Symfony2Bundles che cerca di aggiornarci sullo stato dei vari bundles presenti su GitHub.
Il codice dello stesso sito, messo a disposizione dagli autori di KnpLabs, è liberamente scaricabile e forkabile da GitHub ed inoltre è possibile seguire una discussione su Google Wave per partecipare attivamente al suo mantenimento.
buoni bundle a tutti!
Rilasciato symfony versione 1.3.6 e 1.4.6
Nuovo rilascio di symfony per quanto riguarda i rami di sviluppo 1.3 e 1.4 .
Si tratta di un rilascio che va a chiudere un problema di sicurezza legato al motore di caching delle pagine.
A differenza delle versioni precedenti alla 1.3 e 1.4 symfony permette di salvare in cache anche gli url contenenti parametri GET (e.s. http://esempio.com/?id_articolo=1).
Questi parametri non venivano correttamente analizzati e verificati: con un url del tipo “http://esempio.com/?id_articolo=..”, notare gli ultimi due punti, la rispettiva cache veniva salvata
in una directory superiore a quella voluta.
La vulnerabilità è di tipo Directory Traversal grazie alla quale è possibile accedere a zone del filesystem non permesse.
La gravità di tale falla dipende dai permessi dei file o directory presenti nell’ambiente di produzione e riguarda esclusivamente gli url configurati per essere salvati in cache.