test complessi con sfTesterDoctrine

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.

Changeset 1.3.6 e 1.4.6