DOUG LLOYD: Někdy když jsme programování děláme věci tak často, takže Často se stává, a tak mnoho lidí to samé idea-- nebo stejný to, že se má jméno. MVC je přesně jedna taková věc. Tomu se říká programovací paradigma. Je to trochu jako osvědčené postupy které byly destilovaný dolů lidé, kteří se snaží něco dělat. V tomto případě, realizovat systém stránek že uživatel pracuje s na složitější webové stránky. A to dělá tak často, aby je doporučeno jako standard že ostatní lidé mohou chtěli následovat, a tam je velmi specifický soubor způsobů že je možné sledovat tento paradigma. Takže, MVC je paradigma, a důvod používáme je k abstraktním Away Podrobnosti od uživatele. Některé věci, které uživatel není opravdu potřeba vidět. Oni prostě chtějí mít dobrý uživatelské zkušenosti, a my nemusíme mít je přístup každý soubor, který existuje na našem serveru, možná. Tam by mohlo být některé soubory, které jsou právě slouží k posílení uživatelské zkušenosti, a tak můžeme abstraktní ty pryč. Můžeme nějak schovat tak, uživatel nemůže pracovat s nimi, ale naše pages-- naši pages-- vědět, jak se s nimi vypořádat a říkají jim, nebo možná vyžadují, chce, nebo něco takového. Primární motivací pro MVC je zabezpečení dat, protože MVC obvykle přijde v kontext práce s databázemi. A zejména my chcete zabránit uživatelům z přímo ovlivňujících databází. My jen chceme, aby to nepřímo, prostřednictvím naší filtrací. Nebo ujistěte se, že je všechno v pořádku podle nám dělá trochu kontrolu chyb nebo bezpečnostní kynutí před my odeslat ji do databáze, kde co se může pokazit, snad opravdu špatně, pokud nejsme opatrní. Takže MVC je zkratka pro Model View Controller. Co každý z nich znamená? V podstatě, model je vaše databáze. Je to, kde jsou všechny důležitá data pro vaši stránku lives-- uživatelská jména, hesla, přihlášení. A můžete ji aktualizovat, se odkazují na to, skoro všechno takhle. Vy byste databázového dotazu, měli byste se zeptat Informace z databáze. To je model-- všechny Údaje kde se vaše stránky žije. Pohled je něco jako uživatelské zkušenosti. To jsou stránky, které uvidíte po mají požadované informace. Takže možná, že předloží jejich login information-- což by dělali v regulátoru, které budeme mluvit o tom, v druhém. Oni možná předložily své přihlašovací údaje, a databáze je dotazován. Informace je požadován vytáhl z databáze. A poté, co se uživatel je přihlášen in, vidí svou domovskou stránku. To je názor, OK? A pak regulátor je to, co je volal obchodní logiky vašeho webu. A obchodní logiky je jedním z těch termínů, které je trochu nemastný washy-- líbí, co obchodní logiky znamená? V podstatě vaše podnikání logika je vaše PHP. Vaše uživatelské nepotřebuje přímo vidět vaše PHP, ale váš PHP je pravděpodobně to, co se děje , které mají být o žádosti do databáze. Takže vstup bude uživatel informace v pohledu, která bude integrovat řadič. Stejně jako, budou zadejte do formy. Jak tento formulář procesy informace je regulátor. To je PHP, který je vlastně takže požadavek na modelu. A pak model poskytuje Informace k názoru, které ji dává uživateli, možná nejlépe vizualizován následovně. Tak jsme tady. Tady je nás na levé straně, a náš model View Controller paradigma uspořádání. Jak to funguje? User-- us-- dělá požádat o regulátoru. My předkládat informace jako je například formulář HTTP. Na to, že regulátor je Based úkolem je zajistit, aby že to, co se uživatel dal není něco, co by dojít k poškození modelu. A tak to bude regulátor ujistěte se, že je všechno v pořádku. Bude to vypadat velmi opatrně. Pokud existuje nějaké chyby, bude to zastavit věci takže uživatel nemůže dostat do modelu. Ale za předpokladu, že je všechno OK a je to platný dotaz, regulátor dotaz model-- to bude jej požádat o poskytnutí informací. Tento model bude stanovit, že Informace na stránku, která je názor, to bude předat jej, že cesta, a pak pohled naplní informace požadoval od modelu. Tak, například, když mluvíme o přihlášení do své stránce na Facebooku, například. Pohled by byly údaje že vyšel z modelu, který odkazuje na své přátele a novinky krmiva nebo podobné věci, že jo? Ale ty by neviděl někoho jiného. To byste se tak getting-- zadáte dotaz, přihlášení k model-- výmluvu me, se přihlásíte na stránku. Použití Regulátor vaše přihlašovací údaje podat žádost k modelu, aby se jisti, že jste, kdo říkáte, že jste. Tento model je jako, OK, ano, vy jste kdo říkáte, že jste, tak ať mi dáváte novinek. Dám vám vstupní údaje pro Váš news feed do pohledu, a pak pohled dělá to pěkný, zpracuje to způsobem, že jsme zvyklí, zobrazování že informace pro uživatele. Všimněte si připojení, které je neexistující na tomto schématu. Neexistuje žádná přímá souvislost mezi vámi a modelu. Vždycky je to buffer regulátor na vstupní straně, a tam je vyrovnávací paměti pohled na výstupní straně. Možná, že jste dobrý člověk, a tak možná vás nebude dělat žádné škody do Model, ale možná nejste. Nebo možná je tu někdo, kdo se Uživatel se zlými úmysly, který by možná chtějí poškodit databázi, možná vymazat vše, co z databáze, který by mohl být velmi nákladné. Je zřejmé, že mají uživatelská data je-- tam je hodnota mít uživatelská data. A tak, když jsme neměli dát této vyrovnávací paměti oblast mezi uživatelem a database-- Uživatel a model-- věci nemusí jít tak dobře pro nás. A proto je důležité, aby mají tuto paradigma, ve kterém uživatel může komunikovat s databází, jistě, ale mají jít přes nás udělat to. A to je v podstatě nápad s MVC. Snaží se realizovat zabezpečení dat. Snaží se chránit model z neúmyslně nebo úmyslně uživatelé se zlými úmysly. Takže co se stane, když aplikujeme toto paradigma? No, my jsme oddělující údaje vyžadováno z naší website-- model-- z logiky která implementuje naše webové stránky je functionality-- controller-- a od jednoduchých estetiky a stránku šablony, které obsahují naše Uživatel experience-- pohled. Co to znamená? No, to znamená, že můžete udělat považuje viditelný pro uživatele. Můžete skrýt model pryč. A controllers-- uživatele Nelze snad přímo manipulovat. Oni nepotřebují pro přístup k PHP kód. Oni prostě potřebují vidět formulář kde mohou psát věci dovnitř. Takže možná je formulář pohled, regulátor je PHP, že formulář předkládá se regulátor dotaz na modelu, model poskytuje více informací na jiný názor, že zobrazuje informace pro vás. Vaše programy mohou přistupovat všechny své obchodní logiky, ale uživatelé nemohou přímo přístup k obchodní logiku. A jeden zejména možná viditelný ilustrace toto je, jaký jste kdy obdrželi 403 Forbidden chyba. Už jste někdy šli do web strana a viděl 403 Zakázáno? Je to něco jako 404 Not Found. 403 Forbidden znamená, že jste se pokusili o přístup stránka, která nemáte přístup. Možná, že stránky jsou pomocí separace MVC schovat své obchodní logiku, že je třeba provádět na serveru tak, aby pro stránky do práce, ale není chci, abyste přímo přístup. Takže byste mohli dostat 403 Zakázáno chybu. A to by nebylo ani jedno, pokud jste byli přihlášeni. Žádný uživatel může dotknout tento skalární PHP souboru. Mohou pouze dotknout tento, a to one-- ten, že se mohou touch-- snad může spolupracovat s uzamčeném souboru více nepřímo, než je uživatel. Takže jsme občas vidět tento oprávnění chyba, tento 403 Zakázáno. Jak můžeme změnit oprávnění tak, že věci se může nebo nemůže být vidět? Když jsme to udělat, obvykle je použití Příkaz Linux tzv chmod-- C-H-mod. K tomu, formát je dost simple-- chmod, oprávnění, a bez ohledu na soubor, který chcete uplatnit tuto změnu. Takže, možná byste vidět něco jako tohle-- chmod 600 helpers.php. Nebo možná byste vidět tohle-- chmod plus x, který obsahuje adresáře. Byl to znamená když? Takže, je tu dva různé způsoby, že oprávnění jsou obvykle aplikovat pomocí chmod. První se nazývá osmičkové metoda čísel. To se týká obvykle oprávnění do tří různých kategorií uživatelů ve stejnou dobu. Takže chmod 711 soubor by vám umožní právo na čtení, zápis a spouštění váš soubor, by umožnilo others-- specificky vaše skupina a world-- pouze spouštění souboru. To je to, co to znamená pro. První číslo zde je to, co můžete udělat, druhé číslo je co vaše skupina může dělat, a třetí je to, co svět může udělat. Každý, kdo je na návštěvě vašeho strana, to je svět. Jaké jsou tato čísla ve skutečnosti se promítají do když? Tak to v podstatě přeložit jako je tento. V případě, že povolení je nula, se může stát nic. Pokud je to jedno, můžete popravit file-- pokud je to vaše svolení. Pokud je to dvě, můžete napsat soubor ale nemůžete dělat nic jiného. Pokud je to tři, vy Můžete psát a spustit. A tak dále, jak vidíte. A sedm znamená, že můžete dělat všechno. Tak proč se tyto tzv osmičkové čísla? No, pokud si myslíte o tom, tady to jako sítě excelence a yeses, a pokud si myslíme, že o nich jako červené a zelené krabičky, Možná, že je to trochu jasnější. Ale pokud si myslíme, že o těch červeným boxy jako nuly a zelenými rámečky, jako ty, jsou to vlastně jen sety binárních čísel, že jo? 000 překládá do desítkové 0; 001, desetinná 1; 010 je desítkové 2, a tak dále. A tak říkáme tyto osmičkové čísla, protože tam je osm různých možností. Existují osmi různé číslice jestli máme mluví o třech kousky information-- čtení bit, zápisu bit, a execute bit. Takže teď můžete mluvit binární, desítkové, Hex, a osmičkové. Takže víte, jak komunikovat s počítače ve čtyřech různých počtu systémy, takže je to docela v pohodě. Takže, kromě osmičkový Systém povolení, je tu také symbolické povolení systém, který je mírně odlišný a obvykle se používá nejlépe použít nebo odebrat povolení přes palubu. Takže chmod A plus x soubor dodat právo vykonat na všechny tři kategorie users-- sami, vaše skupina, a svět. To navíc je přidávání součástí. Právo spustit, to je x. A skutečnost, že se vztahuje na všechny tři skupiny uživatelů by a. Takže tohle-- A Plus x-- se pravděpodobně bude být přesně stejný jako chmod 711 souboru, protože když se vrátíte a podívejte se na systému číslo osmičkové ty a sedmičky Dej nám právo na spuštění souboru. Tak to je asi stejná. A můžete použít referenční příručka pro to, co různé věci na symbolický chmod-ing struktury jsou. Zelené položky by zde kde jsou všechny zelený příklad bylo před druhým. Modrá bude modrá. Oranžový by byl oranžový. Takže můžete použít věci do vašeho skupina, k jiným, k uživateli, nebo pro každého. Můžete si dát jim číst, zápis a spouštění přístup, a můžete přidat nebo odebrat nebo přiřadit přesně sady oprávnění pomocí tohoto modelu. Jak můžeme zkontrolovat, co je to Schéma oprávnění soubor? Než jsme to změnit, je to asi dobře skutečně vědět jaké oprávnění k souboru jsou. Jeden způsob, jak to udělat, je spuštění ls ale jen vyladit to trochu. Takže když jsem typ ls pomlčka l-- to je malá l-- možná Uvidím něco takového. Vypadá to trochu záhadný, ale ta část, která nám opravdu záleží je věc na levé straně támhle. To vlastně určuje schéma oprávnění souboru. A můžete říct, pravděpodobně proto, že je dostal r je, w letech, a X je proložené. Ti nejprve three-- ignoruje první za sekundu, který budeme zdvojnásobit zpět. Ti první tři po first-- takže druhý, Třetí a čtvrté charaktery tohoto 10 řetězce znaků jsou oprávnění, která máte. Tak prý jsem si přečíst, zápis a spouštění PHP. Umím číst, psát, a spustit PHP Webdev, a já mohu číst a psát test.php. Moje skupina to může udělat. Takže zřejmě s PHP a PHP Webdev adresáře, moje skupina může zapisovat jim ale nic jiného. A svět nemůže nic dělat. Takže tyto soubory nejsou veřejně přístupné a když jsem se pokusil přístup k nim a nebyl jsem běží Apache, aby byly přístupné, pak bych si 403 chybu. Je to selhání. Snažil jsem se přístup k souboru, ale já nemáte oprávnění to udělat. A co je to první znak? No, budete pravděpodobně extrapolovat tady to d's odkazují na adresáře a pomlčka odkazuje takzvané "běžné soubory." A možná jste viděli, když nemáš snažil odstranit soubor pomocí RM. Viděli jste tajemnou zprávu "odstranit obyčejný soubor" - v tomto případě, že to bude test.php. Pravidelné soubor je prostě něco, že to není adresář. Existuje několik dalších tady, ale obecně ty jsi uvidí d's pro adresáře a nic pro první prvek. Ale to je opravdu všechno, co je k tomu. Můžete zkontrolovat soubor oprávnění pomocí ls pomlčka l, je můžete měnit pomocí chmod. A, samozřejmě, použijte these-- Změna oprávnění při prosazování tohoto MVC paradigma ochránit data na vašich webových stránkách a nedovolí uživatele na přístup ke všemu, ale pouze věci, které potřebují přistupovat aby pro vaši stránku pracovat tak, jak chcete, aby to fungovat. Jsem Doug Lloyd. To je CS50.