Io ne ho provati diversi prima di decidere quale fosse il migliore (per me).
Il primo è stato
CodeIgniter. Sicuramente è un framework semplice da imparare e da usare per lo sviluppo di tutti i giorni. Però mi sono subito accorto che non mi piacevano alcuni dettagli di implementazione (il fatto di dover caricare manualmente modelli, helper e quant'altro, per esempio). Inoltre lo trovo piuttosto limitato quando si tratta di creare sistemi complessi.
Successivamente ho provato
Zend Framework di cui è stata rilasciata da poco la seconda versione che, mi dicono, ha introdotto molte novità. Non è male, mi piace molto com'è fatto, ed è abbastanza semplice da usare. Molte applicazioni enterprise vengono sviluppate con ZF ogni giorno. Avevo però trovato (nella prima release, ma pare che nella seconda siano cambiate moltissime cose) una certa tendenza a complicare alcuni lavori semplici e semplificare alcuni lavori difficili.
Infine ho scoperto
Symfony ed è stato amore a prima vista. Si tratta di un framework sviluppato da SensioLabs, gli sviluppatori di molti altri ottimi prodotti come
Twig, un ottimo template engine. Symfony è flessibile, implementa in maniera fantastica le ultimissime tecnologie (ultimissime per PHP, intendo) e promuove buone pratiche come il controllo di versione e la separazione delle funzionalità tramite i bundle. Gli unici problemi sono che la seconda versione è relativamente nuova, dunque ancora non c'è moltissima documentazione al riguardo (ma abbastanza per sviluppare anche applicazioni di una certa complessità), e inoltre è adatto solo a sviluppatori piuttosto esperti.
L'unico modo, però, è provarne alcuni e scegliere quello con cui ti trovi meglio.