2009-02-26 18 views
5

Ho una certa esposizione a CakePHP e penso che sia un ottimo framework. Quindi, mi imbatto in questa cosa chiamata Qcodo. È un altro framework PHP. Ho sentito molto parlare di Zend. Sembrano tutti molto puliti, ma mi chiedo quali siano le differenze tra tutti questi quadri.Qcodo vs. CakePHP vs. Zend

Prima di perdere troppo tempo ad apprendere un altro framework, qualcuno conosce i pro ei contro di ciascun framework?

Sembravano tutti avere l'obiettivo generale: rendere lo sviluppo di applicazioni Web in PHP facile, modulare e scalabile.

EDIT trovato questo interessante risultato del confronto tra CakePHP and Zend

risposta

6

Non ho mai sentito parlare di Qcodo.

CakePHP è un framework completo con un sacco di automagic, ma sfortunatamente è uno dei slowest frameworks out there. Inoltre non ha forum ufficiali, e non c'è davvero quello occupato di una comunità. Cerca di essere un clone di Ruby on Rails, ma non funziona così bene con PHP.

Zend è impressionante. Ha una forte comunità e un supporto aziendale. È molto descritto, ma è anche molto gonfio (vedi quel benchmark) quindi ha prestazioni moderate. Da quello che sento però, sei in grado di utilizzare i componenti separatamente senza utilizzare l'intero framework e puoi persino usarli con altri framework!

Io uso CodeIgniter al lavoro e lo adoro. È di gran lunga la struttura più innovativa e con la tua esperienza con CakePHP dovrebbe essere un gioco da ragazzi. Ha very good documentation che è completo, chiaro e ben scritto. Ci sono alcune caratteristiche che non ha (come un ORM) che altri framework hanno, ma l'IC ha una delle community framework più attive che abbia mai visto. Dal momento che è facile scrivere librerie per questo, è possibile trovare una libreria per fare praticamente tutto ciò che si desidera: ORM, autenticazione, ecc. Per aggiungere a questo, se si desidera un ORM per CI, si consiglia di DataMapper.

Si potrebbe anche voler verificare Kohana. È uno spin off di CodeIgniter. È rigorosamente PHP5 e ha un ORM e alcune altre funzionalità. Non l'ho usato io stesso, ma ho sentito cose buone.

+0

Il confronto a cui si fa riferimento è davvero imperfetto e non so da dove si stiano tirando i "fatti" di CakePHP ma si sbagliano. –

+2

Come? L'unica cosa peggiore di me a dare "fatti difettosi" è di dare una confutazione vuota. – ryeguy

+0

Ho fornito un punto di riferimento su quanto sia lento Cake - e ce ne sono molti altri là fuori con la stessa conclusione. Non ci sono forum ufficiali. Molte delle funzioni magiche di Ruby on Rail hanno bisogno di soluzioni simili a hack in PHP, che portano alla degredation delle prestazioni. Niente di tutto questo è soggettivo, è tutto fatto. – ryeguy

4

Mi raccomando di leggere le caratteristiche di ogni e determinare ciò che è necessario e guardando esempi di codice delle caratteristiche che userete più.

Alcuni framework possono sembrare intuitivi per te, ma non per altri. Selezionare un framework PHP è una scelta molto personale IMO.

Sto usando CodeIgniter da solo dopo aver usato CakePHP per un po 'di tempo. Il motivo principale del passaggio è dovuto alle prestazioni, ma negli ultimi anni CakePHP ha fatto molta strada, quindi probabilmente non è più un motivo valido.

[Edit:. A quanto pare, ha ancora carenze di prestazioni, vedi post da ryeguy e commenti]

non ho mai trovato Zend per essere intuitivo e non ho mai guardato in Qcodo.

Wikipedia ha uno list of web app frameworks by language, potresti trovare informazioni per aiutarti a decidere anche lì.

0

Uso CodeIgniter principalmente perché ha una documentazione molto buona e ha la reputazione di essere facile da usare. Inoltre, Rasmus ha detto che era il suo preferito, che è certamente una ragione zoppa, ma non ho avuto lamentele.

+0

CI non era nell'elenco per il confronto. – rick

0

Non ignorare Symfony, si blocca. Direi che i suoi più grandi punti di forza sono un approccio coerente con la "buona pratica" a tutti i livelli, una comunità vivace e un'eccellente documentazione.

3

Io uso sia QCodo & Zend Framework

QCodo è un framework MVC di generatore di codice, un sacco di codici sono ganerated dalla progettazione di database, e produco pronto per l'uso Cerca & Modifica modulo per ciascuna della vostra tabella di database . Gestisce anche la relazione della tabella del database per generare una serie di metodi per la relazione uno-a-molti/molti-a-molti tra le tabelle.

A causa di questi codici sono stati generati dalla progettazione del database, tutti i codici sono stati ottimizzati per ogni progetto. In breve, è un quadro di database oriented

..................................... ..............

Zend Framework è progettato, per quanto ne so dal fondatore di questo progetto, per disaccoppiare tutti i modelli, e in effetti stanno distribuendo un sacco di modelli pronti all'uso per diversi tipi di progetti, da Zend_ACL (elenco di controllo degli accessi per l'autenicazione), a Zend _Search _Lucene, Zend _Service _Twitter, Zend _Service _Flickr, ecc.). E penso che ci sarà per il futuro.

2

Il mio voto per Qcodo! Qualche tempo fa ho fatto una ricerca su ciò che mi andava meglio, e il risultato è qcodo, al giorno d'oggi non riesco a fare un progetto senza prendere in considerazione l'uso di qcodo, o almeno la sua parte di gestione del database che è assolutamente fantastica.

+0

Cosa ti è piaciuto a riguardo? Lo stiamo usando e la mancanza di una comunità è stata una grande sfida. – Angela

+0

Se stai cercando una community, ti incoraggio a passare a QCubed, il fork della community di QCodo. I forum sono molto più attivi e le persone contribuiscono con il codice (plugin) a destra e a sinistra - ce ne sono già dozzine. –

+0

Accetto Alex, QCubed è la strada da percorrere ... Angela QCodo ha un lungo processo di apprendimento, può essere difficile per i principianti, ma una volta che l'hai padroneggiata puoi farne alcune cose davvero potenti. La cosa migliore è che una volta configurato il DB, è molto facile lavorare con i dati del database, quindi, come una risposta qui sotto commentata, se si tratta di un progetto di database, non si può perdere con QCodo. – Mark

2

Penso che Simfony sia il miglior framework PHP anche se non l'ho usato. Ho usato principalmente Qcodo/Qcubed ma mi sto spostando su Rails, questo è il motivo per cui trovo Simfony non male. Ho provato Code Igniter e non lo è, è semplice da usare, leggero (suppongo), ma non ha alcuna impalcatura, ma potrebbe essere cambiato ora. Come un altro ragazzo ha detto che è possibile utilizzare un ORM esterno perché l'elemento di configurazione non ne ha uno di default. Zend Framework ha un'architettura molto modulare e ha molte librerie. Ho usato Zend_ACL ma l'ereditarietà delle autorizzazioni era un problema, così ho fatto il mio stesso implanto, le query di Zend_Lucene non hanno trovato i dati di cui avevo bisogno ... ZF è un framework di livello molto basso e ha bisogno anche di un ORM. Ho dato un'occhiata a CakePHP ma ho trovato la sua interfaccia di database non a livello di Propel, Qcodo e Doctrine, ma penso che tu possa usare la tua libreria.

solito voglio in un quadro:

  • ORM e oggetto avvolgendo il vero riga nel database ($ objUser-> Name = 'Jack')
  • MVC - la maggior parte del MVC sono
  • generatori di codice (Qcodo è fantastico per il codice di generare dal database)
  • front controller, l'instradamento e friendly URL (Qcodo non ne possiede uno)
  • Clean template (Qcodo ha $ objLabel-> Render(), non tag reali)
  • metodi di supporto come link_to, image_tag ecc (Simphony e Ruby on Rails) migrazione
  • database per tenere traccia di DB cambia
  • framework di test integrati per testare l'applicazione reale, non poche funzioni isolati (Rails farlo e maggio Simfony)
  • La comunità e la popolarità del framework.

La maggior parte degli sviluppatori PHP avanzati che ho incontrato utilizzano Simfony, ma solo dalla mia esperienza personale.

Concludendo, vorrei usare bit di Simfony. Suggerisco caldamente di provare Rails usando Ruby o JRuby.

1

Determinare il quadro migliore dovrebbe essere una decisione progetto per progetto. Se hai un grande database usando il motore innoDB e molte e molte relazioni tra le tabelle, controlla QCubed (Qcodo). Non ho visto nessun framework che gestisca relazioni ORM complesse, nemmeno relazioni inverse con facilità! È anche abbastanza veloce nel gestire query complesse (ad esempio query di relazioni inverse), sebbene le prestazioni in qualsiasi framework dipendano in gran parte dalla capacità del coder di scrivere in modo efficiente.

Se stai costruendo un CMS, allora vorrai Zend o Symfony per le funzionalità MVC. QCubed/codo è presumibilmente basato su MVC, ma non sembra così chiaramente definito come Zend. QCodo inoltre DEPENDE per non cambiare mai la struttura del tuo database - Si può gestire, ma è davvero un problema aggiungere nuovi campi a una tabella DB una volta che un sito è stato avviato perché auto-gens classi personalizzate per ogni tabella.

+0

Questo commento su non cambiare mai il tuo database non è vero. Mentre Qcodo genererà il codice, ad esempio la classe UsersGen basata sulla tabella degli utenti, esiste una classe derivata denominata Utenti. Non si modifica mai UsersGen, si inseriscono le personalizzazioni nella classe Utenti. –

0

I; m utilizzando QCubed, il successore di QCodo. È semplicemente il meglio che puoi ottenere da un framework PHP Open Source. È abbastanza veloce se sai come farlo funzionare. L'unico svantaggio è che manca la documentazione. Tuttavia, il sito degli esempi è fantastico. Inizia a usarlo e scommetto che avrai un sacco di pace! :)

Problemi correlati