Doug LLOYD: Včasih ko smo programiranje počnemo stvari tako pogosto, da pogosto, in tako veliko ljudi storijo enako idea-- ali enaka stvar, ki ima ime. MVC je natanko ena taka stvar. To se imenuje programski paradigma. To je nekako kot najboljše prakse da so destilirana navzdol ga ljudje poskušajo nekaj storiti. V tem primeru se izvaja sistem straneh da uporabnik komunicira z na bolj kompleksne spletne strani. In je to storjeno tako pogosto, da to je priporočljivo kot standard da bi drugi ljudje radi sledijo, in tam je zelo poseben nabor načinov da je bilo mogoče slediti to paradigmo. Torej, MVC je paradigma, in razlog bomo uporabili, da je na abstraktne stran podrobnostmi od uporabnika. Nekatere stvari, ki jih uporabnik v resnici ne potrebujejo, da vidim. Oni samo želijo imeti dobra uporabniška izkušnja, in nam ni treba, da jih imajo dostop vsak eno datoteko, ki obstaja na našem spletnem strežniku, morda. Morda obstaja nekaj datotek, ki so prav uporabiti za okrepitev uporabniško izkušnjo, in tako smo lahko abstraktna tiste proč. Mi jih lahko nekako skriti tako uporabnik ne more delati z njimi, Toda naši pages-- našo pages-- vedo, kako ravnati z njimi in jih pokličete ali morda zahteva, njih, ali nekaj podobnega, ki hoče. Primarna motivacija za MVC je varnost podatkov, ker MVC ponavadi pride v kontekst delo z bazami podatkov. In zlasti mi radi prepreči uporabnikom od neposredno vplivajo baz podatkov. Mi samo želimo, da to storite posredno, preko našega filtracijo. Ali pazite, da je vse v redu s nam delaš malo preverjanje napak ali varnost neprepustnosti, preden smo ga poslati v bazo podatkov, kjer Stvari bi lahko šlo narobe, morda res narobe, če nismo previdni. Torej MVC kratica za Model View Controller. Kaj vsak od teh pomeni? V bistvu, model je vaša baza podatkov. To je, če vse pomembni podatki za vašo spletno stran lives-- uporabniška imena, prijave, gesla. In ga lahko posodobite, se nanašajo nanj, zal veliko vse, kar je, kot je ta. Ti bi se pozanima bazo podatkov, ki ste jo vprašam Podatki iz baze podatkov. To je model-- vse podatkov, če je vaša stran živi. Razgled je nekako kot uporabniška izkušnja. To strani vidijo po so zahtevane informacije. Mogoče jih predložijo njihova prijava information-- ki bi jih storili v krmilnik, ki bomo govorili o na sekundo. So morda predložijo svoje podatke za prijavo, in baza podatkov je zahtevan. Je zahtevala informacije in izvleči iz baze podatkov. In potem, ko je uporabnik je prijavljen V vidijo svojo domačo stran. To je pogled, OK? In potem regulator je tisto, kar je imenuje poslovna logika vaše spletne strani. In poslovna logika je ena izmed teh izrazov, ki je nekako wishy-washy-- všeč, Kaj poslovna logika pomeni? V bistvu vaš posel Logika je vaš PHP. Vaše uporabnik ne potrebuje neposredno videti vaše PHP, vendar vaš PHP je verjetno kaj se dogaja da se kar zahteve do baze podatkov. Torej vložek bo uporabnik Podatki v pogledu, ki bo povezal krmilnika. Kot, ki jih bomo vpisali v obrazec. Kako, da so procesi oblika informacije je regulator. To je PHP, ki je pravzaprav zaradi česar je zahtevo modela. In potem model daje Informacije na pogled, ki ga daje uporabniku, verjetno najbolj predstavljamo kot sledi. Torej, tukaj smo. Tukaj nas je na levi, in naš model View Controller paradigma ureditev. Kako deluje? User-- us-- naredi zahteva, da krmilnik. Mi predložijo informacije kot z obliko HTTP. Temelji na tem, da je regulator je naloga je, da poskrbite, da to, kar je uporabnik dal ni nekaj, kar bi poškodovali model. In tako krmilnik se dogaja, da se prepričajte, da je vse v redu. To se dogaja, da si zelo previdno. Če je vse napake, bomo prenehali stvari tako da uporabnik ne more priti do modela. Ampak vse, kar je ob predpostavki, OK in je veljavna poizvedbe, krmilnik bo poizvedbo model-- ga bom prosil, da posreduje informacije. Model bo zagotovila, da informacije na strani, ki je pogled, da bomo ga pošlje, da način, nato pa pogled bo zapolnijo informacije zahteva od modela. Tako, na primer, če govorimo o prijavi v svoj Facebook strani, npr. Pogled bi bili podatki da je prišel iz modela, ki se sklicuje na svoje prijatelje in novice krme ali stvari, kot je to, kajne? Ampak ti ne bi videli nekoga drugega. Da boš getting-- tako boste poslali poizvedbo, se prijavite na model-- izgovor me, se prijavite na stran. Uporabe krmilnik vaše podatke za prijavo da vložijo zahtevo za model, da bi prepričajte, da ste, ki ste rekli, da ste. Modela všeč, OK, ja, ste, ki ste rekli, da ste, zato naj ti dam svoj vir novic. Dal vam bom neobdelane podatke za Vaše novice krme z namenom, in potem naredi pogled na to Precej, jih na način, da smo navajeni, prikazovanje da so informacije za uporabnika. Obvestilo povezavo, ki je ne obstaja na tem diagramu. Ni neposredne povezave med vami in modela. Vedno je ta pufer krmilnik na vhodni strani in tam je buffer od Pogled na izhodni strani. Mogoče si dober oseba, in tako morda vam ne bi naredil nobene škode na Model, ampak morda nisi. Ali morda obstaja nekdo, ki je zlonameren uporabnik, ki bi morda želite poškoduje vašo zbirko podatkov, morda izbrisati vse iz baze podatkov, ki je lahko zelo drago. Očitno je, da ima uporabnik podatke is-- tam je vrednost ob uporabniške podatke. In tako, če ne bi dal to buffer cona med uporabnikom in database-- uporabnik in model-- stvari morda ne bo tako dobro za nas. In tako je pomembno, da imajo to paradigmo, uporabnik lahko interakcijo z bazo podatkov, prepričani, ampak morajo iti skozi nas narediti. In to je v bistvu ideja z MVC. To je poskušal izvesti varnost podatkov. To je poskušal zaščititi model nenamerno ali namerno zlonamerni uporabniki. Torej, kaj se zgodi, ko smo uporabljati to paradigmo? No, smo ločuje podatke zahteva od naše website-- model-- iz logike da izvaja naša spletna stran je functionality-- controller-- in od preprostih estetiko in stran Predloge, ki sestavljajo naš Uporabnik experience-- pogled. Kaj to pomeni? No, to pomeni, da lahko gleda viden. Lahko skrijete model proč. In controllers-- uporabnika neposredno morda ni mogoče manipulirati. Oni ne potrebujejo dostop do vašega PHP kodo. Samo morali videti obrazec kjer lahko vnesete stvari v. Tako da morda je oblika pogled, krmilnik je PHP, da je oblika navaja, da je krmilnik naredi poizvedbo v modelu, model daje več informacij v drug namenom, da prikaže informacije za vas. Vaši programi lahko dostopajo do vse vaše poslovne logike, ampak vaši uporabniki neposredno ne more dostop do vaše poslovne logike. In eno posebno, morda, vidna ponazoritev tega se ste kdaj prejeli 403 Forbidden napaka. Ste že kdaj šli na spletu stran in videla 403 Forbidden? To je nekako kot 404 Not Found. 403 Forbidden pomeni da boste poskušali dostopati stran, ki nimate dostopa do. Morda je to spletno mesto uporabo ločitev MVC da skriti svojo poslovno logiko, ki mora obstajati na strežniku, da za stran za delo, vendar ne želim si, da ga neposredno dostopati. Tako da boste morda dobili 403 Forbidden napako. In to sploh ne bi pomembno če ste bili prijavljeni. Uporabnik ni mogoče dotakniti to dot datoteko PHP. So lahko le dotik ta, in to one-- tisti, ki jih lahko touch-- morda Lahko interakcijo z zaklenjenega navzdol datoteko bolj posredno od uporabnika. Torej, smo včasih videli ta dovoljenja Napaka, to 403 Forbidden. Kako spremeniti dovoljenja, tako da stvari, ki lahko ali ne more videti? Ko smo to storili običajno je, da uporabite Linux ukaz imenuje chmod-- C-H-mod. Če želite to narediti, format je precej simple-- chmod, dovoljenja, in ne glede na datoteko, ki jo želite uporabiti to spremembo. Torej, morda boš videl kaj kot this-- chmod 600 helpers.php. Ali pa morda želite videti this-- chmod plus x, ki vključuje imenik. Je bil to pomeni, čeprav? Torej, tam je dva različna načina da so dovoljenja običajno uporabi z chmod. Prvo se imenuje osmiško metoda številke. To običajno velja dovoljenja na treh različnih kategorij uporabnikov hkrati. Torej chmod 711 datotek, bi vam omogočajo, pravica do branja, pisanja in izvajanja datoteka, bi omogočilo others-- posebej vaša skupina in world-- samo izvajajo datoteko. To je tisto, kar to pomeni, da. Prva številka tam je, kaj lahko storite, druga številka kaj vaša skupina lahko storite, in tretji je, kaj lahko svet narediti. Vsakdo, ki je na obisku vaše Stran, ki je svet. Katere so te številke dejansko prevajati, čeprav? Torej ti v bistvu prevajajo kot je ta. Če je bilo soglasje nič, nič ne more zgoditi. Če je eno, lahko izvršitev file-- če je to vaše dovoljenje. Če je dva, lahko napišete datoteko vendar ne morete storiti ničesar drugega. Če je tri, boste Lahko napišete in izvršiti. In tako naprej, kot lahko vidite. In sedem pomeni, da lahko narediš vse. Torej, zakaj se to imenuje osmiških številke? No, če pomislim, Tukaj je kot mreže odličnosti in pritrditev, in če razmišljamo o njih kot rdeče in zelene škatle, Mogoče, zaradi česar je malo bolj jasno. Ampak, če razmišljamo o teh rdečih škatel kot ničle in zelene škatle, kot tiste, ti so v resnici le kompleti binarnih števil, kajne? 000 pomeni, da decimalno mesto od 0; 001, decimalno 1; 010 je decimalno 2, in tako naprej. In zato pravimo te osmiške številke, ker tam osem različnih možnosti. Obstaja osem različne številke, če smo, govorimo o treh bitov information-- branje bit, pisati bit, in izvrši bit. Sedaj lahko govorite binarno, decimal, čarovnica in osmiško. Torej veš, kako komunicirati z računalniki v štirih različnih številko sistemi, tako da je zelo kul. Torej, poleg osmiškim Shema dovoljenje, tam je tudi simbolno dovoljenje Shema, ki je nekoliko drugačen in se običajno uporablja najbolje uporabiti ali odstranite dovoljenje čez krov. Torej chmod plus x datoteko lahko dodate pravico se izvede za vse tri kategorije users-- sami, vaša skupina, in svet. To plus je dodal del. Pravica za izvajanje, da je x. In dejstvo, da to velja za vse tri skupine uporabnikov bi a. Torej this-- plus x-- je verjetno, da bo biti popolnoma enake kot chmod 711 datoteko, ker če greš nazaj in poglej shemo številka osmiško, tisti in sedmice nas dajejo Pravica do izvršiti datoteko. Torej je to verjetno enaka. In jih lahko uporabite to Referenčni priročnik za kaj različne stvari v simbolni chmod-ing strukture so. Zelene predmete tukaj bi kjer je vse zeleno obarvan Primer je bil pred eno sekundo. Modra bi bila modra. Oranžna bi oranžna. Torej, lahko uporabite stvari, da vaš skupino, drugim, za uporabnika, ali za vsakogar. Lahko bi jih prebral, pisanje in izvajanje dostopa, in lahko dodate ali odstranite ali dodeliti natančno niz dovoljenj, ki uporabljajo ta model. Kako preverite, kaj Shema datoteka dovoljenje je? Preden smo ga spremenili, da je verjetno dobro, da bi dejansko vedeli, kakšna dovoljenja datotek so. Eden od načinov za to je, da teče ls vendar je malo le poteg. Torej, če sem tip ls dash l-- da je male l-- morda Bom videl kaj takega. Videti je malce nejasen, a del, ki res skrbi je stvari na levi strani tam. Ki dejansko določa shema datoteka dovoljenje. In si verjetno lahko povem, ker je dobil r je, w-ih, in X. vmes ležeče. Tisti, ki prvi three-- ignoriranje prvo za sekundo, kar bomo podvojili nazaj. Tisti, prvi trije po first-- tako drugi, Tretji in četrti znaki te niz 10 znakov so dovoljenja, ki jih imate. Torej, očitno sem lahko prebral, pisanje in izvajanje PHP. Znam brati, pisati in izvršiti PHP WebDev, in ne morem brati in pisati test.php. Moja skupina lahko to storite. Torej, očitno z PHP in PHP WebDev imeniki, moja skupina lahko pišete na jim nič drugega. In svet ne more storiti ničesar. Torej te datoteke niso javno dostopno in če sem se potrudil, da dostop do njih in nisem bil teče Apache, da jih naredijo dostopne, potem bi dobim napako 403. To je napaka. Poskušal sem, da dostop do datoteke, vendar sem Nimate dovoljenja, da to storite. In kaj je to prvi znak? No, lahko verjetno ekstrapolirati tukaj, da d's sklicevati na imenikov in armaturna nanaša tako imenovane "rednega datoteke." In morda, da ste videli to, ko ste poskušali odstraniti datoteko z rm. Ste videli Grobni sporočilo "odstrani redno datoteko" - v tem primeru, da bi bilo test.php. Redno datoteka je samo nekaj da ni imenik. Obstaja nekaj drugih tukaj, ampak na splošno, da ste videli d's imenikov in nič za prvega elementa. Ampak to je res vse, kar je z njo. Lahko preverite datoteko Dovoljenja za uporabo ls dash l, jih lahko spremenite z uporabo chmod. In, seveda, uporabiti these-- spreminjanje dovoljenj za uveljavitev te MVC paradigmo do zaščito podatkov na vaši spletni strani in ne dovoli uporabnikom dostop do vsega, ampak samo stvari, ki jih potrebujejo za dostop, da za svojo stran delati tako, kot želite, da deluje. Sem Doug Lloyd. To je CS50.