All'inizio del Web dinamico, la scrittura di un'applicazione Web sembrava molto diversa da oggi. Gli sviluppatori erano quindi responsabili della scrittura del codice non solo per la logica aziendale univoca delle nostre applicazioni, ma anche ciascuno dei componenti così comuni su tutti i siti: autenticazione utente, convalida dell'input, accesso al database, templating e altro ancora.
Oggi i programmatori hanno dozzine di quadri di sviluppo delle applicazioni e migliaia di componenti e librerie facilmente accessibili. È un ritornello comune tra i programmatori che, quando impari un framework, sono spuntati tre framework più recenti (e presumibilmente migliori).
"Solo perché è lì" potrebbe essere una giustificazione valida per arrampicarsi su una montagna, ma ci sono motivi migliori per scegliere di utilizzare un quadro specifico o per utilizzare un framework. Vale la pena porre la domanda: perché i quadri? Più specificamente, perché Laravel?
Perché utilizzare un framework?
È facile capire perché è utile utilizzare i singoli componenti o pacchetti, che sono disponibili per gli sviluppatori PHP. Con i pacchetti, qualcun altro è responsabile dello sviluppo e del mantenimento di un pezzo di codice isolato che ha un lavoro ben definito e in teoria che la persona ha una comprensione più profonda di questo singolo componente di quanto non abbia il tempo di avere.
Framework come Laravel-e Symfony, Silex, Lumen e Slim-Prepackage Una raccolta di componenti di terze parti insieme al framework personalizzato "colla" come file di configurazione, provider di servizi, strutture di directory prescritte e bootstrap. Quindi, il vantaggio di utilizzare un framework in generale è che qualcuno ha preso decisioni non solo sui singoli componenti per te, ma anche per te Come questi componenti dovrebbero adattarsi insieme.
"Lo costruirò solo da solo"
Supponiamo che inizi una nuova app web senza il beneficio di un framework. Da dove inizi? Bene, dovrebbe probabilmente instradare le richieste HTTP, quindi ora è necessario valutare tutte le librerie di richiesta e risposta HTTP disponibili e sceglierne una.
Quindi un router. Oh, e probabilmente dovrai impostare una qualche forma File di configurazione dei percorsi. Che cosa sintassi dovrebbe usare? Dove dovrebbe andare? Che dire controller? Dove vivono e come vengono caricati?
Bene, probabilmente lo sei Hai bisogno di un'iniezione di dipendenza contenitore per risolvere i controller e le loro dipendenze, ma quale?
Inoltre, cosa succede se ti prendi il tempo per rispondere a tutte quelle domande e creare con successo la tua applicazione: qual è l'impatto sul prossimo sviluppatore?
Che dire di quando hai quattro applicazioni basate su framework personalizzate o una dozzina e devi ricordare dove vivono i controller in ciascuno o quale sia la sintassi di routing?
I framework di coerenza e flessibilità affrontano questo problema fornendo una risposta attentamente considerata alla domanda “Quale componente dovremmo usare qui?"E garantire che i particolari componenti scelti funzionino bene insieme. Inoltre, i framework forniscono convenzioni che riducono la quantità di codice che uno sviluppatore nuovo al progetto deve capire: se si capisce come funziona il routing in un progetto Laravel, ad esempio, si capisce come funziona in tutti i progetti di Laravel.
Quando qualcuno prescrive il tuo framework per ogni nuovo progetto, ciò che stanno veramente sostenendo è la capacità di controllare ciò che fa e non va nella fondazione della tua applicazione.
Ciò significa che i migliori framework non ti forniranno solo una solida base, ma ti darà anche la libertà di personalizzare il contenuto del tuo cuore.
Una breve storia di quadri Web e PHP
Una parte importante della possibilità di rispondere alla domanda “Perché Laravel?"È capire la storia di Laravel e capire cosa è venuto prima. Prima dell'ascesa di Laravel nella popolarità, c'erano una varietà di quadri e altri movimenti in PHP e in altri spazi di sviluppo web.
Ruby sui binari
David Heinemeier Hansson ha pubblicato la prima versione di Ruby on Rails nel 2004, ed è stato difficile trovare un framework di applicazioni web da allora che non è stato influenzato in qualche modo da Rails.
Rails ha reso popolare MVC, API JSON RESTful, Convenzione su configurazione, record attivo e molti altri strumenti e convenzioni che hanno avuto una profonda influenza sul modo in cui gli sviluppatori Web hanno affrontato le loro applicazioni, in particolare per quanto riguarda il rapido sviluppo delle applicazioni.
L'afflusso di framework PHP
Era chiaro per la maggior parte degli sviluppatori che i binari, e simili quadri di applicazioni Web, erano l'onda del futuro, e framework PHP, compresi quelli con certezza che imitavano i binari, iniziando a spuntare rapidamente.
Cakephp è stato il primo nel 2005 ed è stato presto seguito da Symfony, CodeIgniter, Zend Framework e Kohana (una fork CodeIgniter).
Yii Arrivato nel 2008 e Aura e Slim nel 2010. Il 2011 ha portato FuelPhp e Laravel, entrambi i quali non erano del tutto codeigniter, ma invece proposti come alternative. Alcuni di questi framework erano più ferroviari, concentrandosi su mapper (ORM) oggetti-relazionali del database (ORM), strutture MVC e altri strumenti che mirano a un rapido sviluppo. Altri, come Symfony e Zend, si sono concentrati maggiormente sui modelli di progettazione aziendale e l'eCommerce.
Il bene e il male di codeigniter
CakePhp e Codeigniter erano i due primi framework PHP che erano più aperti su quanto la loro ispirazione fosse trattata dai binari. CodeIgniter è diventato rapidamente alla fama e nel 2010 è stato probabilmente il più popolare dei quadri PHP indipendenti.
CodeIgniter era semplice, facile da usare e vantava una documentazione straordinaria e una comunità forte. Ma il suo uso della tecnologia e dei modelli moderni avanzava lentamente e man mano che il mondo del framework cresceva e gli strumenti di PHP avanzati, CodeIgniter iniziò a rimanere indietro in termini di progressi tecnologici e funzionalità fuori dalla scatola.
A differenza di molti altri framework, CodeIgniter è stato gestito da un'azienda ed erano lenti a mettersi al passo con PHP 5.Funzionalità più recenti di 3 come spazi dei nomi e le spostate su GitHub e il compositore successivo. Era nel 2010 questo Taylor Otwell, Il creatore di Laravel, divenne abbastanza insoddisfatto di CodeIgniter da partire per scrivere il suo framework.
Laravel 1, 2 e 3
La prima beta di Laravel 1 è stata rilasciata nel giugno 2011 ed è stata scritta completamente da zero. Presenta un ORM personalizzato (eloquente); routing basato sulla chiusura (ispirato a Ruby Sinatra); un sistema di moduli per estensione; e aiutanti per moduli, validazione, autenticazione e altro ancora.
Più tardi Laravel 4 e Laravel 5 sono arrivati e hanno cambiato l'intero gioco.
Cosa c'è di così speciale in Laravel?
Allora, cosa che distingue Laravel? Perché vale la pena avere più di un framework PHP in qualsiasi momento? Comunque usano tutti i componenti di Symfony, giusto? Parliamo un po 'di ciò che rende Laravel "Tick."
La filosofia di Laravel
Devi solo leggere i materiali di marketing di Laravel e i readme per iniziare a vedere i suoi valori. Taylor usa parole legate alla luce come "illuminare" e "scintilla.
E poi ci sono questi: “Artigiani?'"Elegante?'Inoltre, questi: “Fesice d'aria fresca." "Nuovo inizio."E infine:" Rapido." "Velocità di curvatura."I due valori più fortemente comunicati del framework sono aumentare la velocità degli sviluppatori e la felicità degli sviluppatori.
Taylor ha descritto la lingua "artigianale" come intenzionalmente contrastante contro i valori più utilitaristici. Puoi vedere la genesi di questo tipo di pensiero nella sua domanda del 2011 su StackExchange (http: // bit.ly/2dt5kms) in cui ha dichiarato: "A volte trascorro ridicola quantità di tempo (ore) agonizzando per rendere il codice piuttosto bello" - Solo per il bene di una migliore esperienza di guardare il codice stesso.
E ha spesso parlato del valore di rendere più facile e veloce per gli sviluppatori prendere le loro idee per la realizzazione, sbarazzandosi delle barriere inutili alla creazione di ottimi prodotti. Laravel è, al centro, di equipaggiare e abilitare gli sviluppatori. Il suo obiettivo è quello di fornire un codice e funzionalità chiare, semplici e belle che aiutano gli sviluppatori a imparare, iniziare e sviluppare e scrivere un codice semplice, chiaro e durerà.
Il concetto di targeting per gli sviluppatori è chiaro tra i materiali Laravel. "Happy Developer Make the Best Code" è scritto nella documentazione.
"Lo sviluppatore felicità dal download a schieramento" è stato lo slogan non ufficiale per un po '. Naturalmente, qualsiasi strumento o framework dirà che vuole che gli sviluppatori siano felici. Ma avere la felicità degli sviluppatori come preoccupazione primaria, piuttosto che secondaria, ha avuto un impatto enorme sullo stile di Laravel e sul progresso decisionale. Laddove altri quadri possono colpire la purezza architettonica come obiettivo principale o compatibilità con gli obiettivi e i valori dei team di sviluppo aziendale, il focus principale di Laravel è di servire il singolo sviluppatore.
Come Laravel raggiunge la felicità degli sviluppatori
Solo dicendo che vuoi rendere felici gli sviluppatori è una cosa. Farlo è un altro, e richiede che tu metta in discussione cosa è più probabile che in un quadro renda gli sviluppatori infelici e cosa è più probabile che li renda felici. Ci sono alcuni modi in cui Laravel cerca di semplificare la vita degli sviluppatori.
Innanzitutto, Laravel è un rapido quadro di sviluppo delle applicazioni. Ciò significa che si concentra su una curva di apprendimento superficiale (facile) e sulla minimizzazione dei passaggi tra l'avvio di una nuova app e la pubblicarla. Tutte le attività più comuni nella costruzione di applicazioni Web, dalle interazioni del database all'autenticazione alle code alla e -mail alla memorizzazione nella cache, sono rese più semplici dai componenti che Laravel fornisce.
Ma i componenti di Laravel non sono solo grandi da soli; Forniscono un'API coerente e strutture prevedibili in tutto il framework. Ciò significa che, quando provi qualcosa di nuovo in Laravel, probabilmente finirai per dire: "... e funziona solo?'
Questo non finisce nemmeno nel framework stesso. Laravel fornisce un intero ecosistema di strumenti per la costruzione e il lancio di applicazioni. Hai una fattoria e un cameriere per lo sviluppo locale, la forgia per la gestione dei server e l'invio per la distribuzione avanzata.E c'è una suite di pacchetti aggiuntivi:
Laravel sta cercando di prendere il lavoro ripetitivo dal lavoro degli sviluppatori in modo che possano fare qualcosa di unico.
"Estratti da - Laravel Up & Running Book"