Quando devo usare un framework? [chiuso]


15

Sono nuovo nella programmazione web e in questo momento sto imparando a conoscere PHP. Vorrei sapere quando devo utilizzare un framework PHP come CakePHP? Quali sono le cose che questo e altri framework PHP simili mi offrono? Ed è davvero importante utilizzare un framework per essere un professionista?

  • E posso creare il mio framework per fornire le funzionalità che mi piacciono?

3
Quando capisci cosa offre e puoi aggirarlo quando necessario, usa il framework [xyz]. I frame sono strumenti pensati per le persone qualificate che sanno come usarli e comprendere i limiti delle loro scelte. In nessun caso apprendere una lingua studiando una struttura da sola. È come spegnere deliberatamente le dita dei piedi o la visione periferica. Suggerimento, le sessioni si comportano in modo strano a seconda del framework PHP che usi .. stai attento :)
Tim Post

Risposte:


10

Quando sei a tuo agio con PHP, puoi iniziare a usare un framework. E dovresti sempre usarli:

  1. È molto, molto più veloce di ricodificare tutto
  2. Semplifica le modifiche, come cambiare database o cambiare vista
  3. Lavorare con altre persone sarà anche più facile, poiché sono spesso utilizzati per l'utilizzo dei framework MVC

Puoi creare il tuo framework, ma sicuramente non lo consiglierei. È complicato, ci sono già molti buoni framework là fuori e non è probabile che troverai una funzione mancante. Inoltre, spesso forniscono modi per aggiungere le tue funzionalità, senza doverne creare una completamente nuova.


2
+1 per Quando sei a tuo agio con PHP, puoi iniziare a usare un framework. Il tuo punto 3) funziona bene solo se i framework sono molto simili. Aggiungerei "non creare un framework prima di averne usato pesantemente alcuni diversi"
peterchen,

8
Non sono assolutamente d'accordo con l'affermazione "dovresti sempre usarli". Non sono adatti per ogni progetto e spesso finiscono per rendere le modifiche più difficili . Le utility sono molto più preziose dei framework.
Nicole,

+1 per @NickC, non potrei essere più d'accordo. Alcuni framework affermano di essere dinamici e facili da cambiare, ma poi si arriva a un certo punto e proprio ... non si riesce. Mi sono lamentato molto di questo genere di cose :)
Steve Hill il

Concordo sul fatto che MVC è un ottimo terreno comune che consente ad altre persone di entrare nel tuo codice con meno di una curva di apprendimento se usato correttamente. Ma MVC è la stella splendente lì, il framework (o la sua mancanza) è solo l'implementazione.
Tim Post

Tutti questi sono teorici e non funzionano in pratica. I framework PHP hanno maggiori probabilità di rendere più difficili tutte queste cose. L'applicazione media scritta da zero richiede da circa cinquecento a cinquemila righe di codice quadro. Questa è una media di lavoro di circa una settimana. Se è di più, probabilmente stai scrivendo una libreria o stai creando una piattaforma interna.
jgmjgm,

9

Costruisci alcune pagine senza un framework ... inizierai essenzialmente a scrivere il tuo framework per tentativi ed errori. Dopo averlo fatto, passa a un framework e goditi quanto tempo risparmi. Cercare di costruire il proprio framework può insegnarti alcune cose e ti aiuterà ad apprezzare i framework che sono già disponibili.

Quando sono entrato in PHP, pensavo che i framework fossero una complicata perdita di tempo. Ora uso CodeIgniter anche per progetti semplici. Ci vogliono circa 1 minuto per metterti in funzione e hai già un sacco di ottime librerie a tua disposizione. E, come menzionato in un precedente poster, la maggior parte dei framework è estensibile, quindi puoi sempre aggiungere qualsiasi funzionalità desideri.


2
Ma come posso assicurarmi in seguito che il codice nel framework sia esattamente come voglio? Voglio dire, ogni programmatore ha il suo stile, giusto? Che dire del framework !!
Goma,

1
@Goma E la lingua? Non ne ho ancora trovato uno che fa tutto come voglio. Il framework aggiunge qualcosa di molto, molto simile (si spera a un livello di astrazione un po 'più alto). Scherzi a parte, la codifica non si tratta di "far sembrare tutto / comportarsi / essere esattamente come voglio". Si tratta di creare qualcosa di utile, il codice è solo la responsabilità che ci grava perché i benefici superano il costo di avere quel codice nel primo posto.
Christopher Creutzig,

E ora @TaylorOtwell è il creatore di Laravel ...
Hos Mercury

4

Come ha detto Niphra , iniziare a utilizzare un framework solo quando è possibile utilizzare PHP senza framework (ovvero, accedere al database, inviare intestazioni e contenuto, elaborazione delle stringhe, manipolazione dei dati, ecc.). Per quanto riguarda le tue domande:

  • Quando devo utilizzare un framework PHP come CakePHP? Quando il tuo progetto cresce oltre alcuni file PHP; il momento in cui inizi a separare fortemente la logica in elementi distinti e la funzionalità di modularizzazione / condivisione (sessioni, ecc.) è quando dovresti usare un framework.

  • Quali sono le cose che questo e altri framework PHP simili mi offrono? Astrazione; invece di interagire direttamente con il database è possibile utilizzare un ORM (Object-Relational Mapping) per gestire la struttura e le relazioni tra i dati nel database. La maggior parte del framework in molte lingue fornisce ORM per facilitare l'interazione con il livello di database dell'applicazione. Allo stesso modo, i framework spesso separano i livelli di risposta all'interazione dell'utente. La separazione più comune è il paradigma di Model View Controller (MVC), che, per essere brevi, estrae la logica del database nel Modello (un'interfaccia per l'ORM, in molti casi), elaborando le richieste e interagendo con i Modelli nel Controller, e il rendering dell'effettivo HTML / PDF / immagine / ecc. nella vista. I framework spesso forniscono altri strumenti come il routing (per consentire l'elaborazione complessa dell'URI della richiesta (ad es. Mappatura della richiesta "http://example.com/users/1 "agli utenti del controller, che quindi cerca il modello utente con l'ID di 1) e un'astrazione di sessioni e altre strutture di base.

  • Ed è davvero importante utilizzare un framework per essere un professionista? Non necessariamente; le strutture semplificano la vita; ma non devi usarne uno per essere un professionista. Le strutture forniscono un'astrazione e una standardizzazione utili, ma nella maggior parte dei casi non sono un requisito.


3

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.


1

Comune tra una persona che ha passato anni a decifrare i miei modi di parlare con un database e parlare con le API online e solo ora sto iniziando a usare i framework, usali quando almeno hai una comprensione di ciò che stanno facendo, se possibile.

Non saltare immediatamente per RedBean per la prima volta lavorando con un database, prima lavora manualmente con il DB. In questo modo hai una conoscenza approfondita di ciò che stai effettivamente recuperando e facendo nel DB, il che può davvero aiutare con la scalabilità. Inoltre, puoi creare la tua soluzione quando il framework che stai utilizzando non fa qualcosa che devi fare.

Una volta capito cosa sta succedendo, usa un framework! Rende le cose molto più facili. La follia con la memorizzazione di una query poi loop sui risultati con mysql_fetch_assocè tutto andato, ridotto ad una singola chiamata: $book = R::load( "book", $id ). Sarai molto più produttivo e potrai correggere bug futuri o aggiungere funzionalità future molto più facilmente.


1

Usa un framework quando conosci abbastanza bene le tecnologie sottostanti per sapere cosa fa il framework per te e perché è buono (o cattivo).

Un framework è una sorta di meta-strumento, che ti consente di lavorare con i tuoi strumenti (lingua, database) un po 'più velocemente senza doversi preoccupare di alcuni dettagli di ciò che stai facendo, il che è positivo se conosci davvero il tuo utensili.

Quello che NON vuoi che accada è che impari la struttura invece degli strumenti, e diventi canalizzato in un certo modo di fare le cose, e finisci per non prendere davvero una padronanza delle lingue e dei concetti sottostanti - dovrebbe essere un strumento, non una stampella.


1

Quando ti ritrovi a fare sempre la stessa cosa, guardati intorno e vedi se esiste un framework che fa le stesse cose ridondanti che avresti finito per fare da solo. Non usare solo un framework a causa dell'hype. Personalmente mi piace CodeIgniter e il "no framework PHP MVC framework" di CodeIgniter e Rasmus Lerdorf http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html


Ho scritto diversi "no framework framework" per alleviare il dolore di aggiungere nuove funzionalità a siti per lo più statici (ed enormi) che non possono essere facilmente portati in alcun tipo di sistema di gestione / pubblicazione, quindi hanno i loro usi. Ma non vorrei realizzarmi per un progetto nuovo di zecca (userei semplicemente CI se fosse richiesto un framework).
Tim Post

@Tim Post Di solito non c'è mai una risposta in bianco e nero a questa domanda. Tutto dipende dal progetto a portata di mano, il post originale non ha fornito dettagli su un particolare progetto.
programmatore

1
Sembra che ho ottenuto un voto negativo da un fanatico del framework, bello!
programmatore

Non sono io :) Qualcuno potrebbe aver reagito al link che hai pubblicato senza però entrare nei dettagli.
Tim Post

@Tim Post Heh! Ecco perché mi sono assicurato di separare entrambi questi commenti. : D
programmatore

-1

Consiglierei di pensare attentamente al motivo per cui dovresti usare framework x, y o z. Ogni framework non fornisce solo funzionalità, che non devi implementare te stesso, ma anche un modo di pensare. Guarda Spring, JEE, Rails o Django. Quattro framework che forniscono abbastanza per battere fuori un'applicazione Web in poco tempo.

Ma tutti e quattro promuovono il proprio modo di pensare su come dovrebbero essere costruite le app Web. E se questo non soddisfa le tue esigenze o il tuo gusto, avrai difficoltà ad andare oltre.

Questo è stato un confronto molto radicale, ma forse costruire una piccola biblioteca si adatta meglio alle tue esigenze. Ma conoscere i framework ti aiuterà sicuramente a lavorare in team più grandi o a trovare nuovi lavori, poiché ciò dimostra che sei interessato allo sviluppo del software nel suo complesso.


-2

I frame sono sempre buoni da usare fin dall'inizio. Promuove la riusabilità del codice, una migliore leggibilità e consente di risparmiare un po 'di tempo di sviluppo.

Non ho molta esperienza con PHP, ma incoraggerei qualsiasi utilizzo del framework.


Perché il down vota?
Pierre Pretorius,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.