>> Du kanske kommer ihåg från sista gången som vi såg
Detta sista exempel på MVC,
en Model View Controller arkitektur,
och det ganska mycket kokt
ner för att organisera saker och ting lite mer rent
i kataloger.
Och om jag gör träd, vilket är bara ett kommando
som visar mig filsystemet så här, hade vi en trevlig
och snyggt mallar katalog, en offentlig katalog, och så vidare.
Och den allmänna idén var bara sätta
i den offentliga katalogen filerna som verkligen behöver
att vara offentlig, och allt annars bör välorganiserade.
Men effektivt, insidan av detta offentlig katalog vi hade alla
massa controllers, individuella styrenheter
som på något sätt krävs eller inkluderade andra filer.
Men vi verkligen inte få mycket fler funktioner än så,
och, i själva verket, typ av fick vi genomföra denna föreställning av åsikter,
eller mallar, oss själva, med extraktet funktion
och en gör-funktion som vi genomfört själva.
Och eftersom det är vi börja göra detta, börjar vi inse -
vi börjar att bygga upp en önskelistan, liksom, åh, wow,
Jag önskar att jag hade ett bibliotek för att skicka e-post.
Jag önskar att jag hade ett bibliotek för att skapa en databas.
Jag önskar att jag har bibliotek för dot dot dot.
Och det är därför dessa bibliotek existerar.
Det är därför som människor använder Django med Python,
eftersom det bara ger dig mer.
Det är därför som människor använder Skenor med Rubin
eftersom det bara ger dig mer.
Det är därför vi använder Laravel eftersom ovanpå PHP,
det bara ger dig mer.
Och bara för att lära dig, då, för ett ögonblick, jag ska gå
in i en v-värdkatalog
in i en exempelprogrammet använder Laravel.
Vid en första anblick, ärligt talat, det är förmodligen lite överväldigande
eftersom det finns så många filer, så många kataloger,
men det viktiga, och som vi får se efter en snabb paus,
är att bara fokusera på de mest nära förbunden saker
att få vissa arbete från början, och det kommer
att vara i apt katalogen.
Som du kommer att se och höra, där är fortfarande en massa mappar,
men de på att gå till vård om, i första hand, är detta.
Om jag öppnar upp rutt stopp PHP, meddelande som en teaser,
hur denna ansökan håller på att arbeta.
Detta är en reimplementation i Laravel
av super enkel dum kurs ansökan
som gav mig vecka noll, vecka en, föreläsningar, och PDF-filer.
Jag är helt enkelt kommer att - min skärm är lite avskurna,
igen - jag ska specificera följande,
att jag vill definiera en rutt med HTTP get för snedstreck,
och när en användare för den här applikations besök slash
på min hemsida, jag vill köra den anonyma bit av kod,
nämligen åter utsikt kolon make.
Så detta innebär att samtals a statisk metod inne
i en klass som kallas vy, och make gör en mall
som kallas index, och den passerar i en massa
av nyckelpar värde, i det här fallet, titel.
Under tiden, om användaren besök slash föreläsningar,
denna kod ska köras,
och föreläsningar mallen ska bli utförda.
Slutligen, om användaren besöker föreläsningar slash något,
där att något är, per botten här, ett nummer,
en eller flera decimaler,
då vill jag göra föreläsningarna mall,
passerar i titeln samt.
Så slutresultatet är att -
om jag verkligen dra upp detta applikation i min webbläsare,
slutresultatet - hoppsan.
Slutresultatet är exakt samma,
om än med något sexigare webbadresser nu.
Nu är det en föreläsning snedstreck 0 istället för vecka noll dot PHP.
Men, låt oss stanna här.
Låt oss ta en två minuters sönder, och när vi kommer tillbaka,
Tim kommer att komma på upp och presentera oss
till det inre arbetet av Laravel och den typ
funktionalitet är vi på väg att komma ur lådan.
>> Okej, så, nu är vi kommer att ta en djupare dyk
in Laravel PHP ramverket, som David nämns.
Så Laravel, det första vi ska börja går
till snabbstarts
och installera den via något som kallas Composer.
Så Composer är en pakethanteringssystem
för PHP liknar pärlor för Ruby eller Pit
för Python eller MPM för No JS.
Composer hjälper till att hantera alla olika beroenden
att Laravel beror på när - Sorts, under huven.
Den använder en hel del av symfonin,
annan PHP ramverkets inre arbetet.
Och så, vi ska att använda kommandoraden
att de ger oss här, Composer skapa projekt Laravel Laravel,
efter att vi har installerat Kompositör verktyget,
som jag redan har görs på - låt oss se.
Så jag använder CS 50 apparaten
eftersom detta har alla PHP-versioner och min SQL
och allt som vi behöver att börja springa.
Så jag ska gå vidare och dra upp terminalen här
och hoppa in i v-värd katalog, och jag ska
att klistra in den här - åh, jag kan inte göra det på det sättet.
Så jag ska till SSH till Linux instans
som jag kör i VMWare.
Och jag kommer att köra det här Composer skapar projekt Laravel,
och jag ska ändra ditt projektnamn
att bara exempel dot dev.
Och bakom kulisserna,
det tar en liten stund den första gången du ska
att göra det, men det är installera alla beroenden
att du kommer att behöver köra Laravel.
Så förhoppningsvis detta gör inte ta för lång tid.
Det bör bara ta en sekund.
Första gången du gör det, det kommer att ta några minuter,
förmodligen eftersom det behöver få allt.
Jag har allt cachade här.
Så nu när vi har exempelvis prick dev, vad vi kommer att behöva
att göra för att kunna få tillgång till denna
i vår Chrome är gå vidare och hoppa in på -
vi kommer till pseudo via Etsy hosts-filen.
Och vi kommer att gå vidare och lägga till en ny linje här med IP
av den 50 apparat, som här visas
i det nedre högra hörnet på skärmen, de 192 168 -
och detta kan vara olika beroende på din maskin,
så 192 168 69 128 [audio bryta] projekt exempel dot dev.
Okej. Spara det.
Så, nu, om vi går till exempel dot dev, ser vi det - låt oss se.
Åh, jag var i fel katalog, så låt mig gå vidare
och flytta exemplet punkt dev in i den v-host katalog.
Och nu om vi uppdaterar det, vi se till att det står förbjudet.
Du har inte tillgång till.
Så vi måste gå in i exempel dot dev
i V-värd, och vi måste chmod det till 0711, exemplet punkt dev,
liksom allmänheten - åh, Jag gjorde det fel båda gångerna.
Så exempel dot dev, som samt den offentliga katalogen
som är under den, så att den kan
att komma till index prick PHP.
Och nu, om vi uppdatera - oh, vi fortfarande har problem.
Så inne i exempel offentlig katalog,
Om vi ​​lista alla filer, även de dolda,
det finns en HD Access-fil, och detta används av Apache
att bidra till att avgöra, för denna specifik katalog,
där ansökningar ska dras.
Så detta måste också chmoded till 0644, och nu är du framme.
Så det var det snabb installation av Laravel via kommandoraden.
Så låt oss gå vidare, och jag ska att använda något som kallas Samba.
Om du inte är bekant med det, kan du - från Finder-menyn
går att gå och ansluta till server, och du kan gå vidare
och göra SMB kolon snedstreck snedstreck och IP-adressen
av Linux-instans som vi är körs i VMWare och gå vidare
och ansluta till servern så att du kan montera den
som filsystem och använda den
som om du var lokalt ansluten till den.
Så jag ska gå framåt och dra detta
in i en editor som heter sublim text.
Om du är obekant, det är en riktigt trevlig editor
som är tillgänglig redigera kodfiler.
Och så ska vi att ta en titt
på katalogen struktur för projektet.
Så det finns ett par olika mappar i den översta nivån.
Det finns app, som David har nämnt redan.
Det finns bootstrap, vilka är vissa filer som används internt
av Laravel att bootstrap alla beroenden, ladda dem alla i,
se till att alla av magi metoder kallas rätt
för att kunna [audio paus].
Det är den offentliga katalog, som är där alla
våra offentliga vända tillgångar, såsom index prick PHP
där förfrågningar dirigeras, bilder, CSS-filer, JavaScript,
något som behöver vara direkt tillgängliga
av världen lever i den offentliga katalogen.
Och då säljaren katalogen är alla tillgångar -
eller alla de [audio paus] under huven som gör mycket
av tunga lyft att Laravel beror på.
Så typiskt, i ett offentligt katalog, är denna typ
av vad du vill se, CSS, JavaScript,
dessa filer är inte där när du installerar ramverket,
men de är saker som du kommer förmodligen vill lägga
när du bygger ut dina program.
HD Access-fil som jag ovannämnda och index dot PHP,
som är den främre controller för -
där alla ansökningar gå igenom först.
Så inne i programmet mapp, dessa är -
det finns faktiskt ett par -
det finns faktiskt ett fåtal olika mappar här.
Det finns en hel del av dem, och som David nämnde,
Det kan vara överväldigande till en början, men du bara vill koncentrera
på dessa specifikt.
Så det finns vägar dot PHP, vilket är vad vi såg tidigare
för att visa att du kan skicka en specifik webbadress och HTP metod
till en viss antingen anonym funktion, som David använde,
eller en styrenhet, som Vi är på väg att gå över.
Det finns mappen CONFIG,
som är där du ställer in något programkonfigurationsfil
som du behöver, till exempel databasinställningar eller några API: er
som du kan ha att göra med.
Om du använder något att skicka mail
eller om du ansluter till Amazon för att lagra bilder,
skulle du ställa in alla sådana konfigurationer
i en central punkt i program så att -
slags konventioner som alla, eftersom de arbetar
på ett lag, behöver du inte att tänka på var det här.
Det är bara att du har en ange plats där det går.
Det skulle vara i CONFIG.
Controllers är placera i ansökan
där du normalt rutt förfrågningar.
Så styrenheten hanterar en mycket av programlogiken
och liksom plockar vad Displayen på skärmen kommer
att vara, åsikter, och sedan också snäckor
ut till de olika modellerna som innehåller de uppgifter
och vidarebefordra dem till den vy.
Så du slags - regulatorn är typ av avsändaren
för förfrågningar, du vet, vad du ska göra
med data - eller med - beroende på begäran,
vilka data som ska visas och var ska vi få det från.
Och åsikter är vanligtvis bara HTML,
kanske med hjälp av en schablon motor, som vi kommer att gå
över med Blade mall motor som Laravel levereras med.
Och sedan den andra kataloger för just nu, vi ska bara
för slags släta över och inte oroa sig för.
Men de inkluderar tester, så enhetstest fria applikationer,
filter, lagring.
Jag hålla på så här.
Okej, hoppa tillbaka hit.
Så det första att det kommer med är denna väg får
och det gör vyn gör hej.
Så om vi tittar på de synpunkter katalogen,
Vi ser att det är ett hej prick PHP,
och det är där det du har anlänt kommer ifrån.
Men vi kan också ändra detta till -
så kan vi ändra detta till hej, och nu, om vi försöker att gå
till en väg som inte är definierad vi får denna typ av stack brickor
till vad som gick fel med ansökan.
Men om vi går hugga hej,
det finns faktiskt en intern server felet.
Så det är en liten bit av magi som pågår bakom kulisserna
i CS 50 apparaten till se till att du kan
för att nämna alla dessa kataloger bekvämt.
Namnet på den - så exempel dot dev som vi gav.
Så vi har faktiskt ändra en sak
i HD tillgång filen.
Så vi kommer att gå vidare
och lägga till denna linje, skriva bas snedstreck.
Och att i princip är ett annat direktiv.
David, kan du prata mer med vad omskrivning basen gör.
>> Det korrigerar huvudsak mer vad servern tycker.
Det är tänkt att vara [Ohörbart] virtuell värd.
Så ange att ignorera det genom skriva bas slashadresser.
>> Right. Så, nu, snedstreck hej fungerar.
Så låt oss gå tillbaka hit.
Så tillsammans med att bara göra en anonym funktion som denna,
det finns - så här är bara en återblick
av MVC jag var bara diskuterar.
Den går in i linjerna och sedan skal ut de registeransvariga,
som behandlar modeller och åsikter och hur allt
som bör hanteras.
Så controllers sorts - bidra till att centralisera allt detta,
och du kan komma åt dem via vägar genom att säga väg få.
Så vi kan säga väg få hej,
och sedan regulatorn namn på och ett metodnamn.
Så låt oss gå vidare och ge det ett skott.
Så vi ska säga väg få hugga hej,
och vi ska göra en hej controller på utställning hej.
Så för att detta ska fungera,
Vi behöver lägga till en fil som heter hej controller prick PHP.
Jag ska gå vidare och - så det sträcker sig en bas styrenhet,
vilken Laravel redan fartyg med,
vilken sträcker sig en styrenhet, som är typ av under huven
och gör en hel del av grejer bakom kulisserna
som hjälper controllers att hantera allt detta tillstånd
som kommer in i ansökan.
Så hem controller, sa vi Det skulle namnges show hej.
Och vi ska bara - i stället för att returnera en vy,
vi ska bara tillbaka hej världen.
Åh, hej - åh, jag kopierade.
Hej controller.
Så hallå världen.
Så det är bara en riktigt, riktigt enkelt exempel
om hur du kan skapa controllers.