>> [Predvaja glasba]
>> ERIC Ouyang: Hej, vsi.
Dobrodošli.
Gre Building Dynamic Web Apps s Laravel.
Moje ime je Eric Ouyang.
Sem letniku študirajo družbene študije s sekundarne na področju računalništva,
in jaz živim v Adams Hiša tukaj na Harvardu.
>> Torej Laravel, na najbolj jedro, je okvir web app MVC.
Torej je všeč, kar imate vi počeli z CS50 finance,
Laravel je okvir, ki omogoča ste za izgradnjo dinamičnih spletnih aplikacij.
Tako da lahko o njej mislijo v nekaterih pomenih kot nadaljevanje vrste stvari
ste delali v CS50 Finance, ampak sistem, ki je
Veliko bolj robusten, veliko bolj elegantno v nekaterih pomenih,
in zagotavlja veliko funkcionalnost za vas
zgraditi precej zapletena spletne aplikacije.
Torej, gremo skozi nekaj od ključnih elementov,
in potem se bomo potopili Primer gradnje blog
aplikacija z Laravel.
>> Torej, ena od prvih stvari, ki jih ga loči od MVC vrsto dela
da ste delali z CS50 je vključuje ORM motor.
Torej ORM stoji za objekt relacijska preslikava.
Torej, to vam omogoča, da gradijo plast odvzem
Med baze in vaše krmilniki.
Torej, za razliko od CS50 finance, kjer je ste neposredno poizvedujejo,
ORM plasti vam omogoča, da abstraktna, da stran in ustvariti
Modeli, ki so močnejši od lahko neposredno z SQL poizvedb.
>> Druga stvar, ki je res koristno je Dedne predloge.
Tako boste opazili v CS50 finance, boste na koncu reportaža veliko stvari,
kjer krajih si lahko potencialno ponovno uporabo stvari, niste mogli.
Torej, tukaj v Laravel, lahko uporabite tisto, kar je znan kot predlogo motor rezila
da ustvarite postavitev mojster.
In od tam, lahko podedujejo tako da sub-Predloge lahko dejansko
vključujejo elemente v da večji osnovno predlogo.
>> Migracije.
Torej, to je dokaj standardna oprema večina sodobnih okviri spletne aplikacije.
Torej, to vam omogoča, da zastopa Podatkovna baza shem spremembe v kodi.
Torej, ne reči, phpMyAdmin, lahko dejansko ustvarijo te selitve
kjer si predstavljajo baze podatkov Shema spreminja v kodo neposredno.
In to vam omogoča, to-- posebej če imate več ljudi, ki delajo
na isti spletni application-- sledenje teh sprememb,
pravijo v GitHub, ali kakšno drugo odlagališče.
>> Torej, to je res koristno in zmanjšuje potrebo
da, recimo, mimo okoli veliko SQL odlagališč.
In končno, Skladatelj je nekaj zares uporabno
ki vam omogoča, da uporabljate drugo Koda ljudska narediti super stvari.
Torej Laravel je strukturirana kot več skladatelj paketov.
Tako pravijo, če si hotel, da bi v paketu za preverjanje pristnosti
ali če bi želel, da bi v nekaterih nekako skript generatorja ali admin
vmesnik, lahko plug and play ti deli s skladateljem.
>> Torej začnimo.
Vsa vprašanja od vas Fantje Preden začnemo?
Brez vprašanj!
Cool.
Torej je prvi korak namestitvijo Skladatelj.
Torej Skladatelj vam omogoča, da upravljati te odvisnosti,
ali je to okvir Laravel ali kakšno drugo podaljšanje tretja oseba.
Prvi ukaz omogoča da si naložite Skladatelj,
in drugi ukaz vam omogoča, da premakniti v krajevni mapi bin
tako da lahko vodijo Skladatelj neposredno preko terminala.
>> Po tem, pojdi naprej in ustvariti nov projekt Laravel.
Mi smo dejansko dogaja, da uporabite nekaj primer kode
da sem dal skupaj ustvariti ta blog.
Ampak, če ste na začetku praske, uporabite ta ukaz
tu gor, skladatelj ustvarjanje-projekt, laravel poševnica laravel, in nato
Ime vašega projekta.
In da bodo vključevali Vse kode za distribucijo
za začetek novega projekta Laravel.
Tako za vaše CS50 končnih projektov, boste Verjetno želite uporabiti ta ukaz.
>> Ampak bomo začeli s tem.
Torej, ko ste storili da boste dobili
Dokaj veliko število datotek v blog50.
Torej, kaj je samo iti skozi nekatere od teh komponent.
Opazili boste, na tej poti imenik, obstaja mapa app.
V mapi aplikacije, tam je Nekaj ​​koristnih mape.
Opombe, da začnete z je to config mapo.
Torej, to določa, kako vaša spletna aplikacija
dogaja, da, recimo, overjanje ljudi ali denarni stvari ali povezavo z bazo podatkov.
>> In kaj je res koristno je, da Laravel
vam omogoča, da vzpostavi drugačen razvojna okolja.
Torej, kaj smo tukaj storiti, je, če je gremo pod lokalno mapo,
tam je database.php datoteke.
In opazili boste, da smo tukaj, vzpostaviti MySQL povezavo,
posameznikom omogoča, da povežete na MySQL strežnik, ki je
neposredno na CS50 aparata.
In smo povezali z bazo podatkov da nastavim imenuje Blog50.
>> Torej, kaj je dejansko šel naprej in zaženite delovno različico tega,
samo da bi dobili občutek, kaj aplikacija, ki smo gradnjo
izgleda.
Torej imam kopijo To Blog50 končana.
Torej Laravel dejansko je zgrajen na strežniku
da lahko zaženete neposredno v ukazni vrstici.
Torej je to podobno PSet prej, ko ti dejansko
graditi svoj strežnik v C. Tako so eno zgrajena tako
da lahko vaše Laravel aplikacije neposredno v ukazni vrstici.
>> Torej, če naredimo php Artisan služijo, to bo predstavila razvojni strežnik
na vratih 8000.
Torej, če gremo na krajevnem gostitelju 8000, boste opazili, da se, hej.
Imamo blog in teče.
Torej Laravel tu ustvarja prednja stran našega bloga.
Zelo enostavna uporaba.
Ampak tam je par Res Izvanredan funkcije
da zagotavlja pod pokrovom.
>> Torej blog aplikacija je enostavna.
Če bomo želeli ustvariti delovno mesto, lahko kliknete na ta gumb.
Lahko rečemo, "Hej, vsi.
To je res zabavno seminar, "za primer.
In napisati nekaj tu spodaj.
Text tukaj.
Če bomo kliknite Submit, boste opazili, da je naš novi blog
objava je bila dodana prednja stran blog.
Če gremo nazaj, boste opazili, da tam so bili že nekaj pripomb
na blogu.
Torej, če smo se pomaknite navzdol, boste opazili, da Jonathan Tan pravi
da je bil zelo pritegnila ta post.
>> Torej bomo šli v to, kako objekt relacijska preslikava omogoča
da narediš teh odnosov v dokaj brezhibno način, kot dobro.
Cool.
Vsa vprašanja o funkcionalnosti kaj bomo graditi?
Cool.
Torej začnimo ven z dejansko ustvarjanje tabel zbirke podatkov.
>> Tako opozarjajo, da v CS50 finance, vas skupaj tabelo za uporabnike
kot tudi za Zaloge v vašem portfelju.
Torej, kot smo že omenili, kaj jih uporabljamo v Laravel
je nekaj, kar je znano kot migracij.
Torej, če se vrnemo k distribucija kodo tukaj,
prvi ukaz, ki je koristno, da vam Laravel zagotavlja
je ta ukaz seliti.
Torej ne moremo storiti php obrtnik seliti: da.
Torej, to nam omogoča, da ustvarite migracije.
>> In potem bomo želeli ustvariti migracije
imenovano create_posts_table, ki bo
biti tam, kjer se bomo biti shranjevanje naše blog delovnih mest.
In opazili boste, da tukaj teče skozi neko kodo, ki je dejansko
ustvari datoteko s časovni žig na njej.
Torej, če gremo pogledat Database, bomo opazili pod migracije
ki je ustvaril prazno datoteko za nas, ki
ima boiler kodo z imenom da je določeno, ustvarjanje sporočil mizo.
>> In ima dve funkciji v njem.
Up je tisto, kar smo želeli teči, ko migracije se uporablja za baze.
In dol, kaj bomo storili če hočemo, da se obrne na migracije.
Torej, tukaj začnimo ven pri pisanju te migracije.
Tako da je koristno, razred v Laravel imenuje shema.
>> Torej bomo teči Schema :: ustvariti.
In bomo ustvarili tabela se imenuje prispevke.
In tu se ta s pomočjo funkcije.
In v tukaj, ti bomo dejansko opredeliti vsebino naše mize.
Bomo ustvarili ID, ki je auto-povečevanje.
>> Poleg tega bomo ustvariti polje,
predstavlja naziv naše blog post.
Mi smo se tudi dogaja, da se ustvari polje za shranjevanje besedila naše blog post.
In končno, si bomo za shranjevanje nekaj časovne žige
za takrat, ko je bila ustanovljena naša objava in ko je bila posodobljena.
In dol, to je dokaj preprost.
Vse, kar želite storiti, je padec tabela, ki smo jih ustvarili.
>> Super.
Vsa vprašanja?
Torej, zdaj, če gremo naprej in-- pravzaprav, lokalni gostitelj,
Naj izbrisati, kar smo imeli prej.
Pojdi na podatkovnih baz.
Bom izbrisati, kar smo imeli prej.
Spusti to in ustvarjanje nova baza Blog50.
Torej, kaj zdaj čarobno del je tukaj, da smo
lahko te selitve neposredno uporablja z bazo podatkov s pomočjo ukazno vrstico
orodje.
Torej, če naredimo php obrtnik se selijo, boste opazili, da se, hej.
To je ustvaril tabelo migracije, kar bomo si oglejte v bit,
in to je uporabljena ta prvi migracije.
>> Torej gledamo Blog50, boste opazili, ki je ustvaril dve tabeli za nas.
Prvi je ta migracije mizo.
Torej, če bomo to brskanje, boste opazili, da ta tabela je dokaj enostavna.
To je samo rekel, da, hej.
Mi smo se uporablja ta prehod.
Gremo nazaj in pogled na delovnih mestih.
Opazili boste, da je struktura je točno to, kar smo ga vprašal.
Imamo avto-povečevanje ID.
Imamo niz za shranjevanje naslov in besedilno polje
za shranjevanje vsebine.
Super.
Cool.
Vsa vprašanja o migracijah delo, kako smo jih lahko uporablja?
Ne?
Cool.
Torej, zdaj bomo šli naprej in dejansko ustvariti model.
Zato želimo ustvariti model sporočil, da shranjuje odvzem baze.
Torej, namesto da delaš MySQL poizvedb neposredno, bomo ustvarili.
Zato moramo ustvariti Mapa tukaj imenovanih modelov.
In v notranjosti tu, si bomo ustvariti datoteko z imenom post.php.
>> Znotraj tega PHP datoteke, bomo ustvarili
razred po kateri se razteza zgovoren.
Zgovoren je ime ORM motor, ki zagotavlja Laravel.
In tukaj, lahko pričakujemo, da boste dejansko morali napisati nekaj kode.
Bomo napisali nekaj helper funkcije kasneje.
Toda iz škatle, bo to že prepoznati, kaj je v zbirki
in mi lahko dostopate, pravijo, besedilo naše blog post ali naziva,
in ustvarjajo stvari neposredno z precej nobena koda whatsoever.
>> Torej, to je ena izmed magičnih delov.
In veter, ko ta razred je bolj enakopravni,
bomo vsebovati podatke o tem, kaj to je povezano s tem, da pripomb.
Ustvariti tudi funkcijo tako da bomo lahko dejansko
neposredno dobili URL od blog post strani a.
Cool.
Vsa vprašanja glede tega?
No.
Cool.
>> Sedaj, ko imamo naš model smo želite ustvariti krmilnik, ki je
možnost povezave z vmesnikom s temi modeli, in nato baze podatkov.
Torej, če vzamemo poglej BlogController, boste
opazili, da tam ni mnogo tukaj.
Vse, kar je, je funkcija indeks ki ustvarja domačo stran,
vendar brez vsega tam še ni prikazal.
>> Torej prvo funkcijo da bomo ustvarili
je tista, ki nam omogoča, ustvariti blog post.
Torej bomo razglasi Nova funkcija imenuje newPost.
In v notranjosti tu preprosto, si bomo da nastavite postavitev te strani
da bi postal različico če se spomnite iz CS50,
to predlogo imenovanega blog.new, ki bomo ustvarili v malo.
>> Opazili boste, tukaj na vrstnim šestvaljnikom, ki smo opredelili to spremenljivko, postavitev.
In če pogledamo na mapi Pogledi,
je postavitve mapa, ki vključuje zelo osnovno datoteko HTML.
In note, ki jo boste opazili da smo ta vsebnik
tukaj, da daje vsebino.
Tako znotraj naše predloge kaj bomo storili
je ustvariti, kaj se dogaja, da se nadomesti neposredno v tej postavitvi.
>> Zato smo rekli, da želimo, da postane Predloga imenuje blog.new.
Vendar znotraj Blog, tam je še to novo predlogo.
Tako bomo ustvarili Datoteka se imenuje new.blade.php.
To pove, da Laravel Ta PHP file naj
je treba narediti z Rezilo predlogo motor.
Torej, to je precej enostavna datoteka.
To se dogaja, da je obrazec, s katerim smo dejansko dodali v blog post.
>> Tako čarobno tukaj od dedovanje je, hej.
Želimo, da se določi, da oddelek, oddelek vsebina
tukaj, ki je označeno ssection instop.
Torej, kaj je vmes tu se dogaja, da nadomestiti v postavitev mojster.
In tukaj je tisto, kar smo želeli storiti, je zelo preprosto ustvariti novo datoteko HTML.
Naj samo dodamo hiter naslov.
Dodaj blog post.
In v tem, da smo dogaja, da ustvarite obrazec.
>> Ta oblika se dogaja, da imajo tožbo.
In to se dogaja, da je nekaj da nadomestimo kasneje,
in bomo videli, kako Usmerjanje prilega tukaj.
Vendar smo šele tekoč, da za zdaj da to gre na URL s poti
od createPost.
In potem se to dogaja imeti metodo post.
V tu, gremo da imajo dve polji.
Razred div = "oblika skupine".
>> Mi smo s pomočjo knjižnice Bootstrap CSS milostno, ki jih Twitter.
Tako bomo ustvarili dva takšna.
Torej, ta prvi vnos je bo naslov.
Torej input name = "title".
Class = "formcontrol".
Type = "text".
Bom dodati ogrado = "naslov".
>> In potem drugi je bo besedilo območje.
Name = "vsebine".
Class = "formcontrol".
In ograda = "Napiši tukaj".
Tam gremo.
Končno bomo dodaj hitro predloži gumb.
Type = "submit" class = "btn btn-primarni".
To so vsi značilnosti Bootstrap tako
da je to mogoče določiti na način, ki je
plen za uporabnika, namesto goli HTML.
>> Tako smo definirali krmilnik tukaj.
Mi smo definirana zelo preprost pogled.
Ampak kaj manjka, je vezivno tkivo.
Tako da na tej točki, Laravel nima pojma, kako
bomo dejansko Za dostop do te krmilnik.
Torej je to določeno v Datoteka se imenuje routes.php.
In zdaj imamo eno pot.
Ki je, ko gremo domov pot za to spletno stran,
to se dogaja, da postane Indeks krmilnik.
Torej, tukaj, kaj moramo storiti, je izvajati nova pot za nas, da ustvarite delovno mesto.
>> Zato smo uporabili to metodo dobili, ki določa
da ko uporabnik poskuša dobil to page-- posebej
po poševnica novo page-- kaj bomo storili
se uporabi krmilnik imenovano BlogController nova objava.
Tisti, ki smo ga pravkar ustvarili.
In potem gremo da ga alias kot newPost.
Bomo ustvarili drugo Funkcija v malo.
Ampak kaj je tukaj pod ključ ", kot je" kaj
moremo nadomestiti v naši Blade predloge.
Torej za zdaj, kaj je dejansko tudi pravi poti.
Zato smo tudi dogaja, ustvariti krmilnik
tako da bomo lahko ustvarili te objave.
Torej, če uporabnik objav na stran pošti poševnica novo, kaj bomo storili
se uporablja krmilnik, ki bomo ustvarili kmalu
imenovano BlogController na createPost.
In bomo alias to s čim createPost.
Cool.
>> Vsa vprašanja?
Cool.
Torej, kaj je teči, kar imamo sedaj.
Torej, če naredimo php Artisan služijo, bomo videli veliko napak.
Torej izgleda, da imamo skladenjska napaka na progah linijo 27.
Ah.
Manjka podpičje.
Torej, če gremo v 8000, boste videli, nič ni tu.
Tako da je to domača stran privzeto.
>> Ampak, če gremo na objavili drastično novega, hej.
To bo obrazec, ki smo ga pravkar ustvarili.
Zdaj imamo ne implementirali funkcionalnost
kdaj bomo pritisnite gumb Pošlji.
Torej, če kliknemo na Submit gumb, se dogaja, da teče napako.
Vendar bomo kodo, ki zdaj, točno to, kar smo
želeli storiti, ko uporabnik navaja ta obrazec.
>> Torej, kaj je naredil.
Vrnite se v datoteko krmilnikov.
Kaj bomo storili, je izvajati to novo funkcijo
ki nam omogoča, da ustvarite delovno mesto.
Razglasi novo funkcijo.
Javna createPost funkcijo.
In to funkcijo se bo malo bolj zapletena kot tisto,
smo imeli prej.
Vendar pa boste videli, da tukaj nismo bo dejansko napišite SQL.
ORM, zgovorna ORM, se dogaja, da se omogoči
nam, da to storite v nekaj načinov bolj eleganten način.
>> Tako bomo ustvarili novo delovno mesto.
In tukaj smo instantiating nov predmet
od modela, ki smo ga pravkar ustvaril model postojanka.
In kaj bomo storiti, je nastaviti Atribut naslov tega uporablja nekaj
da bomo dobili od strežnika.
Torej, to je podobno, kar smo imeli prej v CS50 finance
če bi mi, s pomočjo Super Globalno Post išče naslov.
>> Torej Laravel zagotavlja nekaj sanitarij in malenkosti uporabo te funkcije pomožnega.
Zato bi raje, da to namesto nje uporabljati te zelo osnovni surovi obliki od PHP.
In potem, kaj bomo storiti, je nastaviti vsebina to, da vhod dobili vsebine.
Mi smo dejansko dogaja za zavijanje to koristen funkcijo
da PHP zagotavlja imenuje nl2br, ki Izkazalo nove linije, NLS pa sestavni uredb, odmorov,
tako da bomo lahko dejansko imajo različni odstavki v njem.
In končno, kaj bomo storiti je, da shranite to delovno mesto.
Tako pravimo funkcija shranite na tem modelu.
Bomo rešiti mesto.
In končno, kaj bomo storili se preusmeri uporabniku posebej
na poti, ki smo jo boš ustvariti kmalu, vzdevek, ki ga viewPost.
In bomo, da prenese v argumentov id, pri čemer id tega novega delovnega mesta.
>> Super.
Torej, zdaj, če bi dejansko šel in vodijo to.
Bomo dodali novo delovno mesto.
Recimo, da je to seminar 50.
In pravijo, seveda.
ASDL.
Karkoli.
Neke vrste vsebine.
In ga predložiti.
In bomo opazili, da se, hej. poti ni opredeljen.
Če pa si oglejte phpMyAdmin in poglej za to, ali bo naše delovanje
storil ničesar.
Poglej Blog50 mest.
Bomo opazili, da se, hej.
V resnici nismo samo ustvariti ta blog objavili pri časovnih žigov, kot je določeno.
>> Torej, zdaj gremo nazaj in dejansko ustvarjajo ta druga funkcija v našem upravljavca,
posebej krmilnik viewPost.
Torej javno funkcijo viewPost.
Torej, tukaj, kaj bomo storili, namesto imajo praznih oklepajev,
bomo želeli prenesti v ID objava, da smo ustvarili.
In od tu, kaj bomo storili je dejansko zbirko podatkov za to.
>> Torej, če ne bomo objavili, tam je funkcija imenuje
Ugotovijo, ki nam omogoča, da se pozanima po ID.
Natančneje, v resnici, bomo uporabo alternativnih različico tega imenovano
Najti ali okvari, ki nam omogoča, za izhod iz te funkcije,
vrže izjemo, če ID peljemo v ne obstaja.
In potem bomo nekaj storiti podoben temu, kar smo storili že prej
kjer smo določili vsebnost ta stran je
izdana različica te nov pogled kar bomo ustvarili, blog.view.
>> In bomo prehaja v it-- rad v CS50 postanejo
function-- slovar spremenljivk.
Tipke tega asociativno paleto postanejo spremenljivke v predlogo.
Zato bomo storili naknadno objavo.
Torej mimo posredno delovno mesto, ki smo poizveduje iz baze podatkov. .
Zdaj, kaj bomo storiti, je ustvariti ta pogled
tako da bomo lahko dejansko ogled blog objav, ki smo jih zgradili.
>> Tako bomo ustvarili Datoteka se imenuje view.blade.php.
Tako znotraj te predloge, kaj bomo storili
je skupaj preprosta stran, nam omogoča prikaz vsebine.
Torej storimo poglavje, ki je pred vsebino.
Stop.
In kaj bomo storiti v tu
napišem nekaj HTML za prikaz te strani.
>> Torej bomo ga ovijte z fancy novi HTML5 element imenovan člen.
In tu, si bomo da imajo v glavi, kjer
bomo morali preprosto H1, ki vključuje naslov naknadno.
Torej, tukaj, če se ozremo na to dvojno kodrasti brace zapis,
To bo naredil v bistvu PHP echo Naslov sporočila.
Tako da je koristno, okrajšava da Laravel nam ponuja.
Torej bomo uporabili Ta zapis namesto tega.
>> In tukaj, da bomo tudi izpisal vsebino tega.
In tu, si bomo storiti naknadno vsebino.
In dol na dnu, kaj smo tekoč storiti, je ustvariti nogo.
In v nogo, si bomo Prvi zaslon, ko je bil ta objavljen.
Torej je to objavil na, ustvarjena na.
>> In Laravel uporablja res lepo Datum knjižnica imenuje Carbon.
Tako da bomo lahko dejansko narediti nekaj, kar ti difforHumans, kar ste videli prej.
Ko bomo objavili. to bom rekel, kot pred petimi sekundami.
Torej, to je res lepo Funkcionalnost Laravel.
In končno, si bomo zapreti to nogo.
>> Torej, zdaj, če gremo nazaj Home Page gremo
da vidim ničesar tu še, ker mi niso kodirani domačo stran.
Ampak, če gremo na objavili slash eno, bomo videli izjemo.
Ali kdo ve, zakaj vidimo izjemo?
Kaj nam manjka?
Vse ideje?
Torej, kaj smo naredili prej za nas dejansko
opredeliti, kako bomo prišli do posebni krmilniki?
>> SPEAKER 1: pot?
ERIC Ouyang: Ja.
Torej, imamo še vedno opredeliti pot.
Torej gremo nazaj na routes.php.
Opazili boste, da bomo dejansko ni opredeljen
kako bomo dobili s to napravo.
Zdaj bomo definirati to pot.
To je precej enostavno, podoben temu, kar smo storili že prej.
Toda kaj bomo tu opazili, je da bomo imeli ogrado.
>> Torej, če naredimo route.get poševnica poštno ID.
Torej ID zdaj je, kaj se dogaja, da se prenese v krmilnik.
To se dogaja, da uporabite krmilnik, ki smo ga pravkar
ustvarjena, BlogController na viewPost.
In bomo alias to kot viewPost.
Super.
Sedaj bomo ustvarili to pot.
>> Torej, zdaj, če gremo tukaj in osvežite to stran,
smo v resnici pa imamo nov blog post.
Torej, to je tisto, kar smo ustvarili prej.
Zelo preprosta stran, vendar zasloni blog post, ki smo ga pravkar ustvarili.
Cool.
In če bi dejansko šel skozi celotno Proces ustvarjanja novega blog post,
bomo opazili, da je vse ustrezno preusmeri.
Če rečem, "Hi.
Jaz sem Jonathan Tan. "
Rekel: "To je moj blog post."
In ga predloži, bo to povzročilo ta nov blog post z ID 2,
ki korakih od tistega, kar smo imeli prej in pravilno ga prikaže.
Super.
>> Vsa vprašanja?
Ja?
>> SPEAKER 2: Ali Laravel ročaj sanitization in vse, kar je za vas?
ERIC Ouyang: Da.
Torej, ko smo videli že prej, ko smo naredili vhod colon colon dobili,
da sanitates kakršenkoli SQL injekcije in malenkosti
da bi želimo izvesti, če smo zlonamerni uporabnik spletne strani.
Torej Laravel ročaji veliko od tega v ozadju.
Dobro vprašanje.
>> Torej, kaj je si oglejte na domači strani.
Torej, če smo najprej iti nazaj Krmilnik za spletno stran,
boste opazili, da ji ne naredi veliko tukaj.
Opazili boste, da smo ne poteka v to napravo
kaj še posebej koristna.
To je samo ta indeks datoteko.
>> Tako da je prehod v To je nekaj koristno.
In še posebej, da smo dogaja, da prenese na delovnih mestih.
In Laravel nam omogoča, storiti objavo vsem, ki
nam bo omogočilo, da bi dobili vse prispevke.
Zdaj, če gremo nazaj index.php, boste videli, hej.
Tukaj še nič.
Ampak, kaj hočemo storiti tukaj je pravzaprav Ponovil skozi,
narediti foreach zanke nad delovnih mest, nam omogoča, da natisnete objave.
>> Torej foreach sporočil kot objava, kaj želimo narediti
se izpisal vsebino od blog post.
Ampak ena stvar, ki jo boste opazili, je, da smo dejansko napisal večino tega zakonika
že v view.blade.php.
Torej, kaj bomo dejansko storiti, je uporabite lepo koristno funkcijo Blade
in faktor ta skupni kodeks.
Torej, gremo tukaj.
>> Bomo, da to vsebino tukaj, in kaj bomo storili
je, da ustvarite novo mapo.
Dajmo ga samo pokliči Partials.
In tu, si bomo ustvariti post.blade.php.
Torej, tukaj smo vključeno ven način ki jih želite prikazati te objave.
In tukaj je, kaj bomo storili, namesto dejansko imajo direktno to HTML,
bomo uporabili to direktivo imenovano vključujejo blog.partials.post.
>> In kaj bomo storili tukaj se prenese v mesto na strani.
Torej, zdaj, če gremo nazaj, bomo opazili, da je funkcionalnost vedno
enako.
Zdaj pa imamo to vključeno ven kodo, to HTML.
Tako da ga lahko uporabljamo v indeksu.
Torej tukaj, to je zelo enostavno.
Vse mi je vključiti blog.partials.post in matrika.
In nekje na preden smo storili naknadno objavo.
>> Torej, zdaj, če gremo nazaj domača stran, bomo videli, da je, hej.
Imamo seznam vseh blog objav, ki smo jih imeli prej.
Mi bi želeli dodati nekaj "če" Pogoji in "ostalo" pogoji
tako da če nimamo kaj na blog,
želimo prikazati nekaj koristnega.
Všeč mi je, hej.
Ni vsebine še na blogu.
In če vi dejansko poglej distribucija koda na GitHub,
boste videli zgled, kako bomo to naredili.
>> Cool.
Vsa vprašanja?
Da.
>> SPEAKER 2: Mislim, da samo temeljno vprašanje.
Nazaj na progi.
ERIC Ouyang: Ja.
Če pogledamo na poti.
>> SPEAKER 2: Kje uses.blogcontroller na ustvarjanje delovnih mestih,
Kaj nam usmerite?
ERIC Ouyang: Ja.
Ja.
>> SPEAKER 2: Ali kaj je that--
ERIC Ouyang: Torej, poglej, pravijo na primer, to pot tukaj.
Prvi del je dejanska URL, ki bo uporabniku iti.
In ta niz tukaj asociativni niz, opredeljuje
kako želimo imeti aplikacija deluje v odgovor nanj.
Tako uporablja, je upravljavec, funkcijo, da smo
želite poklicati, ko uporabnik gre na ta URL.
Torej viewPost tukaj je funkcija, ki mi je opredeljeno v notranjosti
od BlogController--
>> SPEAKER 2: vidim.
>> ERIC Ouyang: --so, da smo lahko dejansko postanejo pogled,
izvesti nekaj izračunov, interakcijo z bazo podatkov SQL.
>> SPEAKER 2: OK.
>> ERIC Ouyang: In potem drugi del, "kot je" alias, ki ga uporabljamo.
Torej, če smo opazili, ko smo ustvarili obliko,
Opazili boste, da URL :: routecreatePost.
Tako da nadomešča v dejanski URL tako, da smo ni težko
kodiranja ti v tako bomo lahko spremenili enkrat, pravijo, če bi želeli preimenovati.
Namesto, da bi po poševnico Novi, želimo všeč, str
poševnica novo samo za čiščenje do naših URL-bitne.
Radi bi spremenili na enem mestu, ne od vseh različnih datotek.
>> Cool.
To je dobro.
Torej, zdaj imamo zelo osnovni blog platformo.
Verjetno želimo dodati na gumb, da da bomo lahko dejansko ustvarijo nova delovna mesta.
Torej, če pogledamo na Master Layout,
imamo oddelek z naslovom Glava Right da smo že opredelili na vrhu.
Tako bomo lahko dodali gumbe za na vrh glave.
>> Torej, če gremo na index.blade.php, dejansko storiti, je opredeliti, kaj se dogaja v notranjosti tukaj.
Tako da je ta odsek Glava desno, kaj bomo storili
se doda na gumb, da gredo URL opredeljena s poti novo delovno mesto.
Samo, da ga počisti in se je lepa in vse Bootstrap,
bomo, da bi to default.
Recimo samo, da bi bilo veliko zabave.
>> In znotraj njega, bi lahko dal nekaj besedila.
Toda kaj Bootstrap zagotavlja, je glyphicons.
Tako da bomo lahko dejansko dodali, da lepo svinčnik, da smo videli že prej.
Glyphicon.
Glyphicon svinčnikov.
Torej bo to nam omogoča, da dajo v ikoni namesto besedila.
Zdaj če ne bomo prenehali, to bo opredelil ta odsek.
In, hej.
Imamo lepo gumb, ki nas povezuje neposredno dodati blog post stran.
>> Tako da imamo dokaj preprost blog.
Mi lahko dodate stvari z njim.
Ampak tisto, kar smo na splošno pričakujejo od blogov je komentiral.
Torej, to je res pomembno, da imajo povedati, če nekdo obišče spletno stran
in res všeč post, lahko sodelujejo v razpravi
z drugimi ljudmi, ki obiščejo stran.
Tako smo šli in ustvarjanje Nova tabela podatkovne zbirke in nov model
tako da bomo lahko povezali Komentarji z delovnih mest.
>> Torej je prvi korak, tako kot prej, je, da moramo teči migracije.
Tako kot prej, delamo php obrtnik seliti: da.
In bomo ustvarili enega imenovano create_comments_table.
To bo ustvarilo datoteko da ima naš novi migracije.
In da bomo, tako kot Pred določite novo tabelo.
Torej Schema :: ustvariti Tabela imenuje pripomb.
Ta funkcija tukaj.
In znotraj te tabele, kaj bomo storiti najprej,
kot prej, dodeliti ID.
Korakih ID.
>> Bomo omogočajo uporabnikom, da povežete njihovo ime s posebnim komentarjem.
Da bomo imeli nekaj vsebine, da gre skupaj s tem, vsebino besedila.
In tukaj je tisto, kar bomo storiti, je nekaj drugega.
Bomo ustvarili celo ki se imenuje post_id ki
se dogaja, da se označi kakšno delovno mesto Zlasti komentar gre z.
>> Poleg tega, da smo dejansko dogaja, da nastaviti tujega ključa pritisk na to.
Tako da bo MySQL uveljaviti to.
Mi ne poskuša dodelite številko komentar
5. Da bi objavili 5000, če imamo ne je imela 5.000 objav na njej.
Torej, kaj delamo tukaj, delamo tuje post_id
se bo povezan z Polje ID od namiznih delovnih mest.
In bomo dejansko nekaj storiti sicer koristna, je onDelete.
>> Torej, če bomo izbrisati nekaj objavili iz baze podatkov,
da želimo, da se širijo izbriše za komentarje, kot dobro.
Ker to ni zelo koristno za nas, da imajo pripombe na delovna mesta,
da ne obstajajo.
In na koncu, tako kot pred tem, da smo dogaja, da določi časovne žige na to.
In tako kot prej, si bomo imajo povratne migracije
spustite tabelo komentarji.
>> Torej, zdaj, če gremo nazaj tu, gremo
teči ta prehod, obrtnik seliti.
In sedaj se je uporabljala to migracije, ki smo ga pravkar ustvarili.
Torej, če bomo pogled na phpMyAdmin, delamo, v resnici, zdaj
imajo tabelo komentarji, ki ima struktura, ki smo ga pravkar določeno.
Tako kot prej, smo dogaja, da ustvarite nov model
abstraktnemu SQL tabele da smo pravkar ustvarili.
>> Torej, kaj je Dodajte novo datoteko.
Bomo ga pokličete comment.php.
In to se dejansko dogaja, da je precej enostavna z majhno spremembo
od kar smo imeli prej.
Torej razred Komentar razširja zgovoren.
In kaj bomo storiti, tukaj je opredeliti
funkcija, ki je odnos z drugimi modeli.
Torej bomo imeli funkcijo pošto tukaj, da vrne ta odnos.
Tako da smo navedbo, da to spada v objavo,
pravijo, da je eno delovno mesto da je ta komentar pripada.
>> To dejansko mora biti kapital P za model.
In zdaj samo na drugi flip stran, moramo reči, da je, hej.
Prispevkov imeli pripomb.
Torej, kaj bomo storili, je opredeliti komentarje javnih funkcij.
In tu se je vrnil To ima veliko komentar.
Torej, zdaj čudežno ko imamo delovno mesto, bomo lahko dobili pripombe atributov
in to bom zapolnijo z informacije iz baze podatkov.
>> Torej, kaj je dejansko šel skozi in dodati novo funkcijo, ki po našem mnenju datoteko
tako da bomo lahko tako zaslon in ustvariti komentarje.
Torej bomo določili novo poglavje.
Dajmo samo ločevanje z vodoravno pravilo.
Oddelek id = "komentarji".
Kaj bomo storili Tu je, kot prej,
Ponovil skozi vse komentarje.
Torej, dejansko, kako to storiti, je, kot sem že omenil, precej čarobno.
>> Mi lahko komentiras.
In potem bomo lahko to za vsak narediti zanka nad vsako pripomb.
In kaj bomo storiti, je div class komentar,
in da bomo dejansko natisnite ta komentar.
Tako prikazati, da hej, pripombe name-- osebo
ki je objavil to comment-- pravi dot dot dot.
Bomo dal to v bloku citiram, samo, da bi bilo videti lepo.
In potem komentirati vsebine blok ponudbo.
In foreach.
Torej, zdaj se to dogaja, da zanke skozi vse komentarje
da je povezan z vsako od mest
in prikaz vsaka od teh pripomb.
Bom dodati še eno točko navzdol tu, ki nam omogoča, da dodate komentar.
Torej h3 razred.
Daj naslov tukaj.
Dodaj komentar.
In bomo določili novo obliko.
>> Tako kot prej, smo storila dejanje obliko.
In tu je nova tožba smo dogaja, da se opredeli nov krmilnik, ki
nam omogoča, da se odzove na objavo prošnje za pisanje komentarjev.
Torej createComment URL :: poti.
Grem, da prenese v parametru tukaj.
ID za delovno mesto, ki smo ustvariti pripombo.
In potem Uporaba tega Obrazec se bo objava.
>> Sedaj bomo dodali v dve področji, tvorita skupino.
To bo vhod s ime "ime" in class = "Obliko nadzor",
type = "besedilo", in s Ograda = "Vaše ime".
Mi smo se tudi dogaja, da se opredelijo druga oblika polje, ki
se bo besedilo Območje, kot smo imeli prej.
Tako kot prej, ga pokličete vsebine.
Class = "oblika-control".
Ograda = "Napiši tukaj."
>> In samo zato, da bomo lahko dejansko jo predloži,
predložiti vrsto in razred = "btn btn-primarni."
Zaprite obrazec.
Zaprite to tožbo.
Torej, zdaj, če bomo osvežite to stran, kjer imamo, recimo, posebno delovno mesto.
Moramo ponovno zagnati strežnika.
PHP obrtnik služijo.
Reboot to.
Moramo določiti pot.
Ampak za zdaj, kaj je prav, da se to ven, tako da bomo lahko dejansko vam pokažem
kaj stran izgleda, in nato bomo dejansko ustvarili to pot.
Torej, hej.
Imamo to novo obliko tukaj tako da bomo lahko ustvarili komentarje.
Torej, kaj je dejansko opredeliti Funkcija v krmilniku
tako da bomo lahko dodate komentarje.
Pojdimo nazaj.
In v blogcontroller.php, kaj bomo storili
je ustvariti novo funkcijo imenovano ustvarjanje komentar.
>> Javna createComment funkcijo.
To se dogaja, da imajo en sam parameter, ID delovnih mest
da smo komentiral.
In tako kot pred tem, da smo bo najprej dobiti delovno mesto.
Tako objavili, findOrfail id.
Zatem gremo ustvariti nov komentar.
Torej pripombe = nov komentar.
Komentar name = vhodna :: dobil ime.
Vsebnost komentar = isto nova linija v odmorih vhodnih :: dobiti vsebino.
>> In končno, si bomo morali povezujejo ta komentar z delovnega mesta.
Torej bomo uporabili ta funkcija, komentarji,
ki nam omogoča, da shranite ta odnos.
Torej, zdaj ta komentar bo imel samodejno po ID.
Mi lahko nastavite tudi ročno, vendar je to
bolj enostavno kot sedaj glasi kot funkcija gre.
In potem, ko smo opraviti to, kar želimo narediti
se preusmeri uporabnika na poti, ki jo viewPost
s paleto s parameter po ID.
>> In zdaj, tako da to dejansko funkcije, moramo opredeliti to pot.
Pot :: objava.
In zdaj bomo to imenujemo po slash slash ID komentar.
Matrika uporablja novo funkcijo da smo pravkar ustvarili.
BlogController.
CreateComment kot createComment.
Super.
>> Zdaj upam, da če bomo osvežite to stran in dodamo v komentarju, recimo, David Malan.
"Upam, da to deluje."
Predloži.
Mi, v resnici, ima komentar na ta blog post.
Cool.
Torej, zdaj imamo dokaj funkcionalna blog post.
Mi smo le, da bo dodamo nekaj poteg tako
da imamo nekaj več uporaben Informacije na teh delovnih mestih.
>> Torej, če se vrnemo k sprednja stran, smo nimajo občutka
koliko komentarji na vsakem od teh mest.
Torej, kaj smo dejansko dogaja storiti, je, znotraj našega modela,
definiramo funkcijo pomožnega ki omogoča nam, da določite število komentarjev
da gredo z določeno delovno mesto.
Tako bomo ustvarili Funkcija pomočnik.
>> Javno funkcijo.
GetNumCommentsStr.
Torej niz, ki določa število pripomb, ki gredo skupaj z njim.
In kaj bomo storili, je rekel, da num = računajo to pripomb.
Tako bomo za štetje Število pripomb.
In če je ta številka enaka 1, smo Pravkar se dogaja, da se vrnete 1 komentar.
In potem drugače, želimo, da se vrnete Združitev num in pripombe,
tako da smo dobili pluralizacijo pravilna.
Samo, da je to en sam citat.
En komentar.
>> In zdaj lahko uporabite to funkcijo direktno znotraj našega pogleda.
Torej, če se vrnemo k delnih sporočil, ki smo jih ustvarili,
Zdaj želimo dejansko prikazati število komentarjev.
Torej, kaj lahko storimo, je, objava, uporabite to funkcijo
da smo pravkar ustvarili za prikazati število komentarjev.
Torej, če smo zdaj osvežiti, jo ne, v resnici, izpis
oštevilčenimi komentarji da gredo skupaj z njim.
>> Če bi želeli biti fancy, če vas dejansko videti na kodo distribucije,
lahko dejansko povezati to pripomb.
Če se spomnite, smo določili v meni, da je to poglavje ID pripomb.
Torej, če bi dejansko želeli povezati neposredno na oddelku komentarji, kaj
mi bi naredil tukaj je href URL viewPost poti.
Potujejo v array ID po ID.
In potem smo želeli iti posebej odsek komentarjev.
>> Tu pa zaprite oznako.
Torej, zdaj, če bomo osvežite to stran, kliknemo na to.
Šli bomo neposredno oddelek komentarjev.
Če bomo imeli daljšo delovno mesto, lahko dejansko videli to bounce navzdol.
Vendar boste opazili, da je Ne na vrhu strani.
Cool.
Super.
Tako da je precej enostavno Primer nekaj preprostega
ki jih lahko storite s Laravel.
>> Vendar pa lahko opazimo, da je tukaj smo naredili veliko stvari
z dokaj majhno količino kode.
Laravel nam omogoča, da naredite SQL poizvedbe v ozadju.
To počne sanitarij za nas v zakulisju.
Omogoča nam, da naredite teh razmerij Zelo enostavno, brez nas potrebujejo
storiti vse SQL pridružiti izkaze združiti pripombe kaj delovnih mest.
Omogoča nam, da to storijo dedovanje predloge
tako da bomo lahko določite te gnezdenje datoteke, tako da nismo sami ponavljajo,
tako kot, ko smo imeli, da razkazovanje blog delovnih mest
da mi ne bi bilo treba kopirajte in prilepite kodo.
>> In od tu lahko gradijo bolj zapletene aplikacije.
Si lahko predstavljate, če smo želel izvajati log-in,
lahko bi rekli, bi v tretji osebi okvir, ki nam omogoča, da to storim.
Obstaja kup njih da so zares
super, da lahko narediš, kot so, geslo izterjave.
In bo to vam je poslati ponastavitev gesla e-pošte.
Mi lahko izvajajo dovoljenje tako da sem lahko ustvari delovno mesto,
ampak nekdo drug ne more urejati.
Mi lahko izvajajo Funkcionalnost izbrisati objave.
>> Vendar pa si lahko ogledate tukaj, da imamo precej veliko vse nepopolne sestavine
zgraditi nekaj res, res, dinamične in zanimive spletne aplikacije.
Torej, s tem, mislim, da smo dobri.
Ali vi imate vprašanja?
Ja?
>> SPEAKER 3: Kako si narediti dobili statično vsebino?
>> ERIC Ouyang: Statične vsebine.
Torej si videl pred tem, ko smo imeli Ta pravica je tu, ta vsebina postavitev,
Pogled make, smo imeli to brez tega paleto kasneje.
Blog.index, smo imeli to kot samo statično datoteko.
Torej, če ne bomo mimo vse skupaj z njim,
da bom postal HTML neposredno.
Ampak, če se peljemo v tem društvenim Niz delovnih mest, ki je dinamično
potegnil iz baze podatkov, smo lahko stran dinamično.
Cool.
Katera koli druga vprašanja?
SPEAKER 3: Kako bi primerjali Laravel da morda nekatere druge možnosti?
ERIC Ouyang: Seveda.
Ja.
Torej Laravel is-- da je super question--
ena od številnih možnosti za spletne okvire.
Torej Ruby na tirih, je tista, ki je priljubljen.
Verjamem Twitter nekoč izvaja z Ruby na tirih.
Mislim, da so od leta zamenjan.
Obstaja še ena imenovana FuelPHP.
>> Torej Ruby na tirih uporablja Ruby jezik in izvaja veliko o MVC stvari
da vidimo tukaj.
FuelPHP je druga PHP okvir.
Django je ena izmed mojih najljubših.
To je spletna okvir za Python.
Tako da boste lahko napisali svojo spletno aplikacijo v Python.
Tako da je ton od teh možnosti.
>> Laravel, mislim, da jih in Veliko je moja najljubša pravica
Zdaj za PHP samo zato, ker komponent
da smo se pogovarjali o prej.
To je Skladatelj omogočen.
Vsebuje zelo, zelo ekspresivna sistem ORM.
Ima tudi res super templating jezik, da nekateri od drugih
Samo ne zagotavljajo.
In migracije.
Migracije so super, kot dobro.
Cool?
Super.
No, hvala toliko za gledal ta seminar,
in srečno na vaših končnih projektov.