Doug LLOYD: Ponekad kada smo programiranje radimo tako često, tako da često, i tako mnogo ljudi učiniti isto idea-- ili isti stvar, da ima ime. MVC je upravo jedna takva stvar. To se zove programski paradigma. To je vrsta je od poput najbolje prakse koje su destilirana dolje ljudi pokušavaju nešto učiniti. U tom slučaju, provede sustav stranica da korisnik komunicira s na složenije web stranice. I to je učinjeno tako često da to je preporučeno kao standard da drugi ljudi možda željeli slijediti, a tu je vrlo specifičan skup načina kako bi se moglo pratiti tu paradigmu. Dakle, MVC je paradigma, a razlog koristimo je za apstraktne daleko detalje od korisnika. Neke stvari na korisnika zapravo ne trebate vidjeti. Oni samo žele imati dobro korisničko iskustvo, i ne morate ih imati pristupiti svaku datoteku koja postoji na našem web poslužitelju, možda. Tu bi moglo biti neke datoteke koje su samo koristi podupirati korisničko iskustvo, pa možemo apstraktno onima daleko. Mi ih vrsta može sakriti tako korisnik ne može raditi s njima, No, naš pages-- našu pages-- znate kako se nositi s njima i nazvati ih ili možda zahtijevaju, ih, ili nešto slično tome hoće. Primarna motivacija za MVC je sigurnost podataka, jer MVC obično dolazi u Kontekst rad s bazama podataka. A posebno mi želite spriječiti korisnike od izravno utječu baza podataka. Mi samo želimo to učiniti posredno, kroz naše filtriranjem. Ili pazeći da je sve u redu po nas radi malo provjere pogreške ili sigurnost iskušavanje prije nego što poslati ga na bazu podataka, gdje stvari mogu poći po zlu, možda stvarno nije u redu, ako ne budemo oprezni. Tako MVC zalaže za Model View Controller. Što svaki od njih znači? Uglavnom, model baza podataka. To je mjesto gdje svi važne podatke za Vašu stranicu lives-- korisnička imena, prijave, lozinke. A možete ga ažurirati, odnosi se na to, ljepušan velik dio sve tako. Ti bi upita baze podataka, ti bi pitati Podaci iz baze podataka. To je model-- sve od Podaci gdje se vaš site živi. Pogled je vrsta kao što korisničko iskustvo. To su stranice koje su vidjeli nakon oni su zatražili informaciju. Pa možda su dostaviti njihova prijava information-- što će učiniti u kontroler, koje ćemo razgovarati o u sekundi. Oni možda dostaviti svoje Prijava informacije, a baza je upita. Traži informacije i izvukao iz baze podataka. I onda odjednom korisnik je prijavljen u, oni vide svoju početnu stranicu. To je pogled, u redu? A onda je regulator je ono što je zove poslovna logika vaše stranice. I poslovna logika jedan od onih pojmova koji je vrsta wishy-washy-- sviđa, Što poslovna logika znači? Uglavnom vaše poslovanje Logika je vaš PHP. Vaš korisnik ne treba izravno vidjeti vašu PHP, ali vaš PHP je vjerojatno što se događa da se izradi zahtjeve baze podataka. Dakle, korisnik će ulaz Informacije u pogledu, koji će integrirati kontroler. Kao, oni će upisati u obrazac. Kako oblikuju procese informacije kontroler. To je PHP koji je zapravo što je zahtjev modelu. A onda je model daje Informacije na prikazu, što daje korisniku, možda najbolje vizualizirati kako slijedi. Dakle, ovdje smo. Ovdje nas je na lijevoj strani, a naš model Vidi kontroler paradigma aranžman. Kako radi? User-- us-- čini zahtjev za kontroler. Mi dostaviti podatke kao što je HTTP obliku. Na temelju toga, regulator je posao je kako bi bili sigurni da je ono što je korisnik dao nije nešto što će oštetiti modela. I tako kontrolor će pobrinite se da je sve u redu. To će izgledati vrlo pažljivo. Ako postoji bilo kakve pogreške, to će prestati stvari tako da korisnik ne može doći do modela. No, uz pretpostavku da je sve u OK i to je valjan upit, kontroler će upit model-- to će ga pitati za pružanje informacija. Model će osigurati da Informacije na stranicu koja je pogled, to će ga prenijeti da način, a zatim pogled će popuniti podatke zatražio od modela. Tako, na primjer, ako govorimo o prijavom na Facebook stranici, na primjer. Pogled bi podaci koji je došao iz modela koji odnosi s prijateljima i vijesti hrane ili stvari kao što je to, zar ne? Ali ti ne bi vidjeli tuđe. Ti bi se getting-- tako pošaljete upit, što se prijavite na model-- izgovor ja, što se prijavite na stranicu. Regulator koristi vaše podatke za prijavu da bi zahtjev za model kako bi sigurni da ste tko ste reći da ste. Model je kao, u redu, da, ste tko ste reći da ste, pa neka mi vam dati vaše vijesti feed. Ja ću vam dati sirove podatke za Vaš News Feed na prikaz, a zatim pogled čini lijepa, obrađuje ga na neki način da smo navikli, prikazujući da su informacije korisniku. Obavijest vezu koja je Ne postoji na ovom dijagramu. Nema izravne veze između tebe i modela. Uvijek to pufera kontrolor na ulaznoj strani, a tu je tampon od pogledati na izlaznoj strani. Možda ste dobar Osoba, pa možda i ti Ne bi to bilo štete na Model, ali možda niste. Ili možda postoji netko tko je zlonamjerni korisnik koji bi možda žele oštetiti svoje baze podataka, možda izbrisati sve iz vaše baze podataka, koji bi mogao biti vrlo skupo. Očito, ima korisnički podaci is-- postoji vrijednost koja ima korisničkih podataka. I tako, ako nismo stavili ovo tampon Zona između korisnika i database-- korisnik i model-- stvari možda ne ide tako dobro za nas. I tako je važno ima tu paradigmu gdje korisnik može komunicirati s bazom podataka, jeste, ali oni moraju proći kroz nas to učiniti. I to je u osnovi ideja s MVC. Ona pokušava implementirati sigurnost podataka. Ona pokušava zaštititi modela iz nehotice ili namjerno zlonamjerni korisnici. Dakle, što se događa kada primjenjujemo tu paradigmu? Pa, mi smo odvajanje podataka zahtijeva od našeg website-- model-- iz logike koji implementira naš web functionality-- controller-- i od jednostavnih estetike i stranice predlošci koji čine naš Korisnik experience-- pogled. Što to znači? Pa, to znači da možete napraviti pogleda vidljivi korisniku. Možete sakriti model daleko. I controllers-- korisnika ne mogu možda izravno manipulirati. Oni ne moraju pristupiti vaše PHP koda. Oni samo trebaju vidjeti obrazac gdje mogu upisati stvari u. Dakle, možda je oblik pogled, kontrolor je PHP koji oblik podnosi je Regulator čini upit modelu, model daje više informacija na drugi pogled koji prikazuje informacije na vas. Vaši programi mogu pristupiti sve svoje poslovne logike, ali korisnici ne mogu izravno pristupiti svom poslovnu logiku. I jedan osobito, možda, vidljiva ilustracija toga je li ikada primili 403 Zabranjeni pogreške. Jeste li ikada otišao na webu stranica i vidio 403 Forbidden? To je vrsta kao 404 nije pronađen. 403 Zabranjeni znači da je pokušao pristupiti stranica koje nemate pristup. Možda je stranica pomoću MVC odvajanje sakriti svoju poslovnu logiku da treba postojati na poslužitelju kako za stranicu na posao, ali ne Želim da izravno pristupiti. Dakle, možda ćete dobiti Forbidden pogrešku 403. I to ne bi ni važno ako ste bili prijavljeni. Nema korisnik može dotaknuti ovu dot PHP datoteke. Oni mogu samo dotaknuti ovaj jedan, a to one-- onaj koji se može touch-- možda mogu komunicirati s zaključana-dolje datoteku više neizravno od korisnika. Dakle, ponekad vidjeti ovaj dozvole greška, to 403 Forbidden. Kako promijeniti ovlasti tako da stvari mogu ili ne mogu vidjeti? Kada smo to učinili obično se na sustav Linux naredba zove chmod-- C-H-mod. Da biste to učinili, format je prilično simple-- chmod, dozvole, i što god datoteku koju želite primijeniti tu promjenu. Dakle, možda bi nešto vidjeti kao this-- chmod 600 helpers.php. Ili možda želite vidjeti this-- chmod plus x koji uključuje katalog. Je li to znači da? Dakle, postoje dvije različite načine da dozvole su obično nanosi pomoću chmod. Prvi se zove oktalni broj metoda. To obično vrijedi dozvole tri različite kategorije korisnika istovremeno. Dakle chmod 711 slika bi vam se omogućilo pravo čitati, pisati i izvršavati Vaša datoteka, omogućit će da se others-- posebno vaša grupa i svijet- samo izvršiti datoteku. To je ono što ovo znači. Prvi broj tamo je ono što možete učiniti, drugi broj je što vaša grupa može učiniti, a treći je ono što svijet može učiniti. Svatko tko je posjetiti svoj stranica, to je svijet. Što su ti brojevi zapravo prevesti na ipak? Dakle, to u osnovi prevesti ovako. Ako je dopuštenje nula, ništa ne može dogoditi. Ako je jedan, možete izvršiti file-- ako je to tvoj dopuštenje. Ako je dva, možete napisati datoteku ali ne možete učiniti ništa drugo. Ako je troje, ti Možete pisati i izvršavati. I tako dalje, kao što možete vidjeti. I sedam znači da možete učiniti sve. Pa zašto se to zove Oktalni brojevi? Pa, ako mislite o tome, Ovdje je kao noes i yeses, a ako mislimo o njima kao crvenim i zelenim okvirima, možda da ga čini malo jasnije. Ali ako mislimo o tim crvenim kutijama kao nula i zelene kutije su one, To su zapravo samo postavlja binarnih brojeva, zar ne? 000 prevodi na decimalnih 0; 001, decimalna 1; 010 je decimalni 2, i tako dalje. I tako zovemo ove oktalnom Brojevi jer postoji osam različitih mogućnosti. Postoji osam različitih znamenki ako smo govori o tri komadići information-- bit čitanje, umanjenje malo, a izvršavanje malo. Tako sada možete govoriti binarni, decimalni, heksadecimalni, oktalni i. Pa znate kako komunicirati s računala u četiri različita broja sustava, tako da je prilično cool. Dakle, osim oktalni dopuštenje shema, postoji Također simbolički dozvolu shema, što je malo drugačiji i obično se koristi najbolje primijeniti ili uklonili dopuštenje cijeloj ploči. Dakle chmod plus x datoteku mogao dodati pravo izvršiti na sve tri kategorije users-- sebe, svoju skupinu, i svijet. To plus je dodao dio. Pravo da izvrši, to je x. A činjenica da se odnosi na sve tri skupine korisnika će biti a. Dakle this-- plus x-- vjerojatno će biti isti kao chmod 711 podnijeti, jer ako se vratiti i pogledajte oktalni broj programa, one i Sevens nam dati pravo izvršiti datoteku. Dakle, to je vjerojatno isto. A možete koristiti ovu Referentni vodič za ono razne stvari u simbolično chmod-ing strukture. Zelene točke ovdje bi se gdje je sve zelene boje primjer bio drugi prije. Plavi će biti plava. Narančasta će biti narančasta. Dakle, možete se prijaviti stvari na svoj skupina, prema drugima, prema korisniku, ili svima. Možete im dati čitati, pisanje i izvršavanje pristup, a možete dodati ili ukloniti ili dodijeliti točno set dopuštenja koriste ovaj model. Kako smo provjerili što file permission shema? Prije nego što smo ga promijeniti, to je Vjerojatno dobro zapravo znali ono dozvole datoteka su. Jedan od načina da to učinite je pokrenuti LS ali samo je malo ugađanje. Dakle, ako sam upisati ls crtica l-- to je mala l-- možda Vidjet ću nešto ovako. Izgleda malo zagonetan, ali dio koji mi stvarno stalo je stvari na lijevo tamo. To zapravo određuje shema datoteka dozvolu. I vjerojatno možete reći, jer je to dobio je r, w-ih, i X-rasuti. Oni prvi three-- ignoriranje prvi za drugi, koji ćemo udvostručiti natrag. Oni prva tri poslije first-- pa drugi, treći, i četvrti likovi Od toga 10 znakova stringa su dozvole koje imate. Dakle, očito ne mogu čitati, pisanje i izvršavanje PHP. Mogu čitati, pisati i izvršavanje PHP WebDev, i ja mogu čitati i pisati test.php. Moja grupa može to učiniti. Dakle, očito s PHP i PHP WebDev direktorije, moja grupa može pisati ih, ali ništa drugo. A svijet ne može ništa učiniti. Dakle, te datoteke nisu javno dostupne a ako sam pokušao pristupiti im i nisam bio trčanje Apache kako bi ih dostupnim, onda bih dobiti 403 pogreške. To je neuspjeh. Pokušao sam pristupiti datoteku, ali sam nemaju ovlasti to učiniti. A što je to prvi znak? Pa, vjerojatno možete izvesti ovdje da D's odnose na direktorije a crtica se odnosi na Takozvani "redovne datoteke." A možda ste vidjeli kada ste pokušao ukloniti datoteku pomoću rm. Vidjeli ste zagonetni poruku "uklanjanje redovite datoteke" - u ovom slučaju, bilo bi test.php. Redovita datoteka je samo nešto to nije katalog. Postoji nekoliko drugih ovdje, ali općenito si ide vidjeti d's za direktorije i ništa za prvi element. Ali to je stvarno sve što je na njega. Možete provjeriti datoteku Dozvole koriste ls crtica L, možete ih promijeniti pomoću chmod. I, naravno, koristiti these-- mijenja dozvole provesti ovaj MVC paradigma zaštititi podatke na vašem website i ne dopustiti korisnicima pristupiti sve, ali samo stvari koje su potrebne pristup kako bi za svoju stranicu raditi onako kako vi to želite raditi. Ja sam Doug Lloyd. Ovo je CS50.