Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11
    Utente di HTML.it L'avatar di P75
    Registrato dal
    Jul 2001
    Messaggi
    41

    Re: PHP, pattern MVC, framework

    Originariamente inviato da aasmdaa
    Ciao,

    sempre più mi sto impegnando per capire le logiche dei design pattern e dato che continuo a sviluppare web applications più complesso vorrei iniziare ad utilizzare le logiche MVC.

    Capito il concetto del MVC vorrei capire quale strada intraprendere per iniziare a sviluppare in questo modo. Mi conviene utilizzare un framework già pronto e se sì quale? Oppure meglio iniziare da zero con un mio framework?

    Non mi piace molto affidarmi a cose già pronte perchè poi ho difficoltà a dover metterci mani, ma è un vantaggio dare un'occhiata per capire come sono strutturati.

    Ho cercato in rete ma non trovo tutorial decenti che spieghino come iniziare a strutturare il proprio software seguendo il pattern MVC.

    Ho un gestionale abbastanza complesso (scritto in ASP classic) che ora devo rifare completamente riscrivendolo in PHP e vorrei partire con questo nuovo metodo di lavoro.

    Qualche aiuto su cosa/come partire?

    grazie
    Ho avuto lo stesso problema un anno fa, alla fine ho scelto di usare un framework già esistente.

    I vantaggi, a mio parere, risiedono in questi punti:
    - Non dover reinventare la ruota
    - Poter fare affidamento su codice sicuro e testato
    - Poter lavorare direttamente alle funzionalità della "mia" applicazione
    - Rimanendo fedele alle convenzioni indicate dal framework, avere la garanzia che non ci sarà mai quel dato che ho dimenticato di validare o di sanitizzare.
    - Poter usare un generatore CRUD per eliminare i lavori ripetitivi
    - La presenza degli helpers per manipolare i dati
    - Poter contare sugli aggiornamenti del framework, in particolare nel caso in cui emergano falle di sicurezza.
    - acquisire know-how su qualcosa che è diffuso ed usato anche da altri
    - accedere direttamente ad implementazioni che non potrei realizzare da solo, non in breve tempo comunque (ES. Active Records, Template System, ACL/RBAC...)

    In genere i framework "per iniziare" sono CodeIgniter e CakePHP.
    Per progetti più impegnativi ci sono Zend Framework e Symfony, ma a mio parere per "il primo progetto" e se al contempo si vogliono approfondire certi concetti, sono delle brutte bestie da gestire "in solo".

    Il primo programma serio che ho fatto è stato un gestionale per "buoni d'ordine" in cakePHP.
    Tuttavia non credo che cake sia stata la scelta migliore. Alcune parti della documentazione non sono chiarissime (l'ACL ad esempio), e spesso ci si trova a combattere con documentazione prodotta per versioni precedenti del framework.
    Inoltre certi componenti, forse a causa del fatto che CakePHP è sviluppato in PHP4, lasciano un po' a desiderare (AR). Alla fine, comunque, usare e capire CakePHP è abbastanza facile.

    Davvero interessante invece è Yii Framework, realizzato dallo stesso autore di PRADO, sviluppato in PHP5, estremamente leggero e veloce. Da quel che si legge cercando su Google "Yii comparison" pare sia una killer application per i framework php.
    Oltre ad un'ottima documentazione è anche possibile acquistare un libro (io l'ho acquistato) che spiega in modo molto chiaro non solo come realizzare un'applicazione (un bugtracker multiprogetto e multiutente con permessi differenti per ruolo, progetto e utente) ma anche come utilizzare il supporto allo unit testing offerto dal framework.

    Home di YII:
    http://www.yiiframework.com/

  2. #12
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Yii mi sembra proprio un bel progetto.

    Però adesso mi dovete dare una risposta (quasi) definitiva:

    per iniziare a studiare/lavorare su un framework: cakePHP, Zend, Yii.

    Lavoro principalmente su dei gestionali via web, ma spesso mi trovo a fare anche delle parti di front-end.

    grazie

  3. #13
    ognuno credo ti dirà di usare il prodotto con cui si trova meglio Quello che posso dirti è che io, nel dubbio, userei il prodotto rilasciato dalla stessa azienda che rilascia PHP, ovvero Zend Framework: se investi su questo vai sul sicuro, visto che a distribuirlo è la Zend Tecnologies...che non è poco!

  4. #14
    Zend è di sicuro più affidabile e potente.

    affidabile perché è Zend: non corri il rischio che fra tre anni il progetto venga abbandonato perché i suoi creatori non hanno più tempo o voglia (ci sono migliaia di progetti che promettevano bene ma dopo due o tre anni di piena attività sono stati quasi del tutto abbandonati).
    Potente perché è PHP puro. Non ci sono sintassi strane e non ti vincola ad usare i suoi strumenti. Anzi in alcuni casi puoi addirittura integrare e interfacciare altri framework (ho letto qualcosa di recente proprio sull'interazione tra Simfony e Zend).

    Essendo un framework "ufficiale" è quello più usato il che vuol dire più documentazione e più probabilità di imbatterti in esso quando ti inserisci in un progetto già avviato. Essendo anche quello un pelino più complesso, se dovessi imbatterti in altri framework non incontrerai "grosse" difficoltà ad adattarti.

  5. #15
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    Originariamente inviato da Santino83_02
    nel senso che la concezione di model, l'uso di classi esterne che non rientrano in helpers o components, l'uso stesso dei vendors, è una cosa un pò ripugnante..

    due cavolate:

    per gestire le parti piu comuni di un'applicazione (leggasi file delle proprietà, gestione dei file, classi particolari per l'applicazione, gestione di indirizzi ip e netmask, etc) ho creato delle classi. Tra queste, una classe che aiuta a compiere operazioni con l'html.

    Ora, volevo eliminare l'helper obsoleto apposito e usare la mia classe. Problema: non si può usare un oggetto non derivato da Helper come helper nelle view. Dirai "eccerto".. bastava che l'oggetto potesse implementare un'interfaccia, ed ecco che potevo tranquillamente usare la mia classe... invece ho dovuto forzare la mia classe ad estendere Helper, cosa che rende piu complicato il suo riutilizzo in altri progetti non cake-centrici

    Un altro discorso è che non sopporto il fatto di dover lavorare con array quando si interroga il model e non con strutture dati piu potenti. W la flessibilità certo, ma ti lega le mani. Poi ho trovato molto scomodo (e infatti ho lasciato perdere) l'uso di classi, nel controller, che non fossero ne model nè components. O usi i vendors, oppure boh, li metti in include e poi te le includi a mano... non c'è una cosa organica per queste cose.

    Insomma, comodo per fare i sitarelli cake, ma sulle grandi cose lo trovo limitato. Vorrei infatti vedere con calma Zend e poi, se le mie aspettative risultassero appagate, migrare tutto da cake a Zend.

    Ah si, una cosa: hai visto come si fa la validazione di una form con zend, e come con cake? La flessibilità che ti dà quella di zend, cake se la sogna. Migrerei subito solo per quello guarda


    EDIT: cosa piu importante: la documentazione di cake fa schifo....documentazione? che documentazione?
    in realtà mi sembrano tutti non-problemi... o problemi che non derivano da cake ma dall'utilizzo di un framework. Il fatto di dover fare un helper di una classe per poterla utilizzare come helper mi sembra scontato, se non ti va puoi richiamarla come vendor (l'ho fatto, per esempio, con una semplice classe per fare la sottolineatura del codice SQL in debug), estendendo l'sql_dump nel core di cakephp.
    codice:
    App::import('vendor', 'highlightSQL', array('file' => 'highlightSQL.php'));
    $obj = new highlightSQL;
    foreach ($logInfo['log'] as $k => $i) {
    	$i['query'] = $obj->highlight($i['query']);
    	echo $i['query']) . "
    ";
    }
    Come vedi, una volta importata la classe l'utilizzo ne diventa trasparente. L'uso degli include naturalmente è sconsigliato visto che si possono utilizzare i vendors... Cake non lo vieta, comunque, se lo ritieni necessario.

    Sul fatto di utilizzare degli array, e che questo ne limiti la flessibilità è vero in parte, ma gli array sono anche molto comodi da maneggiare... io mi trovo bene, non so zend come faccia questa operazione.

    La validazione con cake la trovo di una comodità sconvolgente... è tutto spiegato nella (secondo me) comoda documentazione: http://book.cakephp.org/view/1143/Data-Validation, e se avessi ancora qualche dubbio ci sono le api che spiegano tutto... http://api13.cakephp.org/class/validation

  6. #16
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732

    Re: Re: PHP, pattern MVC, framework

    Originariamente inviato da P75
    Alcune parti della documentazione non sono chiarissime (l'ACL ad esempio), e spesso ci si trova a combattere con documentazione prodotta per versioni precedenti del framework.
    Inoltre certi componenti, forse a causa del fatto che CakePHP è sviluppato in PHP4, lasciano un po' a desiderare (AR). Alla fine, comunque, usare e capire CakePHP è abbastanza facile.
    ecco le acl sono un po' la bestia nera di cake, non solo a livello di documentazione... alla fine io (e un po' tutti quelli che conosco) mi sono costruito la mia classe per la gestione dei permessi basandoci su Auth (che è decisamente più umano da gestire). Il supporto a php4 mi pare l'abbiano tolto con la versione 1.3, ma potrei sbagliarmi...

    Poi oh, nessuno mi paga per fare pubblicità a questo framework, è solo che ci gestisco diversi progetti anche piuttosto impegnativi, e mi sono sempre trovato benone... alla fine è anche questione soggettiva

  7. #17
    Inessuno, apparte che concordo sul fatto che ognuno ha le sue preferenze, e le mie preferenze per cake scendono ogni giorno di piu che lo uso. E ti assicuro che non lo sto usando per fare un sitarello così, ma ci mantengo un sito di una certa mole.

    poi, parlando seriamente, la validation fa un pò schifo... nel senso, comodissima per il singolo model o per validare il model, ma una form non è sempre o solo una validazione di campi di un model, ma un qualcosa di diverso

    per questo ti dico: hai mai visto Zend e i form? http://www.framework.zend.com/manual....advanced.html pagherei oro per usarlo nella mia applicazione, in alcuni casi, solo che per motivi di tempo non lo faccio che ho troppe altre cose da fare.

    poi non so, io pure volevo usare l'acl, dovrò usare un sistema di acl tra poco, ma già ho visto che il sistema di cake è insufficiente alle mie esigenze... quindi che scatole...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #18
    Utente di HTML.it L'avatar di P75
    Registrato dal
    Jul 2001
    Messaggi
    41
    Santino, molti dei difetti che riporti dipendono dal fatto che CakePHP è progettato su PHP4, io citavo Yii non perché sia "migliore" di CakePHP, ma perché a mio avviso appartiene proprio ad un altra generazione di framework per PHP (così come Kohana, Noloh, DooPHP...), e credo valga la pena buttarci un occhio.
    Qui c'è un confronto che evidenzia le differenze fra Yii e Cake, evidenze che credo si possano riscontrare anche negli altri framework nativi in php5, ma che in qualche modo rispondono alle problematiche che hai indicato:
    http://php-thoughts.cubedwater.com/2...ns-to-cakephp/

    Anche CakePHP muoverà verso una progettazione basata su PHP5, il problema è capire quando. Tempo fa c'era un progetto ma è naufragato generando Lithium e l'attuale branch 2.0. Dar credito a CakePHP può anche essere un investimento in termini di continuità futura con un framework già noto.

    Zend e Symfony, da quel che ho letto sono dei mastodonti, ma in tutti i sensi. Da un lato hai i vantaggi di una documentazione sterminata (sopratutto Zend) ed un gran numero di componenti aggiuntivi, dall'altro - per quanto ho inteso io - hai bisogno di una quantità di risorse disponibili non indifferente.

  9. #19
    Originariamente inviato da P75
    dall'altro - per quanto ho inteso io - hai bisogno di una quantità di risorse disponibili non indifferente.
    cosa intendi con "quantità di risorse disponibili non indifferente"?

    considera che ZF è completamente modulare, e puoi decidere tu cosa utilizzare o integrare nella tua web application. Non sei obbligato a caricare o a portarti dietro tutto il framework!

  10. #20
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Bene,
    ringraziando anche tutti quelli che intasano il mio thread ho deciso che mi cimenterò con Zend.

    Darò comunque un'occhiata più approfondita anche a Yii.

    Grazie
    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.