DOUG LLOYD: Niekedy keď sme programovanie robíme veci tak často, takže Často sa stáva, a tak veľa ľudí to isté idea-- alebo rovnaký to, že sa má meno. MVC je presne jedna taká vec. Tomu sa hovorí programovací paradigma. Je to trochu ako osvedčené postupy ktoré boli destilovaný dole ľudia, ktorí sa snažia niečo robiť. V tomto prípade, realizovať systém stránok že používateľ pracuje s na zložitejšie webové stránky. A to robí tak často, aby je odporúčané ako štandard že ostatní ľudia môžu chceli nasledovať, a tam je veľmi špecifický súbor spôsobov že je možné sledovať tento paradigma. Takže, MVC je paradigma, a dôvod používame ich k abstraktným Away Podrobnosti od užívateľa. Niektoré veci, ktoré užívateľ nie je naozaj potrebné vidieť. Oni jednoducho chcú mať dobrý užívateľské skúsenosti, a my nemusíme mať je prístup každý súbor, ktorý existuje na našom serveri, možno. Tam by mohlo byť niektoré súbory, ktoré sú práve slúži na posilnenie užívateľské skúsenosti, a tak môžeme abstraktné tie preč. Môžeme nejako schovať tak, užívateľ nemôže pracovať s nimi, ale naše pages-- našu pages-- vedieť, ako sa s nimi vysporiadať a hovoria im, alebo možno vyžadujú, chce, alebo niečo také. Primárne motiváciou pre MVC je zabezpečenie dát, pretože MVC zvyčajne príde v kontext práce s databázami. A najmä my chcete zabrániť používateľom z priamo ovplyvňujúcich databáz. My len chceme, aby to nepriamo, prostredníctvom našej filtráciou. Alebo uistite sa, že je všetko v poriadku podľa nám robí trochu kontrolu chýb alebo bezpečnostné kysnutia pred my odoslať ju do databázy, kde čo sa môže pokaziť, snáď naozaj zle, ak nie sme opatrní. Takže MVC je skratka pre Model View Controller. Čo každý z nich znamená? V podstate, model je vaše databázy. Je to, kde sú všetky dôležité dáta pre vašu stránku lives-- užívateľské mená, heslá, prihlásenie. A môžete ju aktualizovať, sa odvolávajú na to, skoro všetko takhle. Vy by ste databázového dopytu, mali by ste sa opýtať Informácie z databázy. To je model-- všetky Údaje kde sa vaše stránky žije. Pohľad je niečo ako užívateľské skúsenosti. To sú stránky, ktoré uvidíte po majú požadované informácie. Takže možno, že predloží ich login information-- čo by robili v regulátora, ktoré budeme hovoriť o tom, v druhom. Oni možná predložili svoje prihlasovacie údaje, a databázy je vypočúvaný. Informácie je požadovaný vytiahol z databázy. A potom, čo sa používateľ je prihlásený in, vidí svoju domovskú stránku. To je názor, OK? A potom regulátor je to, čo je volal obchodnej logiky vášho webu. A obchodnej logiky je jedným z tých termínov, ktoré je trochu nemastný washy-- páči, čo obchodnej logiky znamená? V podstate vaše podnikanie logika je vaša PHP. Vaše užívateľské nepotrebuje priamo vidieť vaše PHP, ale váš PHP je pravdepodobne to, čo sa deje , Ktoré majú byť o žiadosti do databázy. Takže vstup bude užívateľ informácie v pohľade, ktorá bude integrovať radič. Rovnako ako, budú zadajte do formy. Ako tento formulár procesy informácia je regulátor. To je PHP, ktorý je vlastne takže požiadavka na modeli. A potom model poskytuje Informácie k názoru, ktoré ju dáva užívateľovi, možno najlepšie vizualizovaný nasledovne. Tak sme tu. Tu je nás na ľavej strane, a náš model View Controller paradigma usporiadanie. Ako to funguje? User-- us-- robí požiadať o regulátora. My predkladať informácie ako je napríklad formulár HTTP. Na to, že regulátor je Based úlohou je zabezpečiť, aby že to, čo sa užívateľ dal nie je niečo, čo by dôjsť k poškodeniu modelu. A tak to bude regulátor uistite sa, že je všetko v poriadku. Bude to vyzerať veľmi opatrne. Ak existuje nejaké chyby, bude to zastaviť veci takže užívateľ nemôže dostať do modelu. Ale za predpokladu, že je všetko OK a je to platný dotaz, regulátor dotaz model-- to bude ho požiadať o poskytnutie informácií. Tento model bude stanoviť, že Informácie na stránku, ktorá je názor, to bude odovzdať ho, že cesta, a potom pohľad naplní informácie požadoval od modelu. Tak, napríklad, keď hovoríme o prihlásenie do svojej stránke na Facebooku, napríklad. Pohľad by boli údaje že vyšiel z modelu, ktorý odkazuje na svojich priateľov a novinky krmiva alebo podobné veci, že jo? Ale tie by nevidel niekoho iného. To by ste sa tak getting-- zadáte dotaz, prihlásenie k model-- výhovorku me, sa prihlásite na stránku. Použitie Regulátor vaše prihlasovacie údaje podať žiadosť k modelu, aby sa istí, že ste, kto hovoríte, že ste. Tento model je ako, OK, áno, vy ste kto hovoríte, že ste, tak nech mi dávate noviniek. Dám vám vstupné údaje pre Váš news feed do pohľadu, a potom pohľad robí to pekný, spracuje to spôsobom, že sme zvyknutí, zobrazovanie že informácie pre používateľov. Všimnite si pripojenie, ktoré je neexistujúce na tejto schéme. Neexistuje žiadna priama súvislosť medzi vami a modelu. Vždy je to buffer regulátor na vstupnej strane, a tam je vyrovnávacej pamäte pohľad na výstupnej strane. Možno, že ste dobrý človek, a tak možno vás nebude robiť žiadne škody do Model, ale možno nie ste. Alebo možno je tu niekto, kto sa Používateľ so zlými úmyslami, ktorý by možno chcú poškodiť databázu, možno vymazať všetko, čo z databázy, ktorý by mohol byť veľmi nákladné. Je zrejmé, že majú používateľské dáta je-- tam je hodnota mať používateľské dáta. A tak, keď sme nemali dať tejto vyrovnávacej pamäti oblasť medzi užívateľom a database-- Používateľ a model-- veci nemusí ísť tak dobre pre nás. A preto je dôležité, aby majú túto paradigma, v ktorom užívateľ môže komunikovať s databázou, iste, ale majú ísť cez nás urobiť to. A to je v podstate nápad s MVC. Snažia sa realizovať zabezpečenie dát. Snaží sa chrániť model z neúmyselne alebo úmyselne užívatelia so zlými úmyslami. Takže čo sa stane, keď aplikujeme toto paradigma? No, my sme oddeľujúce údaje vyžadované z našej website-- model-- z logiky ktorá implementuje naše webové stránky je functionality-- controller-- a od jednoduchých estetiky a stránku šablóny, ktoré obsahujú naše Užívateľ experience-- pohľad. Čo to znamená? No, to znamená, že môžete urobiť považuje viditeľný pre používateľov. Môžete skryť model preč. A controllers-- užívateľa Nemožno snáď priamo manipulovať. Oni nepotrebujú pre prístup k PHP kód. Oni jednoducho potrebujú vidieť formulár kde môžu písať veci dovnútra. Takže možno je formulár pohľad, regulátor je PHP, že formulár predkladá sa regulátor dotaz na modeli, model poskytuje viac informácií na iný názor, že zobrazuje informácie pre vás. Vaše programy môžu pristupovať všetky svoje obchodnej logiky, ale používatelia nemôžu priamo prístup k obchodnej logiku. A jeden najmä možná viditeľný ilustrácie toto je, aký ste kedy dostali 403 Forbidden chyba. Už ste niekedy išli do web strana a videl 403 Zakázané? Je to niečo ako 404 Not Found. 403 Forbidden znamená, že ste sa pokúsili o prístup stránka, ktorá nemáte prístup. Možno, že stránky sú pomocou separácie MVC schovať svoje obchodné logiku, že je potrebné vykonávať na serveri tak, aby pre stránky do práce, ale nie je chcem, aby ste priamo prístup. Takže by ste mohli dostať 403 Zakázané chybu. A to by nebolo ani jedno, ak ste boli prihlásení. Žiadny užívateľ môže dotknúť tento skalárna PHP súboru. Môžu iba dotknúť tento, a to one-- ten, že sa môžu touch-- snáď môže spolupracovať s uzamknutom súboru viac nepriamo, než je používateľ. Takže sme občas vidieť tento oprávnenie chyba, tento 403 Zakázané. Ako môžeme zmeniť povolenia tak, že veci sa môže alebo nemôže byť vidieť? Keď sme to urobiť, zvyčajne je použitie Príkaz Linux tzv chmod-- C-H-mod. K tomu, formát je dosť simple-- chmod, oprávnenie, a bez ohľadu na súbor, ktorý chcete uplatniť túto zmenu. Takže, možno by ste vidieť niečo ako tohle-- chmod 600 helpers.php. Alebo možno by ste vidieť tohle-- chmod plus x, ktorý obsahuje adresáre. Bol to znamená keď? Takže, je tu dva rôzne spôsoby, že oprávnenia sú zvyčajne aplikovať pomocou chmod. Prvý sa nazýva osmičkové metóda čísel. To sa týka zvyčajne oprávnenia do troch rôznych kategórií užívateľov v rovnakom čase. Takže chmod 711 súbor by vám umožní právo na čítanie, zápis a spúšťanie váš súbor, by umožnilo others-- špecificky vaša skupina a world-- iba spúšťanie súboru. To je to, čo to znamená pre. Prvé číslo tu je to, čo môžete urobiť, druhé číslo je čo vaša skupina môže robiť, a tretí je to, čo svet môže urobiť. Každý, kto je na návšteve vášho strana, to je svet. Aké sú tieto čísla v skutočnosti sa premietajú do keď? Tak to v podstate preložiť ako je tento. V prípade, že povolenie je nula, sa môže stať nič. Ak je to jedno, môžete popraviť file-- ak je to vaša povolenia. Ak je to dve, môžete napísať súbor ale nemôžete robiť nič iné. Ak je to tri, vy Môžete písať a spustiť. A tak ďalej, ako vidíte. A sedem znamená, že môžete robiť všetko. Tak prečo sa tieto tzv osmičkové čísla? No, ak si myslíte o tom, tu to ako siete excelencie a yeses, a keď si myslíme, že o nich ako červené a zelené krabičky, Možno, že je to trochu jasnejšie. Ale ak si myslíme, že o tých červeným boxy ako nuly a zelenými rámčeky, ako tie, sú to vlastne len sety binárnych čísel, že jo? 000 prekladá do desiatkovej 0; 001, desatinné 1; 010 je desiatkovej 2, a tak ďalej. A tak hovoríme tieto osmičkové čísla, pretože tam je osem rôznych možností. Existujú ôsmich rôzne číslica či máme hovorí o troch kúsky information-- čítania bit, zápisu bit, a execute bit. Takže teraz môžete hovoriť binárne, desiatkovej, Hex, a osmičkové. Takže viete, ako komunikovať s počítače v štyroch rôznych počte systémy, takže je to celkom v pohode. Takže, okrem osmičkový Systém povolenie, je tu tiež symbolické povolenie systém, ktorý je mierne odlišný a obvykle sa používa najlepšie použiť alebo odobrať povolenie cez palubu. Takže chmod A plus x súbor dodať právo vykonať na všetky tri kategória users-- sami, vaša skupina, a svet. To navyše je pridávanie súčasťou. Právo spustiť, to je x. A skutočnosť, že sa vzťahuje na všetky tri skupiny užívateľov by a. Takže tohle-- A Plus x-- sa pravdepodobne bude byť presne rovnaký ako chmod 711 súboru, pretože keď sa vrátite a pozrite sa na systéme číslo osmičkového ty a sedmičky Daj nám právo na spustenie súboru. Tak to je asi rovnaká. A môžete použiť referenčná príručka pre to, čo rôzne veci na symbolický chmod-ing štruktúry sú. Zelené položky by tu kde sú všetky zelený príklad bolo pred druhým. Modrá bude modrá. Oranžový by bol oranžový. Takže môžete použiť veci do vášho skupina, k iným, k užívateľovi, alebo pre každého. Môžete si dať im čítať, zápis a spúšťanie prístup, a môžete pridať alebo odstrániť alebo priradiť presne sady oprávnenia pomocou tohto modelu. Ako môžeme skontrolovať, čo je to Schéma oprávnenia súbor? Ako sme to zmeniť, je to asi dobre skutočne vedieť aké oprávnenie k súboru sú. Jeden spôsob, ako to urobiť, je spustenie ls ale len vyladiť to trochu. Takže keď som typ ls pomlčka L-- to je malá L-- možná Uvidím niečo také. Vyzerá to trochu záhadný, ale tá časť, ktorá nám naozaj záleží je vec na ľavej strane tamto. To vlastne určuje schéma oprávnenia súboru. A môžete povedať, pravdepodobne preto, že je dostal r je, w rokoch, a X je poprekladané. Tí najprv three-- ignoruje prvý za sekundu, ktorý budeme zdvojnásobiť späť. Tí prvé tri po first-- takže druhý, Tretie a štvrté charaktery tohto 10 reťazca znakov sú oprávnení, ktoré máte. Tak vraj som si prečítať, zápis a spúšťanie PHP. Dokážem čítať, písať, a spustiť PHP Webdev, a ja môžem čítať a písať test.php. Moja skupina to môže urobiť. Takže zrejme s PHP a PHP Webdev adresáre, moja skupina môže zapisovať im ale nič iné. A svet nemôže nič robiť. Takže tieto súbory nie sú verejne prístupné a keď som sa pokúsil prístup k nim a nebol som beží Apache, aby boli prístupné, potom by som si 403 chybu. Je to zlyhanie. Snažil som sa prístup k súboru, ale ja nemáte oprávnenie to urobiť. A čo je to prvý znak? No, budete pravdepodobne extrapolovať tu to d's odkazujú na adresáre a pomlčka odkazuje takzvané "bežné súbory." A možno ste videli, keď nemáš snažil odstrániť súbor pomocou RM. Videli ste tajomnú správu "odstrániť obyčajný súbor" - v tomto prípade, že to bude test.php. Pravidelné súbor je proste niečo, že to nie je adresár. Existuje niekoľko ďalších tu, ale všeobecne ty si uvidia d's pre adresára a nič pre prvý prvok. Ale to je naozaj všetko, čo je k tomu. Môžete skontrolovať súbor oprávnenia pomocou ls pomlčka l, ich môžete meniť pomocou chmod. A, samozrejme, použite these-- Zmena oprávnení pri presadzovaní tohto MVC paradigma ochrániť dáta na vašich webových stránkach a nedovolí užívateľa na prístup ku všetkému, ale iba veci, ktoré potrebujú pristupovať aby pre vašu stránku pracovať tak, ako chcete, aby to fungovať. Som Doug Lloyd. To je CS50.