>> Si potrebbe ricordare da l'ultima volta che abbiamo guardato
in questo ultimo esempio di MVC,
un controller di vista del modello architettura,
ed è praticamente bollito
giù a organizzare le cose un po 'più pulito
nelle directory.
E se lo faccio albero, che è solo un comando
che mi mostra il file system in questo modo, abbiamo avuto una bella
e ordinata modelli di directory, un elenco pubblico, e così via.
E l'idea generale è stato messo solo
nella directory pubblica i file che realmente bisogno
essere pubblico, e tutto il resto deve essere ben organizzato.
Ma efficace, all'interno di questo Elenco pubblico avevamo tutti
intero gruppo di controllori, singoli regolatori
che in qualche modo necessaria né compresi altri file.
Ma abbiamo davvero non abbiamo avuto molto più funzionalità di questo,
e, in effetti, abbiamo sorta di dovuto implementare questo concetto di vedute,
o modelli, noi stessi, con la funzione estratto
e una funzione di rendering che abbiamo implementato noi stessi.
E come è cominciamo a fare questo, inizieremo a realizzare -
inizieremo a costruire una lista, come, oh, wow,
Mi piacerebbe avere una biblioteca per l'invio di messaggi di posta elettronica.
Mi piacerebbe avere una biblioteca per creare un database.
Vorrei avere biblioteca per dot dot dot.
Ed è per questo che questi esistono librerie.
Questo è il motivo per cui le persone utilizzano Django con Python,
perché ti dà solo più.
E 'il motivo per cui la gente usa Rails con Ruby
perché ti dà solo più.
Ecco perché useremo Laravel perché in cima di PHP,
ti dà solo più.
E proprio per insegnare, quindi, per un attimo, ho intenzione di andare
in una directory v-host
in un'applicazione di esempio utilizzando Laravel.
A prima vista, francamente, è probabilmente un po 'opprimente
perché ci sono così tanti file, directory così tanti,
ma la cosa importante, e come vedremo dopo una breve pausa,
è quello di concentrarsi solo su le cose più germano
per ottenere un lavoro fatto inizialmente, e che sta andando
essere nella directory apt.
Come potrete vedere e sentire, ci sono ancora un mucchio di cartelle,
ma quelli sulla continuità di cura merito, soprattutto, sono questo.
Se apro fermata rotta PHP, avviso come un teaser,
come questa applicazione è in procinto di lavorare.
Questa è una reimplementazione in Laravel
della super semplice ammissione al corso stupido
che mi ha dato la settimana zero, settimana uno, conferenze e i PDF.
Sto semplicemente andando a specificare - il mio schermo è un po 'tagliato fuori,
ancora una volta - ho intenzione di specificare i seguenti,
che voglio definire un percorso utilizzando HTTP GET per barra,
e quando un utente per questo visite applicazione tagliano
sul mio sito, voglio eseguire il pezzo anonimo di codice,
vale a dire di ritorno vista colon make.
Quindi questo significa chiamata a metodo statico all'interno
di una classe denominata vista, e make rende un modello
che si chiama indice, e passa in un mazzo
di coppie di valori fondamentali, in questo caso, titolo.
Nel frattempo, se l'utente visite tagliano lezioni,
questo codice dovrebbe eseguire,
e il modello di lezioni dovrebbe ottenere rendering.
Infine, se l'utente visita lezioni tagliano qualcosa,
dove che qualcosa è, per il fondo qui, un numero,
una o più cifre decimali,
poi voglio rendere le lezioni template,
passando nel titolo pure.
Così il risultato finale è che -
se ho effettivamente tiro su questa applicazione nel mio browser,
il risultato finale - whoops.
Il risultato finale è esattamente lo stesso,
anche se con poco URL più sexy ora.
Ora è una lezione barra 0 invece di settimana zero virgola PHP.
Ma cerchiamo di mettere in pausa qui.
Facciamo un due minuti rompere, e quando siamo tornati,
Tim sta per venire su e presentarci
al funzionamento interno del Laravel e il tipo
di funzionalità siamo in procinto di uscire dalla scatola.
>> Va bene, quindi, ora siamo andando a prendere un tuffo profondo
nel quadro Laravel PHP, che David menzionato.
Così Laravel, il primo posto stiamo per iniziare è andare
per l'avvio rapido
e installarlo tramite qualcosa chiamato Composer.
Quindi Composer è un sistema di gestione dei pacchetti
per PHP simile a gemme per Ruby o Pit
per Python o MPM per No JS.
Compositore aiuta a gestire tutti le diverse dipendenze
che Laravel dipende da quando - Una sorta di, sotto il cofano.
Esso utilizza un sacco di sinfonia,
di un altro framework PHP funzionamento interno.
E, così, stiamo andando per utilizzare la riga di comando
che ci danno qui, Compositore creare il progetto Laravel Laravel,
dopo che abbiamo installato l'utilità Composer,
che ho già fatto sul - vediamo.
Così sto usando l'apparecchio CS 50
perché questo ha tutta la Versioni di PHP e My SQL
e tutto ciò di cui abbiamo bisogno per iniziare l'esecuzione.
Quindi ho intenzione di andare avanti e tirare su il terminale qui
e saltare nel v-host directory, e sto andando
per incollare questo - oh, non può farlo in quel modo.
Quindi ho intenzione di SSH all'istanza Linux
che sto correndo in VMWare.
E ho intenzione di eseguire questo Compositore creare il progetto Laravel,
e ho intenzione di cambiare il nome del progetto
a poco esempio dot dev.
E dietro le quinte,
questo richiede un po 'di tempo la prima volta si sta andando
per farlo, ma è installare tutte le dipendenze
che si sta andando a necessario eseguire Laravel.
Quindi speriamo che questo non Non troppo lungo.
Si deve solo prendere un secondo.
La prima volta che lo fate, ci vorranno un paio di minuti,
probabilmente, perché ha bisogno di ottenere tutto.
Ho tutto in cache qui.
Quindi, ora che abbiamo esempio dot dev, che cosa stiamo andando ad avere bisogno
fare per poter accedere a questa
nel nostro browser Chrome è andare avanti e saltare in su -
stiamo andando a pseudo tramite il file hosts Etsy.
E stiamo per andare avanti e aggiungere una nuova linea qui con l'IP
dell'apparecchio 50, che viene mostrato qui
nell'angolo in basso a destra dello schermo, la 192 168 -
e questo potrebbe essere diverso a seconda del vostro computer,
così 192 168 69 128 [audio rompere] esempio di progetto dot dev.
Ok. Salva questo.
Così, ora, se andiamo a example DOT dev, vediamo il - vediamo.
Oh, io ero nel torto directory, quindi lasciami andare avanti
e spostare il dev esempio dot nella directory v-host.
E ora, se ci aggiorniamo, abbiamo vedere che dice proibito.
Non hai accesso.
Quindi abbiamo bisogno di andare in Elenco esempio dot dev
in V-host, e abbiamo bisogno di chmod al 0711, il dev esempio puntino,
così come il pubblico - oh, L'ho fatto di sbagliato entrambe le volte.
Così il dev esempio puntino, come così come la directory pubblica
cioè sotto essa, in modo che sia in grado
per arrivare al PHP indice dot.
E ora, se ci rinfreschiamo - oh, stiamo ancora problemi.
Così all'interno nell'esempio elenco pubblico,
se riportiamo tutti i file, compresi quelli nascosti,
c'è un file di accesso HD, e questo è utilizzato da Apache
per aiutare a determinare, per questa directory specifica,
dove devono essere posati richieste.
Quindi questo deve anche essere chmoded al 0644, e ora siete arrivati.
Così che era la rapida installazione del Laravel tramite la riga di comando.
Quindi cerchiamo di andare avanti, e io vado utilizzare qualcosa chiamato Samba.
Se non hai familiarità con essa, si può - dal menu del Finder,
vai a vai e connettersi server e si può andare avanti
e fare SMB colon barra tagliare e l'indirizzo IP
dell'istanza di Linux che siamo esecuzione in VMWare e andare avanti
e connettersi al server in modo da poter montare
come file system e usarlo
come se foste a livello locale ad esso collegato.
Quindi ho intenzione di andare avanti e tirare questa
in un editor chiamato testo sublime.
Se non si conosce, si è davvero un bel montaggio
che è disponibile per modificare i file di codice.
E così stiamo andando a dare un'occhiata
nella directory struttura per il progetto.
Quindi c'è una qualche diversa cartelle nel livello superiore.
Ci sono app che David ha già detto.
C'è bootstrap, che sono alcuni file utilizzati internamente
da Laravel il bootstrap tutto il dipendenze, li caricano in,
assicurarsi che tutta la magia metodi vengono chiamati correttamente
essere in grado di [pausa audio].
C'è il pubblico directory, che è dove tutti
dei nostri beni rivolti al pubblico, come il PHP indice dot
in cui le richieste vengono instradate, immagini, file CSS, JavaScript,
tutto ciò che deve essere direttamente accessibile
dal mondo vive in la directory pubblica.
E poi la directory vendor sono tutte le attività -
o tutto il [pausa audio] sotto il cofano che fa molto
del sollevamento di carichi pesanti che Laravel dipende.
Quindi tipicamente, in un pubblico directory, questo è una sorta
di ciò che si vede, il CSS, JavaScript,
questi file non sono presenti quando l'installazione del framework,
ma quelle sono cose che è probabile che vuole aggiungere
come si sta costruendo le vostre applicazioni.
L'accesso ai file HD che ho summenzionato e il PHP indice puntino,
che è il fronte regolatore per il -
in cui tutte le richieste passare attraverso inizialmente.
Quindi all'interno dell'applicazione cartella, questi sono -
In realtà c'è una coppia -
in realtà vi sono alcuni diverse cartelle qui.
Ci sono un sacco di loro, e come David menzionato,
Può essere schiacciante in un primo momento, ma si vuole solo concentrarsi
su queste specificamente.
Quindi c'è rotte dot PHP, che è quello che abbiamo visto in precedenza
per dimostrare che è possibile instradare un metodo specifico indirizzo e HTP
ad un certo sia anonimo funzione, come David stava usando,
o un controller, che stiamo per andare oltre.
C'è la cartella CONFIG,
che è dove si imposta qualsiasi configurazione dell'applicazione
che è necessario, come impostazioni del database o qualsiasi API
che si potrebbe avere a che fare con.
Se stai usando qualcosa per inviare la posta
o se si sta collegando ad Amazon per memorizzare le immagini,
si dovrebbe impostare tutti quelle configurazioni
in un punto nel centro applicazione in modo che -
sorta di convenzioni che tutti, come stanno lavorando
su una squadra, non c'è bisogno di pensare a dove è questo.
E 'solo che hanno un impostare luogo dove va.
Sarebbe in CONFIG.
Controllori sono la collocare nella domanda
dove in genere instradare le richieste.
Così il controllore gestisce un lotto della logica dell'applicazione
e una sorta di raccoglie ciò che l' visualizzazione dello schermo sta
di essere, il punto di vista, e poi anche conchiglie
verso i diversi modelli che contengono i dati
e passare quelle alla vista.
Quindi è una sorta di - controller è una sorta di dispatcher
per le richieste, si sa, che cosa hai intenzione di fare
con i dati - o con - a seconda della richiesta è,
quali dati devono essere indicati e dove otteniamo da.
E le opinioni sono in genere solo HTML,
magari utilizzando un templating motore, come stiamo per andare
sopra con il templating lama motori che le navi Laravel con.
E poi le altre directory per ora, stiamo solo andando
a una sorta di sorvolare e non preoccuparti.
Ma quelli includono prove, così Applicazioni gratis-test di unità,
filtri, archiviazione.
Continuo a fare questo.
Va bene, salto indietro qui.
Quindi la prima cosa che viene fornito con questo percorso è arrivare
e lo fa vista fanno ciao.
Quindi, se guardiamo in la directory di vista,
vediamo che c'è PHP è un puntino ciao,
ed è lì che questo si sono arrivati ​​proviene.
Ma possiamo anche cambiare questo -
così, possiamo cambiare questo ciao, e ora, se cerchiamo di andare
ad un percorso che non è definita otteniamo questo tipo di vassoi di stack
che cosa sia andato storto con l'applicazione.
Ma se andiamo tagliare ciao,
vi è in realtà un errore interno del server.
Quindi c'è un po 'di magia accade dietro le quinte
nel CS 50 apparecchio assicurarsi che siete in grado
di nominare tutti questi directory convenientemente.
Il nome del - così la esempio dot dev che abbiamo dato.
Quindi in realtà abbiamo a cambiare una cosa più
nel file di accesso HD.
Quindi stiamo per andare avanti
e aggiungere questa linea, riscrivere barra base.
E che in fondo è un'altra direttiva.
David, si può parlare più di ciò che la base di riscrittura fa.
>> Corregge essenzialmente più quello che il server pensa.
Si suppone che sia [Incomprensibile] host virtuale.
Quindi, precisando di ignorare che, riscrivere gli indirizzi di barra di base.
>> Destra. Così, ora, tagliare ciao funziona correttamente.
Quindi facciamo un salto indietro qui.
Quindi, insieme con solo facendo un funzione anonima come questo,
ci sono - e questo è solo un riassunto
del MVC ero solo discutendo.
Si va nelle vie e poi conchiglie fuori i controllori,
che si occupa della modelli e punti di vista e come tutto
che dovrebbe essere affrontato.
Così controllori sono una sorta di - aiutare a centralizzare tutto questo,
ed è possibile accedervi tramite percorsi di dire rotta arrivare.
Così potremmo dire rotta ottenere ciao,
e il regolatore nome e in nome di un metodo.
Quindi cerchiamo di andare avanti e dare che un colpo.
Così diremo rotta farsi tagliare ciao,
e faremo un ciao regolatore a mostrare ciao.
Quindi, al fine di questo lavoro,
abbiamo bisogno di aggiungere un file chiamato ciao regolatore dot PHP.
Vado avanti e - quindi si estende un controller di base,
che Laravel già navi con,
quale si estende un controller, che è una specie di sotto il cofano
e fa un sacco di roba dietro le quinte
che aiuta i controllori gestire tutti questo stato
che sta arrivando in l'applicazione.
Così il controller di casa, abbiamo detto si sarebbe chiamato spettacolo ciao.
E faremo proprio - invece di restituire una visione,
ci limiteremo a tornare mondo ciao.
Oh, ciao - oh, ho copiato.
Ciao controller.
Quindi ciao mondo.
Così che è solo una realtà, davvero semplice esempio
di come è possibile creare controllori.