Jump to content
Sign in to follow this  
Antonio

Zend Framework ed altri framework per PHP

Recommended Posts

Aggiungo qualche proposta, prima a parte le critiche e la proposta di usare un framework documentato non ho indicato niente.

 

- zend framework non lo conosco bene, ma già vi posso dire che se lo adottate sarebbe per me una buona occasione per cominciare ad usarlo in produzione.

A mio modo di vedere puo' avere lo svantaggio di assere piu' un "contenitore" (ottimo, solido e aggiornato) di componenti e di standard, piu' che una base "veloce" e "semplice" per costruire applicazioni web.

 

- prima di arrivare a zend framework ci sono una serie di framework php che forse dovreste considerare, che pur non essendo "solidi" come zf, hanno una curva di apprendimento veramente ridotta.. e definiscono cio' che "puo' bastare" come base di una applicazione web "seria".

 

La mia esperienza mi porta a consigliarvi codeigniter o kohanaphp, e se volete solo un mvc scarnissimo in pochi file anche caffeinephp puo' essere una alternativa (a quello che stavate usando).

 

Viva l'open source, e ad ogni modo mi interessa il progetto e per quanto possibile contribuiro'.

 

Uso lo ZF dalla v.1 e posso dirti che molto è flessibile e di facile apprendimento. :)

Essendo diviso in componenti puoi studiarli man mano che li andrai ad usarli, senza conoscere tutto il framework da subito (cosa che devi fare con altri fw)

 

Se poi vuoi usare anche Zend_Contoller/View hai anche una architettura MVC abbastanza potente e pronta all'uso.

 

Messaggi spostati dal topic: http://www.hostingtalk.it/forum/professione-hosting-provider/12381-shineisp-software-italiano-per-la-gestione-isp-3.html

Edited by Antonio
Inserimento link alla precedente discussione...

Share this post


Link to post
Share on other sites
Uso lo ZF dalla v.1 e posso dirti che molto è flessibile e di facile apprendimento. :)

Essendo diviso in componenti puoi studiarli man mano che li andrai ad usarli, senza conoscere tutto il framework da subito (cosa che devi fare con altri fw)

 

Se poi vuoi usare anche Zend_Contoller/View hai anche una architettura MVC abbastanza potente e pronta all'uso.

 

Pesantino però eh... (sia chiaro che non voglio aprire una guerra di religione)

Share this post


Link to post
Share on other sites
Pesantino però eh... (sia chiaro che non voglio aprire una guerra di religione)

 

Nessuna guerra, stai tranquillo :)

 

Puoi dirmi cosa intendi per pesante?

 

Se intendi il peso sul disco del framework, con tutte le librerie che contiene mi sembra logico che sia sui 10MB (nessuno poi ti dice di caricare tutti i componenti online ;))

 

Se intendi il footprint in memoria, per il frontend di un progetto che sto portando avanti con:

 

  • Zend_Controller (e tutti gli altri moduli per MVC...)
  • Zend_Registry
  • Zend_Translate
  • Zend_Session
  • Zend_Acl
  • Zend_Auth
  • Zend_Cache
  • Zend_Captcha
  • Zend_Config
  • Zend_Currency
  • Zend_Date
  • Zend_Db
  • Zend_Form
  • Zend_Http
  • Zend_Json
  • Zend_Loader
  • Zend_Locale
  • Zend_Log
  • Zend_Mail
  • Zend_Pdf (con alcune aggiunte)
  • Zend_Search_Lucene
  • Zend_Soap
  • Zend_Uri
  • Zend_Validate
  • ZendX_JQuery
  • altre librerie e plugin scritti da me

e ZFDebug occupo sui 2,5MB di memoria: di cui un 300k sono del controller, ed altri 200-300k per file di caching vari (quindi siamo sui 2MB)

 

A me non sembrano affatto tanti per tutte le cose che hai pronte ed a portata di mano :)

 

PS: Se vuoi parlarne posso splittare il post e continuiamo lì :approved:

Edited by Antonio

Share this post


Link to post
Share on other sites

Si intendevo quello, spazio sul disco ma anche risorse occupate e giri di include e parse per ogni cosa che si deve fare.

Ovviamente è normale per avere delle cose già pronte, la comodità si paga e se dovessi sviluppare un social network di una certa consistenza non lo userei (beh probabilmente non userei neanche php a dire il vero, forse solo per qualche parte marginale).

La curva di apprendimento non è tra le peggiori ma c'è in giro roba più semplice, per esempio io mi trovo bene con Codeigniter.

Ha 1mb e spicci di librerie (quindi calcola te che footprint può avere) certo in confronto a Zend ha molto meno, le acl, per esempio, te le devi fare per conto tuo, ma è veramente molto semplice estendere e/o sostituire le librerie native o aggiungerne altre.

 

Diciamo che è poco più che lavorare con php avendo solo un minimo di impostazione ed organizzazione della struttura di base, oltre a quache libreria utile.

 

Ripeto che non sto dicendo che ZF sia un prodotto non buono, anzi... ma faccio fatica a trovargli impiego, quello che devo fare o è troppo semplice per cui ZF sarebbe esagerato, oppure se volessi fare cose più complesse lavorerei più vicino all'interprete o addirittura cambierei linguaggio, con CI ho qualche comodità pur non allontanandomi tanto dal PHP nudo.

Share this post


Link to post
Share on other sites
Si intendevo quello, spazio sul disco ma anche risorse occupate e giri di include e parse per ogni cosa che si deve fare.

Include? Cosa sono gli include?

Aaaah si, adesso ricordo, sai com'è, con le funzioni di autoload non li uso più da tempo :emoticons_dent2020:. Anzi, visto che uso le funzioni di autoload, ogni volta che aggiorno il framework faccio un grande massive replace per commentare anche i suoi di include e ci guadagni non poco in fase di esecuzione ;)

Le librerie che non usi con questo metodo non sono caricate e quindi non ti occupano niente in memoria (cosa che potrebbe succedere se invece ti dimentichi in giro qualche include di un modulo che abbandoni)

 

Ovviamente è normale per avere delle cose già pronte, la comodità si paga e se dovessi sviluppare un social network di una certa consistenza non lo userei (beh probabilmente non userei neanche php a dire il vero, forse solo per qualche parte marginale).

 

Per il progetto che sto portando avanti lo sto usando per la sola parte di webfrontend, il bello di MVC è che con il model i dati puoi recuperarli come più ti garba: DB, XMLrpc/SOAP, JSON etc etc :)

Anche io per un periodo ho bistrattato PHP, ma per alcune cose lo preferisco lungamente a JAVA (pensando anche a come sia più semplice trovare un developer/designer che conosca PHP rispetto a java in ambito web).

Per la parte di backend, invece, imho, JAVA EE è un must.

 

 

La curva di apprendimento non è tra le peggiori ma c'è in giro roba più semplice, per esempio io mi trovo bene con Codeigniter.

Ha 1mb e spicci di librerie (quindi calcola te che footprint può avere) certo in confronto a Zend ha molto meno, le acl, per esempio, te le devi fare per conto tuo, ma è veramente molto semplice estendere e/o sostituire le librerie native o aggiungerne altre.

 

Prima di fermarmi sul fw di Zend ne ho visti diversi, e codeigniter mi era rimasto in ballottaggio assieme a simfony. L'ultimo l'ho scartato perché non mi permetteva la piena libertà, codeigniter invece per come era scritto (questione di gusti) e perché meno completo di ZF.

 

 

Diciamo che è poco più che lavorare con php avendo solo un minimo di impostazione ed organizzazione della struttura di base, oltre a quache libreria utile.

Esattamente la stessa cosa che fai con lo Zend Framework, mica devi usare necessariamente il modulo MVC o tutte le librerie :)

 

Ripeto che non sto dicendo che ZF sia un prodotto non buono, anzi... ma faccio fatica a trovargli impiego, quello che devo fare o è troppo semplice per cui ZF sarebbe esagerato, oppure se volessi fare cose più complesse lavorerei più vicino all'interprete o addirittura cambierei linguaggio, con CI ho qualche comodità pur non allontanandomi tanto dal PHP nudo.

 

Questa cosa del lavorare più vicino all'interprete non l'ho mai capita :fagiano:, intendi usare la programmazione procedurale con minore astrazione?

Per un progetto grosso ti complichi la vita (lavorare in team significa poter assegnare ad ognuno un task, senza correre il rischio che il refactoring di un determinato modulo ti costringa a fare cambiamenti anche ad altri o a ripetere la fase di testing per tutto l'applicativo) ed hai scarsi miglioramenti in quanto a velocità di esecuzione (non stiamo parlando di usare l'assembly dentro un programma in C).

 

Poi mi sembra logico che se devo costruire un sitarello con 4 pagine e mi serve php per un guestbook ed un gestore di news rudimentale potrei fare anche a meno di framework (anche se io un fw lo userei lo stesso, perché ti permette maggiore controllo su quel che fai e, se lo conosci bene, fai anche prima a sviluppare quanto ti interessa).

Edited by Antonio

Share this post


Link to post
Share on other sites

Antò non fà lo spiritoso che ne ho ancora tante di barzellette sugli.... uhum no è un dato personale e non posso :asd:

 

Include? Cosa sono gli include?

Aaaah si, adesso ricordo, sai com'è, con le funzioni di autoload non li uso più da tempo :emoticons_dent2020:.

Il fatto che non lo fai tu non significa che i file vengono chiamati, quello intendevo con include e parse.

Teoricamente, seppur improponibile, si guadagnerebbe qualche centesimo di centesimo :asd: con un unico grande file che fa quasi tutto, anche se ci si rimette come uso di ram, comunque più è largo il framework e più file da caricare ci sono anche se non lo carichi tutto.

Anche io per un periodo ho bistrattato PHP, ma per alcune cose lo preferisco lungamente a JAVA (pensando anche a come sia più semplice trovare un developer/designer che conosca PHP rispetto a java in ambito web).

Per la parte di backend, invece, imho, JAVA EE è un must.

No no, io non bistratto PHP, è forse il miglior linguaggio di script, dicevo solo che per alcune cose conviene passare ad altro.

Java non mi è mai riuscito di farmelo piacere

 

Prima di fermarmi sul fw di Zend ne ho visti diversi, e codeigniter mi era rimasto in ballottaggio assieme a simfony. L'ultimo l'ho scartato perché non mi permetteva la piena libertà, codeigniter invece per come era scritto (questione di gusti) e perché meno completo di ZF.

Io invece non volevo usare framework, ma prima di chiudere completamente la porta ho provato a vederli tutti per capire se per quello che serve a me potevo avere dei vantaggi. Alla fine della fiera sono rimasti CI e ZF e come cumulo di librerie le EZ, poi provandoli sono giunto alle conclusioni che per me va meglio CI.

E' tutto più veloce (ripeto per me) dalla documentazione, ben scritta ma snella e rapida da leggere, alla curva di apprendimento (in 10 minuti sviluppi un blog o un contenitore di articoli minimale anche se non hai mai usato CI) etc...

 

Questa cosa del lavorare più vicino all'interprete non l'ho mai capita :fagiano:, intendi usare la programmazione procedurale con minore astrazione?

Esatto, per alcune cose potrebbe essere perfino non conveniente usare un dbms già fatto ma costruirsi tutto il database a manina.

Questo però implica o lavorare da soli o in team quasi nello stesso ufficio.

Per un progetto grosso ti complichi la vita (lavorare in team significa poter assegnare ad ognuno un task, senza correre il rischio che il refactoring di un determinato modulo ti costringa a fare cambiamenti anche ad altri o a ripetere la fase di testing per tutto l'applicativo) ed hai scarsi miglioramenti in quanto a velocità di esecuzione (non stiamo parlando di usare l'assembly dentro un programma in C).

 

Poi mi sembra logico che se devo costruire un sitarello con 4 pagine e mi serve php per un guestbook ed un gestore di news rudimentale potrei fare anche a meno di framework (anche se io un fw lo userei lo stesso, perché ti permette maggiore controllo su quel che fai e, se lo conosci bene, fai anche prima a sviluppare quanto ti interessa).

 

Io non odio i framework ma questo articolo Perchè odio i Framework - The Joel on Software Translation Project riassume abbastanza bene la mia idea... anzi prima pensavo peggio :asd: poi grazie a ZF e CI ho pensato che forse a volte mi potrebbero far comodo

Share this post


Link to post
Share on other sites

Il fatto che non lo fai tu non significa che i file vengono chiamati, quello intendevo con include e parse.

Teoricamente, seppur improponibile, si guadagnerebbe qualche centesimo di centesimo :asd: con un unico grande file che fa quasi tutto, anche se ci si rimette come uso di ram, comunque più è largo il framework e più file da caricare ci sono anche se non lo carichi tutto.

 

Lo so bene che vengono inclusi ugualmente, ma se la gestisce l'engine, quindi non rischi di includere anche quanto non serve.

Al prossimo aggiornamento oltre a far saltare gli include genero anche un unico file gigante, voglio vedere l'incremento di prestazioni se è apprezzabile :sisi:.

 

Giusto per dirti quanti file vengono inclusi in una pagina presa a caso (il template è ancora minimale e non sempre uso tutti i moduli che ho linkato in precedenza, dato che non servono sempre):

File Information

185 Files Included

Total Size: 1552.2K

Basepath: /var/www/xproj/trunk/alba/public/

 

Prendendo solo la roba dello zend: 155files

 

Possono sembrare molti file, ma grazie alla cache (non di tutta la pagina, ho implementato 5-6 livelli di caching diversi), xcache/eaccelerator ho tempi di caricamento delle pagine veramente di tutto rispetto :)

 

 

No no, io non bistratto PHP, è forse il miglior linguaggio di script, dicevo solo che per alcune cose conviene passare ad altro.

Java non mi è mai riuscito di farmelo piacere

 

Altro... non fare il vago, non me la prendo mica se scrivi cosa hai in mente :approved:

 

Io invece non volevo usare framework, ma prima di chiudere completamente la porta ho provato a vederli tutti per capire se per quello che serve a me potevo avere dei vantaggi. Alla fine della fiera sono rimasti CI e ZF e come cumulo di librerie le EZ, poi provandoli sono giunto alle conclusioni che per me va meglio CI.

 

Ad EZ ho dato anche io una occhiata, ma a quel punto ho preferito lo ZF (che adotta la stessa filosofia). Anche io, come te, in "finale" ho portato lo ZF e CI, ma non ti dico cosa ho scelto alla fine :asd:

 

E' tutto più veloce (ripeto per me) dalla documentazione, ben scritta ma snella e rapida da leggere, alla curva di apprendimento (in 10 minuti sviluppi un blog o un contenitore di articoli minimale anche se non hai mai usato CI) etc...

Esatto, per alcune cose potrebbe essere perfino non conveniente usare un dbms già fatto ma costruirsi tutto il database a manina.

Questo però implica o lavorare da soli o in team quasi nello stesso ufficio.

 

Qui si spiega la tua scelta per CI. :)

Io ho scelto lo ZF perché è Component Oriented, quindi non devo necessariamente seguire uno schema preciso per programmarci e sono più libero nell'implementazione. A questo punto ti direi di dare una occhiatina anche a Simfony.

 

Io non odio i framework ma questo articolo Perchè odio i Framework - The Joel on Software Translation Project riassume abbastanza bene la mia idea... anzi prima pensavo peggio :asd: poi grazie a ZF e CI ho pensato che forse a volte mi potrebbero far comodo

 

Va beh, come al solito si esagera, se poi leggi bene si parla di Java... ed effettivamente con Java in alcuni ambiti si è arrivati ad un punto tale che ti conviene prenotare una visita dallo psicologo prima di iniziare a mettere mano/studiare alcuni fw (anche abbastanza famosi).

Io avrei usato l'analogia con le seghe al posto dei martelli :asd:.

 

Java per un backend, applicazioni client/server, standalone è ottimo... ma per webfrontend meglio non pensarci :062802drink_prv:

Share this post


Link to post
Share on other sites
Lo so bene che vengono inclusi ugualmente, ma se la gestisce l'engine, quindi non rischi di includere anche quanto non serve.

Al prossimo aggiornamento oltre a far saltare gli include genero anche un unico file gigante, voglio vedere l'incremento di prestazioni se è apprezzabile :sisi:.

 

Giusto per dirti quanti file vengono inclusi in una pagina presa a caso (il template è ancora minimale e non sempre uso tutti i moduli che ho linkato in precedenza, dato che non servono sempre):

 

 

Possono sembrare molti file, ma grazie alla cache (non di tutta la pagina, ho implementato 5-6 livelli di caching diversi), xcache/eaccelerator ho tempi di caricamento delle pagine veramente di tutto rispetto :)

Ho fatto un include su un file test.php nella stessa cartella con dentro solo

echo "ciao"

In una pagina con il tempo preso subito prima e subito dopo l'include.

Sono il primo a dire che ovviamente la cosa è ultraspannometrica ed imprecisa, ma giusto per farsene una vaghissima idea quell'include ha speso 0.0003 ms moltiplicandolo per 185 fa pur sempre 0,0555

Tenendo presente che nei tuoi include non ci sarà solo echo ciao...

Questo non influirà sull'applicazione normale, ma se dovessi tirar su un ebay (posto che non lo tirerei su in PHP) ci siamo capiti no?

 

 

Altro... non fare il vago, non me la prendo mica se scrivi cosa hai in mente :approved:

IO? :asd:

Ho fatto una battuta, vediamo se la capisci e quanti linguaggi esostrani conosci.

Seriamente, non so dipende... in C per roba che non si vede ma deve lavorare, ma io per comodità, su desktop uso anche il buon vecchio Pascal, intanto perchè il primo amore non si scorda mai, poi perchè i ragazzi di Lazarus stanno facendo un bel lavoro ed semplice scrivere e compilare cross platform

 

A questo punto ti direi di dare una occhiatina anche a Simfony.

Li ho guardati tutti, di alcuni non ricordo neanche più il nome, comunque se uso un framework uso CI, tengo sempre buono ZF anche se non so se mai l'userò, oppure faccio tutto a manina al limite con un paio di buone librerie tipo phpmailer, ezsql (lo so che ormai non avrebbe senso ma ci sono affezionato e poi funziona bene e velocemente) rigorosamente in LGPL

Va beh, come al solito si esagera, se poi leggi bene si parla di Java... ed effettivamente con Java in alcuni ambiti si è arrivati ad un punto tale che ti conviene prenotare una visita dallo psicologo prima di iniziare a mettere mano/studiare alcuni fw (anche abbastanza famosi).

Io avrei usato l'analogia con le seghe al posto dei martelli :asd:.

 

Dai era per ridere l'articolo :emoticons_dent2020: però qualcosa di vero c'è

Share this post


Link to post
Share on other sites
Ho fatto un include su un file test.php nella stessa cartella con dentro solo

echo "ciao"

In una pagina con il tempo preso subito prima e subito dopo l'include.

Sono il primo a dire che ovviamente la cosa è ultraspannometrica ed imprecisa, ma giusto per farsene una vaghissima idea quell'include ha speso 0.0003 ms moltiplicandolo per 185 fa pur sempre 0,0555

Tenendo presente che nei tuoi include non ci sarà solo echo ciao...

Questo non influirà sull'applicazione normale, ma se dovessi tirar su un ebay (posto che non lo tirerei su in PHP) ci siamo capiti no?

 

Va beh, poi vedo di fare un test un poco più attendibile facendo come ti ho detto nel precedente post :)

Per quanto riguarda le grosse applicazioni concordo con te, ma per il solo frontend secondo me ha molto da dare :)

 

IO? :asd:

Ho fatto una battuta, vediamo se la capisci e quanti linguaggi esostrani conosci.

 

Oddio, mi sta anche bene che non vuoi usare framework, ma php di base ti da già una infinità di funzioni in più rispetto ai linguaggi di scripting come lua,smalltalk & Co... a questo punto facciamo tutto in casa ogni volta partendo dall'assembly :zizi:

 

Seriamente, non so dipende... in C per roba che non si vede ma deve lavorare, ma io per comodità, su desktop uso anche il buon vecchio Pascal, intanto perchè il primo amore non si scorda mai, poi perchè i ragazzi di Lazarus stanno facendo un bel lavoro ed semplice scrivere e compilare cross platform.

 

Parlavo sempre di linguaggi di scripting, se no qui non ne usciamo più :); anche perché poi devi iniziare a chiederti se cerchi le performance assolute o la velocità nello sviluppo e la possibilità di usare alcuni strumenti pronti.

 

Dai era per ridere l'articolo :emoticons_dent2020: però qualcosa di vero c'è

 

Lo so, conosco quel sito, ma molto spesso con l'ironia e le battute si dice la verità ;) (ed infatti se contestualizzi tutto usando come chiave di lettura i framework in java tutti i torti non li ha l'autore).

Edited by Antonio

Share this post


Link to post
Share on other sites

beh diciamo che la cosa più importante è usare gli strumenti giusti ( se non lo fai per cazzeggio, capiamoci ): se devo fare un blog non userò un framework, ma userò un cms che serva a fare quello... ce ne sono molti e scegli quello che ti piace di più.

 

Per esempio un Drupal, che è pensato anche per non essere solo un blog...

 

i framework a cosa servono? servono a costruire elaborati siti "custom" altamente dinamici, ossia non facilmente riconducibili a CMS che ti piacciono ;-)

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×