Doug LLOYD: Kartais kai mes programavimo mes darome dalykus taip paprastai, todėl Dažnai ir tiek daug žmonių daryti tą patį idea-- ar tas pats dalykas, kad ji turi pavadinimą. MVC yra tik vienas toks dalykas. Tai vadinama programavimo paradigma. Tai tarsi kaip geriausios praktikos , kurie buvo distiliuotas žemyn žmonės bando kažką daryti. Šiuo atveju, įgyvendinti puslapių sistemos kad vartotojas sąveikauja su dėl sudėtingesnio svetainėje. Ir tai daroma todėl, kad dažniausiai tai rekomenduojama kaip standartą kad kiti žmonės gali patikti laikytis, ir ten labai specifinė rinkinys būdais kad vienas galėtų sekti Ši paradigma. Taigi, "MVC yra paradigma, ir priežastis, mes naudojame ji yra abstrakčių toli informacijos nuo naudotojo. Kai kurie dalykai vartotojo nėra tikrai reikia pamatyti. Jie tiesiog nori turėti geras vartotojo patirtį, ir mums nereikia turėti juos prieiti kiekvieną failą, egzistuoja mūsų serverio, galbūt. Gali būti kai kurių failų, kurie yra tiesiog naudojamas sustiprinti vartotojo patirtį, ir todėl mes galime abstrakti tie toli. Mes galime tarsi juos paslėpti taip vartotojas negali dirbti su jais, Tačiau mūsų pages-- mūsų pages-- žinoti, kaip su jais elgtis ir jiems skambinti arba galbūt reikalauja, nori, kad jie, ar kažkas panašaus. Pagrindinis motyvacija už MVC yra duomenų saugumas, nes MVC paprastai ateina į kontekstas dirbti su duomenų bazėmis. Ir ypač mes norime užkirsti kelią vartotojams nuo tiesioginį poveikį duomenų bazėse. Mes tik norime tai daryti netiesiogiai, per mūsų filtravimo. Arba todėl įsitikinkite, kad viskas OK, kurias mums daro šiek tiek klaidų tikrinimas arba saugos korektūros, kol mes siųsti jį į duomenų bazę, kurioje dalykų gali suklysti, galbūt tikrai negerai, jei mes nesate atsargūs. Taigi MVC stendai Modelio kontrolieriaus. Ką kiekvienas iš jų reiškia? Iš esmės, modelis yra jūsų duomenų. Tai kur visi svarbius duomenis jūsų svetainėje lives-- vardai, prisijungimai, slaptažodžius. Ir jūs galite jį atnaujinti, kreiptis į jį, beveik viskas patinka. Jūs norite užklausti duomenų bazę, jums reikia užduoti informacija iš duomenų bazės. Štai model-- visas duomenys, jeigu jūsų svetainė gyvena. Vaizdas lyg vartotojas patirtis. Tai puslapių jie mato po jie paprašė informacijos. Tai gal jie pateikia jų Vartotojas informacija-- kurioje jie darytų valdytojas, kuri mes kalbame apie per sekundę. Jie gal pateikti savo Vartotojas informacija, ir duomenų yra užklausti. Informacija prašoma ir ištrauktas iš duomenų bazės. Ir tada, kai vartotojo anketa prisijungęs į, jie mato savo pagrindinį puslapį. Štai požiūris, gerai? Ir tada valdiklis yra kas vadinama verslo logika jūsų svetainę. Ir verslo logika yra vienas iš tų terminų, yra tarsi wishy-washy-- patinka, Ką verslo logika reiškia? Iš esmės savo verslą Logika yra PHP. Jūsų vartotojo nereikia tiesiogiai pamatyti savo PHP, bet jūsų PHP yra turbūt tai, kas vyksta būti padaryti užklausas į duomenų bazę. Taigi, vartotojas bus įvesties informacija siekiant, kurie bus integruoti valdiklį. Kaip, jie bus įrašyti į formą. Kaip tai forma procesai informacija yra valdiklis. Štai PHP, kas iš tikrųjų priėmimo į modelio prašymą. Ir tada modelis suteikia informacija nuomone, kuri duoda ją, vartotojas, turbūt geriausiai ryškinamos taip. Taigi čia mes esame. Štai mumis kairėje, o mūsų modelis Peržiūrėti kontrolierius paradigma išdėstymas. Kaip tai veikia? User-- us-- daro prašyti, kad duomenų valdytojas. Mes pateikti informaciją pavyzdžiui, pagal HTTP forma. Remiantis to, valdytojo darbas yra įsitikinti, kad tai, kas vartotojas suteiktas yra ne kažkas, kad būtų sugadinti modelį. Ir taip valdytojas ketina įsitikinkite, kad viskas ok. Jis ketina ieškoti labai atidžiai. Jei yra kokių nors klaidų, jis bus sustabdyti dalykus todėl vartotojas negali patekti į modelį. Tačiau darant prielaidą, kad viskas Gerai ir tai galioja užklausos, valdiklis užklausą model-- jis paprašys ją teikti informaciją. Šis modelis bus numatyta, kad informacija puslapyje Štai požiūris, jis bus perduoda jį, kad būdas, ir tada vaizdas pildo informaciją prašoma iš modelio. Taigi, pavyzdžiui, jei mes kalbame apie prisijunkite prie savo Facebook puslapyje, pavyzdžiui. Vaizdas būtų duomenys kad išėjo iš modelio, nuoroda su savo draugais ir naujienos pašarus ar stuff like that, tiesa? Bet jūs nebūtų matyti kažkieno kito. Jūs norite būti getting-- taip Jums pateikti užklausą, Jums prisijungti prie model-- pasiteisinimas man, jums prisijungti prie puslapio. Į valdiklis naudoja Jūsų prisijungimo informacija padaryti prašymą modelio padaryti Įsitikinkite, kad jūs esate, kas jums sako, kad jūs esate. Modeliu patinka, Gerai, taip, Jūs esate, kas jums sako, kad jūs esate, todėl leiskite man duoti jums savo naujienų kanalą. Aš duosiu jums pirminius duomenis Jūsų naujienų, kad mano, ir tada vaizdas daro ją gana, apdoroja ją tokiu būdu, kad mes naudojamas, rodant kad informacija vartotojui. Atkreipkite dėmesį į ryšį, kad yra ne esama šioje schemoje. Nėra tiesioginio ryšio tarp jūsų ir modelį. Visada šis buferis ant įėjimo pusę valdiklis, ir ten yra buferis peržiūrėti išėjimo pusėje. Gal esate geras asmuo, ir taip gal jūs nedarys jokios žalos Modelis, bet gal jūs ne. O gal ten kas nors kas manimi piktybinis vartotojas, kuris būtų gal norite sugadinti savo duomenų bazę, o gal ištrinti viską iš savo duomenų bazės, kurios gali būti labai brangus. Akivaizdu, turinčią vartotojo duomenų is-- ten vertė turinčią vartotojo duomenis. Ir todėl, jei mes ne įdėti šį buferį zona tarp vartotojo ir database-- vartotojas ir model-- dalykai gali būti vyksta taip gerai mums. Ir taip svarbu turėti šią paradigmą kur vartotojas gali sąveikauti su duomenų baze, tikrai, bet jie turi eiti per mus padaryti tai. Ir tai iš esmės su MVC idėja. Jis bando įgyvendinti duomenų saugumą. Jis bando apsaugoti modelį nuo netyčia arba tyčia kenkėjiškų vartotojai. Taigi, kas atsitinka, kai mes taikyti šią paradigmą? Na, mes atskirti duomenis reikalaujama iš mūsų website-- nuo logika model-- kad įgyvendina mūsų svetainės functionality-- controller-- ir nuo paprastų estetikos ir puslapyje šablonai, kurios sudaro mūsų vartotojas experience-- nuomonės. Ką tai reiškia? Na, tai reiškia, kad jūs galite padaryti peržiūrų matomas vartotojui. Galite paslėpti modelį toli. Ir controllers-- vartotojui negali gal tiesiogiai manipuliuoti. Jiems nereikia prisijungti prie savo PHP kodą. Jie tiesiog reikia pamatyti formą kur jie gali įvesti stuff. Taigi gal forma požiūris, valdiklis yra PHP, kad forma pateikia, The kontrolierius daro užklausą į modelį, modelis suteikia daugiau informacijos į kitą mano, kad rodoma informacija Jums. Jūsų programos gali prieiti visus savo verslo logikos, bet jūsų vartotojai negali tiesiogiai prieiti prie jūsų verslo logika. Ir vienas, ypač, ko gero, matoma iliustracija tai yra, jūs kada nors gavo 403 Forbidden klaidos. Ar jūs kada nors nuėjo į interneto puslapis ir vertinamas 403 Forbidden? Tai tarsi kaip 404 Not Found. 403 Uždraustasis reiškia, kad jūs bandė patekti puslapis, kad jūs neturite prieigos prie. Gal svetainė yra naudojant MVC atskyrimas slėptis savo verslo logikos, kad turi sewera tam, puslapio dirbti, bet nėra norime, kad jūs tiesiogiai prieiti prie jo. Taigi jums gali gauti 403 Uždraustąjį klaidą. Ir tai net ne klausimas jei buvo prisijungęs. Ne vartotojas gali paliesti šį dot PHP failą. Jie gali tik paliesti tai vienas, ir tai one-- vienas, kad jie gali touch-- galbūt gali sąveikauti su užrakinamos failą daugiau nei netiesiogiai vartotojui. Taigi, mes kartais pamatyti šį leidimus klaida, tai 403 draudžiamas. Kaip mes pakeisti leidimus taip kad viskas gali arba negali būti vertinamas? Kai mes tai darome paprastai yra naudoti "Linux" komanda vadinama chmod-- C-H-mod. Norėdami tai padaryti, formatas yra gana simple-- CHMOD, teises, ir kokia failą, kurį norite taikyti tą pakeitimą. Taigi, gal norite pamatyti kažką kaip this-- chmod 600 helpers.php. O gal norite pamatyti this-- chmod pliusas x, apima katalogą. Buvo tai reiškia nors? Taigi, ten du skirtingus būdus kad leidimai paprastai yra taikomas naudojant chmod. Pirmasis yra vadinamas aštuntainis numeriai metodas. Tai paprastai taikoma leidimų į tris skirtingas kategorijas vartotojų tuo pačiu metu. Taigi CHMOD 711 failas leistų jums teisę skaityti, rašyti ir vykdyti Jūsų failas, leistų others-- specialiai jūsų grupė, o world-- tik vykdyti failą. Štai, ką šis verčia. Pirmasis numeris yra yra tai, ką jūs galite padaryti, antrasis skaičius yra ką jūsų grupė gali padaryti, ir trečia yra tai, ką pasaulis gali padaryti. Bet kas, kas lankosi jūsų puslapis, tai pasaulis. Kokie šie skaičiai iš tikrųjų išversti į nors? Taigi tai iš esmės išversti, kaip šis. Jeigu leidimas yra nulis, niekas negali atsitikti. Jei jis yra vienas, galite vykdyti file-- jei tai jūsų sutikimo. Jei tai du, galite rašyti failą bet jūs negalite daryti nieko kito. Jei tai tris, galite galite rašyti ir vykdyti. Ir taip, kaip matote. Ir septyni reiškia, kad jūs galite daryti viską. Tad kodėl jie vadinami numeriai Octal? Na, jei jūs manote apie tai, čia kaip KT ir yeses, ir jei mes galvojame apie juos kaip raudonos ir žalios dėžės, Gal todėl šiek tiek aiškiau. Bet jei mes galvojame apie tuos raudonos dėžės kaip nuliai ir žaliųjų dėžės, kaip tie, tai yra iš tikrųjų tik rinkiniai iš dviejų skaičių, tiesa? 000 išsiverčia į dešimtainį 0; 001, Dešimtainė 1; 010 yra dešimtainė 2, ir pan. Ir taip mes vadiname šias Octal numeriai, nes ten Yra aštuonios skirtingos galimybės. Yra aštuoni skirtingų skaitmenų jei mes kalbame apie trijų bitai informacija-- skaityti tiek, įrašymo tiek ir vykdyti tiek. Taigi, dabar jūs galite kalbėti dvejetainis, Dešimtainis, HEX, ir aštuntainis. Taigi jūs žinote, kaip bendrauti su Kompiuteriai keturių skirtingų skaičių sistemos, kad gana kietas. Taigi, be aštuntainėje leidimo schema, ten taip pat simbolinis leidimas schema, kuri yra šiek tiek kitoks ir paprastai naudojama geriausia taikyti arba pašalinti leidimą visoje lentoje. Taigi chmod pliuso x failą pridurti teisę vykdyti visų trijų kategorijų users-- save, savo grupę, ir pasaulis. Tai plius yra pridedant dalį. Teisė vykdyti, tai x. Ir tuo, kad jis taikomas visiems trys vartotojų grupės būtų a. Taigi this-- plius x-- tikriausiai vyksta būti tokia pati, kaip chmod 711 failą, nes jei jūs einate atgal ir pažvelgti į skaičius aštuntainis schemą, tie ir septynetai duoti mums Teisė vykdyti failą. Taigi, tai tikriausiai ta pati. Ir jūs galite naudoti šią žinynas už tai, ką įvairių dalykų Simboliška CHMOD-ING struktūra. Žalia daiktų čia būtų kur visi žalios spalvos pavyzdys buvo antras prieš. Mėlynas būtų mėlynas. Oranžinė būtų oranžinės spalvos. Taigi galite kreiptis ką jūsų grupė, su kitais, naudotojui, ar visiems. Jūs galite suteikti jiems skaityti, rašyti ir vykdyti prieigą, ir jūs galite pridėti arba pašalinti arba perleisti tiksliai rinkinį apie leidimus Naudojant šį modelį. Kaip mes patikrinti kas failų leidimas schema? Prieš jį pakeisti, tai tikriausiai gerai, kad iš tikrųjų žino, ką failo leidimus. Vienas iš būdų tai padaryti yra paleisti ls bet tiesiog pritaikykite ją truputį. Taigi, jei aš tipo Ls brūkšnys l-- kad tai l-- gal mažosiomis raidėmis Aš pamatysite kažką panašaus į tai. Ji atrodo šiek tiek paslaptingas, tačiau dalis, kad mes tikrai rūpi yra ant ten kairėje dalykų. Tai iš tikrųjų nurodoma, failas leidimo schema. Ir jūs tikriausiai galite pasakyti, nes tai gavo R, W ir X-ųjų trumpo. Tie pirmieji three-- ignoruojant pirmasis sekundę, kuri mes dvigubai atgal į. Tie pirmieji trys po first-- todėl antra, trečia, ir ketvirta simbolių tos 10 simbolių eilutę yra leidimai, kad jūs turite. Taigi, matyt, aš galiu skaityti, rašyti ir vykdyti PHP. Gebu skaityti, rašyti ir vykdyti PHP WebDev, ir aš galiu skaityti ir rašyti test.php. Mano grupė gali tai padaryti. Taigi, matyt, su PHP ir PHP WebDev katalogai, mano grupė gali rašyti juos, bet nieko daugiau. Ir pasaulis negali nieko daryti. Taigi šie failai nėra viešai prieinama ir jei aš bandžiau prieiti prie jų ir nebuvau Apache būtų jas padaryti prieinamas, tada norėčiau gauti 403 klaidą. Tai nesėkmė. Bandžiau prieiti failą bet aš neturite leidimo tai padaryti. Ir kas, kad pirmasis simbolis? Na, jūs tikriausiai galite ekstrapoliuoti kad čia Kaulo -ai kreiptis į katalogus ir brūkšnys reiškia Vadinamasis "reguliarus failus." O gal jūs matėte tai, kai jūs bandė pašalinti šį failą, naudojant rm. Jūs matėte paslaptingą žinutę "pašalinti reguliariai failą" - šiuo atveju, tai būčiau test.php. Nuolatinis failas yra tiesiog kažkas tai ne katalogas. Yra daug kitų pora čia, bet paprastai jūs ketiname pamatyti d's katalogų ir nieko pirmojo elemento. Bet tai tikrai viskas yra į jį. Galite patikrinti failą Permissions naudojant ls brūkšnys l, Jūs galite pakeisti juos naudojant chmod. Ir, žinoma, naudoti these-- keisti leidimus įgyvendinti šį MVC paradigmą į apsaugoti duomenis apie savo svetainės ir neleidžia vartotojams pasiekti viską, bet tik stuff, kad jiems reikia pasiekti, kad jūsų puslapyje dirbti taip, kaip norite jį dirbti. Aš Doug Lloyd. Tai CS50.