Symfony 1.0 ed Ajax

E’ finalmente stata rilasciata la prima versione stabile di Symfony 1.0. Noto application framework per PHP 5 di cui ho già discusso più volte e che ho iniziato ad usare attivamente nell’ultimo mese e mezzo grazie ad un lavoro con Ciccio (mio guru sull’argomento).

Tra le magie di questa versione, perchè alcune cose ancora non me le spiego, ieri mi sono imbattuto nella gestione degli script con ajax. Symfony integra al suo interno Prototype (più o meno come fa anche Ruby) dando allo sviluppatore alcuni helper per attivarne le funzionalità.

La cosa stupenda è che il sistema sa se il metodo che è invocato è ajax o meno e gestisce di conseguenza il relativo templating. Cosa utilissima per non dover riscrivere due volte lo stesso codice e soprattutto per permetterne un certo livello di degradazione.

Unica piccola pecca, a mio vedere, è che alcuni metodi di Prototype hanno subito un renaming. Quindi ad esempio al posto di Parameter dovrete in Symfony usare il parametro with. Non molto intuitiva per chi conosce già la libreria js…

Comunque sia per darvi un assaggio delle potenzialità e semplicità di utilizzo per ottenere:

<a href="#" onclick="new Ajax.Updater('ajaxid', '/webapp/aggiorna', {asynchronous:true, evalScripts:true, onComplete:function(request, json){new Effect.Appear('ajaxid', {});}, parameters:'param1='+ $('param1').value + '&param2='+$('param2').value }); return false;">
click me to update
</a>
<div id="ajaxid" style="display: none;"></div>

bisognerà in symfony usare il seguente codice:

<div class="ajax_button">
<?php 
     echo link_to_remote( 
          'analizza informazioni', array(   'script' => 'true',
               'url' => 'webapp/aggiorna,
               'with' => "'param1='+ $('param1').value +                                                                      
               '&param2='+$('param2').value "
               'update'=>'ajaxid',
               'complete' => visual_effect('appear', 'ajaxid')
          )
     ); 
?>
<div id="ajaxid" style="display: none"></div>
</div>

con una sola riga di php viene quindi generato lo script ajax che permette di caricare dinamicamente dei contenuti in un div preimpostato e di mostrarli usando un effetto di fade-in. Veramente non male! :D

ciuaz

  • Si, veramente non male confermo ;-)

    Grazie a questi nuovi framework e programmi per lo sviluppo e la programmazione i siti web stanno diventando a tutti gli effetti dei programmi, da programmare appunto secondo patterns e architetture, con framework etc

    Questione di ancora qualche tempo e ne vedremo sempre più delle belle.

    Il web non è per niente fermo… il web si sta sviluppando.

%d bloggers like this: