Dopo aver letto alcune delle risposte, vorrei prima dire che spesso non hai molte opzioni su quale framework utilizzerai o se ne userai o meno (come professionista). Non voglio intimidirti, ma dovrai sviluppare abbastanza comprensione del PHP per consentire il passaggio da un framework a un altro e l'utilizzo di più di un framework contemporaneamente.
quando devo usare un framework PHP come CakePHP?
Non esiste una risposta universale a questo. Come professionista, ti verrà assegnato il compito di risolvere problemi specifici e questo sarà il fattore decisivo per quando e cosa di ciascun progetto, specialmente se un cliente ha una domanda specifica. Ma in generale, utilizzerai sempre una qualche forma di framework con PHP, a meno che tu non stia modificando o estendendo un'applicazione preesistente che ha il suo framework (come Wordpress o PHPBB).
Quali sono le cose che questo e altri framework PHP simili mi offrono?
Come detto da Dirk, offrono astrazione. Ciò significa che adottano procedure comuni in più passaggi e cercano di renderle il più semplice e snello possibile. In breve, provano a presentare soluzioni di aggiunta di acqua per compiti comuni.
Ed è davvero importante utilizzare un framework per essere un professionista?
In generale, no, non è importante utilizzare un framework per essere un professionista. Ma realisticamente, non avrai molta carriera se non hai familiarità con almeno un paio di quadri comuni. PHP senza un framework è come C ++ senza una libreria std. Non ne hai bisogno e puoi effettivamente fare di più senza di essa poiché utilizzerai direttamente la funzionalità di blocco del livello inferiore della lingua, ma ci vorrà molto più tempo per fare la stessa cosa.
E posso creare il mio framework per fornire le funzionalità che mi piacciono?
Sì. In effetti, probabilmente finirai per farlo anche se involontariamente. Con questo non intendo un vasto do-all framework, ma più come una borsa degli attrezzi di funzioni di base e script che svolgono compiti non abbastanza comuni o generici da essere gestiti dal framework medio. Il mio è fondamentalmente costituito da vari file system, gestione dei processi e rex-ex tid-bit con alcune diverse utilità di arricciatura e stream / socket.