Newsgroup: it.comp.www.php
Titolo: Framework Si/No quale

Ciao
volevo un parere
in passato ho programmato in php,ho realizzato dei piccoli prog web 
based che gestivano dati tramite l'accesso a mysql.
I prog realizzati sono stati scritti in procedurale e quindi 
programmazione non orientata a oggetti.
Avendo un po' di tempo libero volevo riprendere a studiare, ma
mi sono reso conto che ci sono molti piu' strumenti adesso come i 
FRAMEWORKS che pare aiutino lo sviluppatore
nella fase di realizzazione del software.
Ora non ho ben capito se oltre a semplificare e velocizzare lo sviluppo, 
offrono anche una certa solidità e sicurezza a livello applicativo, 
lasciando che il programmatore si concentri piu' sulla logica aplicativa.
Mi piacerebbe condividere le vostre esperienze/impressioni sull'utilizzo 
di questi strumenti.
p.s. sono un paio di anni che sento parlare di AJAX, ovvero l'utilizzo 
di chiamate asincrone per non ricaricare tutta la pagina ad ogni nuova 
richiesta, voi sviluppate in questo senso?
grazie e buon lavoro

 richiesta, voi sviluppate in questo senso?
Si`, lo uso da quasi un anno sui backend, e sto iniziando a metterlo sui 
frontend.
Da un mesetto uso jQuery, che ho trovato fantastica per la manipolazione 
del DOM, sia usando AJAX che non.
Bye.

Alessandro Pellizzari ha scritto:

grazie e in bocca al lupo per il tuo CMS!

 del DOM, sia usando AJAX che non.
jQuery mi sembra molto evoluto e tutto sommato semplice da usare anche per
chi non è un programmatore esperto, come il sottoscritto... cosa ne pensi
(se lo conosci) di Dojo Toolkit ( 
http://dojotoolkit.org/
 )?
Aaron Leventhal (quello che dirige l'accessibilità in Mozilla) mi ha detto
che stanno lavorandoci sopra per includere le specifiche ARIA, sicché è
interessante, anche se ad un confronto molto veloce mi sembra più potente
jQuery che Dojo.
Mi piacerebbe iniziare ad ipotizzare una maggiore integrazione tra php e
uno (o entrambi) di questi due strumenti.
Tu che ne pensi?
Riferimenti ARIA e Mozilla:
http://www.mozilla.org/access/
http://www.w3.org/WAI/intro/aria.php
-- 
Aloha, (m|t)
---------------------------------------------------------------------
Comunicazione per la pubblica amministrazione, grandi aziende, pmi
Bazzmann|Mag > 
http://www.bazzmann.com
Bazzmann Srl > 
http://www.bazzmann.it
---------------------------------------------------------------------

 Tu che ne pensi?
Non conoscevo ARIA. :)
Dando una scorsa veloce alle specifiche, mi pare di capire che sono degli 
attributi aggiuntivi ai tag, pensati per facilitare l'accessibilita`, ma 
ho paura di averlo sottovalutato molto. :)
Se fosse cosi`, con jQuery ci sono gia` dei sistemi per trovare i tag con 
determinati attributi ( $("@attr=[valore]") piu` o meno)
Per quanto riguarda l'integrazione tra JS e PHP, non ne sono un 
grandissimo sostenitore. Ho visto alcuni framework JS che "mappano" delle 
classi js, via ajax, su classi php, ma non mi sono piaciuti. Preferisco 
che rimangano due mondi distinti, e farli comunicare via JSON o al limite  
XML o testo.
Bye.

 XML o testo.
No no... aspetta... mi sono spiegato male io... intendo dire integrare ciò
che ajax può offrire a livello di maggiore interazione (ad esempio in caso
di backend come cms, e-commerce, ecc.) e minori "accrocchi" lato server,
facendo in modo di trovare il miglior equilibrio verso le potenzialità che
php offre, specialmente nella versione 5.
Non nasco programmatore (e non mi reputo tale dato che il mio mestiere non
è quello come core), quindi prendi solo il succo dell'intento di ciò che
ti ho detto... :)


 wrote in message 
news:5k57naF...@mid.individual.net...

io sono mooolto newbie e non capisco il bisogno di avere un controller, un 
model e una view! Io mi trovo piuttosto bene con smarty... ho la mia pagina 
php che fa tutte le operazioni (credo che possa essere paragonato al 
controller) e quando i dati sono pronti renderizzo la pagina html (view?)... 
Ho come l'impressione che usando model/controller e view sia un casino da 
gestire quando metti di mezzo anche js... cioe' una pagina e' spezzata in 
varie parti e questo la rendono piu' difficile da gestire... IMHO ovviamente 
eh!!! E sono un newbie quindi non vorrei aprire delle polemiche :)
[CUT]
Scusate il parziale off-thread
ciao,
Dade 

 Dade
-- 
Siamo tutti un po' abusivi a questo mondo!
Spirito Libero

 aprire delle polemiche :)
All'inizio e` un po' un casino, perche` sei abituato a pensare in un certo 
modo. Poi, quando ci prendi la mano, ti accorgi che e` tutto molto logico.
I js vanno comunque aggiunti alla fine, e dentro l'html (la view), quindi 
il controller e il model non hanno la minima idea di cosa facciano.
Se usi AJAX, in base alle dimensioni del progetto puoi pensare di fare un 
AjaxController (e richiamare 
http://sito/ajax/azione
 da XmlHttpRequest) o 
di mettere le azioni ajax dentro i controller corrispondenti (e richiamare 
http://sito/product/ajaxGetAll
 per esempio)
Tra l'altro, se hai separato nel model, come sopra, la query per le ultime 
5 news, hai gia` pronta la funzione dentro il model da richiamare quando, 
via ajax, vuoi aggiornarle ogni 5 minuti, per esempio.
Bye.

 Perdonato, ma si dice off-topic :-D
mmm ma off-topic non e' quando si va fuori tema dell'ng e off-thread quando 
si va fuori tema del thread?
ciao
Dade


 Bye.
ciao,
Dade 

 quando si va fuori tema del thread?
Il topic e' l'argomento di discussione, il thread la serie di risposte 
l'una dietro l'altra (questo messaggio e' un thread, ad esempio).


 forse devo studiarmi meglio il modello controller/model e view
Non e` cosi` semplice. :)
Smarty e` un template engine, Zend e` un framework.
Se vuoi usare il suo modello MVC (puoi anche farne a meno, continuare con 
smarty per il templating e usare solo gli altri componenti di ZF, come le 
classi per i feed, il motore di ricerca, ecc.) devi rivedere tutta 
l'applicazione. Avrai un unico punto di entrata, tramite rewrite-rule di 
apache, che smista le azioni ai vari controller.
Secondo me la cosa migliore che puoi fare e` di provare a fare un sitino 
senza pretese, di test, con lo ZF, per prenderci mano.
Non partirei dalla conversione di qualcosa di gia` esistente, soprattutto 
se grosso, perche` rischi di perdere piu` tempo nella conversione di 
metodologia che nel rifarlo da zero.
Bye.

controllerDedicato->model->controller->json->javascript.
Devo ancora decidere se spostare il grosso del lavoro verso il server o 
verso il client, ma credo che lo decidero` in base al progetto. Cerco di 
stare sempre a livello abbastanza basso, pur usando dei framework. In 
pratica evito oggetti js che richiedono automaticamente un certo set di 
dati al server e si arrangiano a fare il rendering, preferendo fare io le 
chiamate e definendo io i parametri da passare all'oggetto.
Detta cosi` e` un po' criptica, spero si capisca. :)
Bye.

 (questo messaggio e' un thread, ad esempio).
no, questo messaggio, come il tuo, sono post che fanno parte di questo
thread il cui topic ha per oggetto: "Framework Si/No quale"

 thread il cui topic ha per oggetto: "Framework Si/No quale"
sapevo anche io cosi' per questo ho detto off-thread 

Ugo ha scritto:

E' vero, mi sono contraddetto, ma volevo dire quello che dici tu :-D


Un framework fantastico è Symfony.
Per usarlo bene dovresti però conoscere la programmazione ad oggetti.
Permette di sviluppare il codice molto velocemente (progetti di un mese
sono stati sviluppati in una settimana!) ed è molto ordinato.
Quest'ultima cosa ti permette di modificare il codice anche a distanza di
anni della stesura.
Inoltre è integrabili conaltre realtà (es. con Zend, Joombla,...).
Insomma.... ci ho messo un mese per impararlo bene ma ne vale la pena.
Mario.

 Per esempio puoi avere una view fatta cosi`:
Ciao, mi aggrego per una domanda ... con ZF e' possibile utilizzare i 
templates? Io non mi trovo per niente bene con il codice php inglobato 
in html, sono abituato ad utilizzare XTpl che ha blocchi e segnaposto, 
ma da quanto ho letto (velocemente) nella documentazione di ZF pare che 
non sia banale modificare le view per implementare un template engine.
Mi sai dire qualcosa in proposito?
grazie, ciao
Mauro

 non sia banale modificare le view per implementare un template engine.
Non e` semplicissimo, ma si puo` fare.
In giro trovi un esempio che modifica la view per usare smarty al posto di 
php come template engine. Penso si possa adattare a XTpl
Io preferisco usare PHP per diversi motivi: per quanto veloce, un motore 
di templating e` comunque uno strato in piu`; devo imparare nuove 
convenzioni per il tagging, mentre PHP lo conosco gia`; se mi serve un 
accrocchio temporaneo lo posso fare usando funzioni magari non proprio 
consone a una view, e sistemarlo in seguito; un bug nel motore di 
templating potrebbe essere comunque piu` difficile da trovare (cio` che 
non c'e` non si rompe...)
Bye.

 Mi puoi fare un esempio?
Mah, un concetto molto semplice in se, ma spiegato probabilmente male... :)
Nel senso che mi interessa poter iniziare ad offrire nei nostri prodotti una
interfaccia migliore, meno statica, che possa agevolare l'uso stesso del
prodotto (ad esempio CMS). Fino a un anno fa non trovavo granché utile usare
JS, anche se già esisteva il JS lato server, perché comunque non aveva le
potenzialità che oggi offre.
Quindi tutto ciò che corrispondeva ad un'azione da parte dell'utente veniva
gestito interamente con php (tanto per fare un esempio: un login, una form
di invio dati, ecc.).
Oggi, quindi, mi attrae di più la possibile integrazione tra AJAX al fine
di rendere più agevole l'utilizzo del prodotto, e al tempo stesso integrando
un misto tra controlli lato server e lato client.
Questo unito all'esempio che hai fatto tu, ovvero poi valutare se è fattibile
una integrazione "in risposta" di codice AJAX generato lato server.
Insomma... spero si sia capito meglio, che in questi giorni pecco un po'
di lucidità! :)


 integrando un misto tra controlli lato server e lato client.
Ah, ok, ho capito. Il classico AJAX-powered. :)
Lo Zend di suo non fornisce nessun automatismo per questo, ma io 
personalmente preferisco cosi, come ti dicevo.
Integrare jQuery e` stato abbastanza semplice. Per esempio, questo e` il 
jQuery che, alla registrazione utente, controlla "al volo" se il nickname 
e` gia` stato usato, e presenta l'errore all'utente su uno span messo li` 
apposta:
$(document).ready(function() {
 $("#nickname").keyup(function() {
  $.getJSON(
   "<?= $this->baseuri; ?>ajax/checknickname/nickname/"+$(this).val(),
   "",
   function(json) {
    var span = $("#nickname").siblings("span");
    span.text(json.msg);
    if (json.err == "KO") {
     span.addClass("error");
     span.removeClass("approved");
    } else {
     span.addClass("approved");
     span.removeClass("error");
    }
   }
  )
 });	// nickname.keyup
}
Nello ZF ho il controller "AjaxController", con dentro checknicknameAction 
che si collega al DB, verifica che il "nickname" passato non sia presente, 
e torna, in JSON, OK o KO e il messaggio di errore/approvazione
Metto tutto dentro $(document).ready() in modo che non ci sia JS di nessun 
tipo dentro l'html, e venga gestito tutto esternamente (separo totalmente 
html, js, css e php)
Bye.

 jQuery che, alla registrazione utente, controlla "al volo" se il nickname 
Ecco, si... questo è un concetto di maggiore integrazione che preferisco.
Ottimo esempio.
Senti, visto che l'hai nominato in precedenza... CodeIgniter che impressione
ti fa, leggendone docs e sito ufficiale?


 impressione ti fa, leggendone docs e sito ufficiale?
Mi era piaciuto molto, ma dovevo scegliere alla svelta (avevo 2 siti da 
finire il piu` presto possibile), quindi l'ho guardato per non piu` di 2-3 
giorni e, vedendo lo Zend in dirittura d'arrivo e con pieno supporto per 
PHP5 (CodeIgniter e` in PHP4), ho scelto ZF.
L'idea alla base e` abbastanza simile (poco invasivo, moduli non 
obbligatori, prestazioni piu` alte possibile).
Bye.