>> Du husker muligvis fra sidste gang, at vi kiggede
på dette sidste eksempel på MVC,
en model view-controller arkitektur,
og det temmelig meget kogt
ned til at organisere tingene lidt mere rent
i mapper.
Og hvis jeg gør træet, der er bare en kommando
der viser mig filsystemet som dette, havde vi en dejlig
og pæn skabeloner bibliotek, en offentlig fortegnelse, og så videre.
Og den generelle idé blev kun lægge
i den offentlige mappe de filer, der virkelig har brug for
at være offentlig, og alt ellers burde være pænt organiseret.
Men effektivt på indersiden af ​​dette offentlig fortegnelse vi havde alle
hel masse af flyveledere enkelte regulatorer
at en eller anden måde kræves eller medtaget andre filer.
Men vi virkelig ikke få meget mere funktionalitet end det,
og i virkeligheden, vi slags havde til gennemføre denne forestilling af synspunkter
eller skabeloner, os selv, med ekstrakt funktion
og en render funktion, vi implementeret os.
Og som det er, vi begynde at gøre dette, vil vi begynde at indse -
vi vil begynde at opbygge en ønske listen, ligesom, oh, wow,
Jeg ville ønske, jeg havde et bibliotek til at sende e-mails.
Jeg ville ønske, jeg havde et bibliotek for at skabe en database.
Jeg ville ønske, jeg har bibliotek for dot dot dot.
Og det er derfor disse findes biblioteker.
Det er derfor, folk bruger Django med Python,
fordi det bare giver dig mere.
Det er derfor, folk bruger Skinner med Ruby
fordi det bare giver dig mere.
Det er derfor, vi vil bruge Laravel grund på toppen af ​​PHP,
det bare giver dig mere.
Og bare for at lære dig, så, et øjeblik, jeg kommer til at gå
i en v-host bibliotek
i en prøve ansøgning hjælp Laravel.
Ved første øjekast, helt ærligt, det er sandsynligvis en smule overvældende
fordi der er så mange filer, så mange mapper,
men det vigtigste, og som vi vil se efter en hurtig pause,
er kun at fokusere på de mest germane ting
at få nogle arbejde i første omgang, og der kommer
at være i apt bibliotek.
Som du kan se og høre, der er stadig en flok mapper
men dem på at gå til pleje om, primært, er dette.
Hvis jeg åbner rute stopper PHP, bekendtgørelse som en teaser,
hvordan denne ansøgning er klar til at arbejde.
Dette er en reimplementering i Laravel
af den super simple dum kursus ansøgning
der gav mig uge nul, uge én, foredrag og PDF-filer.
Jeg simpelthen kommer til at angive - min skærm er en lille cut off,
igen - jeg har tænkt mig at specificere følgende
at jeg ønsker at definere en rute ved hjælp af HTTP får for slash,
og når en bruger til dette ansøgning besøg skråstreg
på min hjemmeside, jeg vil udføre den anonyme stykke kode,
nemlig tilbage view kolon gøre.
Så dette betyder kalde en statisk metode inde
af en klasse kaldet visning, og make gør en skabelon
der kaldes indeks og det passerer en flok
af centrale værdi-par, i dette tilfælde titel.
I mellemtiden, hvis brugeren besøg skråstreg foredrag,
denne kodeks skulle udføre,
og foredrag skabelon bør få gjort.
Endelig, hvis brugeren besøger foredrag slash noget,
hvor der er noget, pr bunden her, et tal
én eller flere decimaler,
så jeg ønsker at gengive forelæsningerne Template,
passerer i titlen så godt.
Så Slutresultatet er, at -
hvis jeg faktisk trække op denne ansøgning i min browser,
slutresultatet - hovsa.
Slutresultatet er nøjagtig det samme,
omend med lidt sexede webadresser nu.
Nu er det et foredrag skråstreg 0 i stedet for uge nul dot PHP.
Men lad os stoppe her.
Lad os tage en to-minutters pause, og når vi kommer tilbage,
Tim vil komme på op og introducere os
til de indre funktioner af Laravel og den slags,
funktionalitet vi ved at komme ud af kassen.
>> Okay, så nu er vi kommer til at tage et dybere dyk
i Laravel PHP rammer, som David nævnt.
Så Laravel, det første sted vi kommer til at starte går
til hurtig start
og installere den via noget, der hedder Composer.
Så Composer er en pakke management system
til PHP ligner perler for Ruby eller Pit
for Python eller MPM for No JS.
Composer hjælper med at styre alle de forskellige afhængigheder
at Laravel afhænger af, hvornår - Slags, under kølerhjelmen.
Det bruger en masse af symfonien,
en anden PHP ramme er indre funktioner.
Og så vil vi at bruge kommandolinjen
at de giver os her, Komponist skabe projekt Laravel Laravel,
efter at vi har installeret Komponist nytte,
som jeg allerede har gøres på - lad os se.
Så jeg bruger CS 50 apparat
fordi det har alle de PHP versioner og min SQL
og alt det, vi har brug for at komme i gang kører.
Så jeg har tænkt mig at gå videre og trække op terminalen her
og hoppe ind i v-vært mappe, og jeg har tænkt mig
at indsætte det - åh, jeg kan ikke gøre det på den måde.
Så jeg har tænkt mig at SSH til Linux instans
at jeg kører i VMWare.
Og jeg har tænkt mig at køre dette Komponist skabe projekt Laravel,
og jeg har tænkt mig at ændre dit projekt navn
til bare eksempel dot dev.
Og bag kulisserne,
dette tager lidt tid første gang, du går
at gøre det, men det er installere alle afhængigheder
at du kommer til at nødt til at køre Laravel.
Så forhåbentlig dette gør ikke tage for lang tid.
Det skulle bare tage en anden.
Den første gang, at du gør det, det vil tage et par minutter,
sandsynligvis fordi det brug for at få alt.
Jeg har det hele cached her.
Så nu, at vi har eksempelvis prik dev, hvad vi får brug for
at gøre for at kunne få adgang til denne
i vores Chrome-browseren er gå videre og hoppe ind på -
vi kommer til pseudo via Etsy hosts.
Og vi kommer til at gå videre og tilføje en ny linje her med IP
af de 50 apparatet, som er vist her
i nederste højre hjørne af skærmen, 192 168 -
og dette kan være anderledes afhængigt af din maskine,
så 192 168 69 128 [lyd pause] eksempel projekt dot dev.
Okay. Gem det.
Så nu, hvis vi går til eksempel dot dev, ser vi - lad os se.
Åh, jeg var i den forkerte mappe, så lad mig gå videre
og flyt eksempel dot dev i v-host bibliotek.
Og nu, hvis vi genopfriske det, vi se, at den siger forbudt.
Du har ikke adgang til.
Så vi er nødt til at gå ind i eksempel dot dev directory
i V-vært, og vi er nødt til at chmod det til 0711, eksemplet dot dev,
samt det offentlige - åh, Jeg gjorde det forkert begge gange.
Så eksempel dot dev, som samt den offentlige mappe
der er under det, så det er i stand
at komme til indeks dot PHP.
Og nu, hvis vi genopfriske - oh, vi stadig har problemer.
Så inde i eksempel offentlig fortegnelse,
hvis vi en liste over alle de filer, inklusive de skjulte dem,
Der er en HD adgang fil, og dette bruges af Apache
at hjælpe med at bestemme, om dette bestemt mappe,
hvor anmodninger skal føres.
Så det skal også chmoded til 0644, og nu du er ankommet.
Så det var den hurtig installation af Laravel via kommandolinjen.
Så lad os gå videre, og jeg har tænkt mig at bruge noget, der hedder Samba.
Hvis du ikke er bekendt med det, du kan - i menuen Finder,
gå hen og oprette forbindelse til server, og du kan gå videre
og gøre SMB kolon skråstreg skråstreg og IP-adressen
af Linux instans, at vi er kører i VMWare og gå videre
og oprette forbindelse til serveren så du kan montere den
som filsystem og bruge det
som hvis du var lokalt forbundet til det.
Så jeg har tænkt mig at gå fremad og trække dette
ind i en editor kaldet sublime tekst.
Hvis du ikke kender, er det er en virkelig rart redaktør
der er til rådighed at redigere kode filer.
Og så vil vi at tage et kig
på biblioteket struktur for projektet.
Så der er et par forskellige mapper i det øverste niveau.
Der er app, som David har nævnt allerede.
Der er bootstrap, der er nogle filer, der bruges internt
af Laravel til at starte alle de afhængigheder, indlæse dem alle i,
Sørg for, at alle de magiske metoder kaldes korrekt
at være i stand til [lyd pause].
Der er den offentlige mappen, som er hvor alle
af vores offentlige-vendende aktiver, såsom indekset dot PHP
hvor anmodninger dirigeres, billeder, CSS-filer, JavaScript,
noget, der skal være direkte tilgængelige
af verden lever i det offentlige bibliotek.
Og så sælger biblioteket er alle af aktiverne -
eller alle de [audio pause] under kølerhjelmen, der gør en masse
af de tunge løft at Laravel afhænger.
Så typisk, i en offentlig mappe, det er en slags
af, hvad du ville se, CSS, JavaScript,
disse filer ikke er der, når du installerer rammer
men dem er ting, som vil du sandsynligvis ønsker at tilføje
som du bygger ud af dine applikationer.
HD adgang fil, som jeg nævnte, og indekset dot PHP,
som er den forreste controller til -
hvor alle anmodninger gå igennem i første omgang.
Så inde i programmet mappe, disse er -
der er faktisk et par -
Der er faktisk et par forskellige mapper her.
Der er en masse af dem, og som David nævnt,
det kan være overvældende i starten, men du blot ønsker at koncentrere
på disse specifikt.
Så der er ruterne dot PHP, hvilket er, hvad vi så tidligere
at vise, at du kan route en bestemt webadresse og HTP-metoden
til en vis enten anonym funktion, da David var bruger,
eller en controller, som vi er ved at gå over.
Der er mappen CONFIG,
der er, hvor du indstille enhver ansøgning konfiguration
at du har brug for, såsom database indstillinger eller eventuelle API'er
at du kan blive beskæftiger sig med.
Hvis du bruger noget at sende mail
eller hvis du tilslutter til Amazon for at gemme billeder,
du vil indstille alle de konfigurationer
i et centralt punkt i program, så -
slags konventioner, alle, da de arbejder
på et hold, behøver du ikke at tænke over, hvor er dette.
Det er bare at du har en sæt sted, hvor det går.
Det ville være CONFIG.
Controllere er placeres i ansøgningen
hvor man typisk rute anmodninger.
Så styreenheden håndterer en masse af ansøgningen logik
og sortering af pluk, hvad visning på skærmen går
at være, de synspunkter, og derefter også skaller
ud til de forskellige modeller som indeholder data
og videregive dem til visningen.
Så du slags - controlleren er sortering af afsenderen
for anmodninger, du ved, hvad du vil gøre
med data - eller med - afhængigt af anmodningen,
hvilke data der skal vises og hvor får vi det fra.
Og synspunkter er typisk kun HTML,
måske ved hjælp af en templating motor, som vi kommer til at gå
over med Blade templating motor, Laravel skibe med.
Og så de andre biblioteker for lige nu, er vi bare
at slags tilsløre og ikke bekymre sig om.
Men de omfatter tests, så unit test-fri applikationer,
filtre, opbevaring.
Jeg holde gør dette.
Okay, spring sikkerhedskopiere herovre.
Så den første ting, at det kommer med denne rute får
og det gør visning gør hej.
Så hvis vi ser på den visninger biblioteket
vi se, at der er en goddag prik PHP,
og det er her, det du er ankommet kommer fra.
Men vi kan også ændre dette -
så kan vi ændre dette til hej, og nu, hvis vi forsøger at gå
til en rute, der ikke er defineret vi får denne slags stack bakker
om, hvad der gik galt med ansøgningen.
Men hvis vi går skråstreg hej,
Der er faktisk en intern serverfejl.
Så der er en lille smule af magi foregår bag kulisserne
i CS 50 apparatet til sørg for, at du er i stand
at nævne alle disse mapper bekvemt.
Navnet på den - så eksempel dot dev som vi gav.
Så vi faktisk nødt til at ændre én ting mere
i HD adgang fil.
Så vi kommer til at gå videre
og tilføje denne linie, omskrive basen skråstreg.
Og der dybest set er et andet direktiv.
David, kan du tale mere til hvad omskrive basen gør.
>> Det væsentlige korrigerer mere hvad serveren tænker.
Det er meningen at være [Uhørligt] virtuel vært.
Så specificere at ignorere, at ved omskrive basen slash-adresser.
>> Right. Så nu, skråstreg hej fungerer korrekt.
Så lad os hoppe tilbage herovre.
Så sammen med bare at gøre en anonym funktion som denne,
der er - så det er blot et resumé
af MVC jeg bare diskutere.
Det går ind i ruterne og derefter skaller ud controllerne
der beskæftiger sig med modeller og synspunkter, og hvor alle
der bør behandles.
Så controllere er slags - bidrage til at centralisere alle af det,
og du kan få adgang til dem via ruter ved at sige rute får.
Så kunne vi sige rute få hej,
og controlleren navngive på og en metode navn.
Så lad os gå videre og give det et skud.
Så vi vil sige rute få skråstreg hej,
og vi vil gøre et goddag controller på udstilling hej.
Så for at dette skal fungere,
vi nødt til at tilføje en fil kaldet hej controller dot PHP.
Jeg vil gå videre og - så det strækker en base controller,
som Laravel allerede skibe med,
som strækker sig en styreenhed, som er en slags under kølerhjelmen
og gør en masse af de ting bag kulisserne
der hjælper controllere at administrere alle denne tilstand
der kommer ind i ansøgningen.
Så hjem controller, vi sagde ville det hedde show hej.
Og vi vil bare - i stedet for at returnere en visning,
vi bare returnere hej verden.
Åh, goddag - åh, jeg kopierede det.
Hej controller.
Så hej verden.
Så det er bare en rigtig, virkelig simpelt eksempel
af hvordan du kan oprette controllere.