DOUG LLOYD: Mõnikord kui me programmeerimine me teeme asju nii levinud, et sageli ja nii palju inimesi teha sama idea-- või sama asi, et ta on oma nimi. MVC on täpselt üks selline asi. Seda nimetatakse programmeerimise paradigma. See on omamoodi nagu heade tavade mis on destilleeritud sätestatakse inimesed üritavad teha midagi. Sellisel juhul rakendab süsteem Lehekülgede et kui kasutaja keerulisema veebilehel. Ja ta on teinud seda sagedamini, et see on soovitatav, kui standard et teised inimesed võivad meeldib jälgida, ja seal on väga konkreetsete viise et keegi võiks järgida seda paradigmat. Nii, MVC on paradigma ja põhjus Me kasutame seda on abstraktne ära üksikasjad kasutaja. Mõned asjad kasutajale ei ole tegelikult vaja näha. Nad tahavad olla hea kasutaja kogemus, ja me ei pea neid pääseda iga faili eksisteerib meie veebiserver, võibolla. Võib olla mõned failid, mis on vaid kasutatud turgutada kasutaja kogemus, ja nii saame abstraktse need ära. Saame omamoodi peita nii kasutaja ei saa nendega koostööd tegema, kuid meie pages-- meie pages-- tea, kuidas nendega toime tulla ja helista neile või ehk vaja, tahab neid, või midagi sellist. Esmane motivatsioon jaoks MVC on andmete turvalisust, sest MVC tavaliselt kerkib kontekstis töötamine andmebaasidega. Ja eriti me tahad, et vältida kasutajate alates otse mõjutavad andmebaasides. Tahame teha seda kaudselt, meie filtreerimine. Või veenduge, et kõik on OK poolt Meie teeme natuke veatuvastuse või ohutuse tagamise enne kui me saadab selle andmebaasi, kus asju võiks valesti minna, võib-olla väga valesti, kui me ei ole ettevaatlikud. Nii MVC tähistab Mudel Vaata Controller. Mida kõik need tähendavad? Põhimõtteliselt mudel on oma andmebaasi. Sealt kõik olulised andmed saidile lives-- kasutajanimed, sisselogimist, paroole. Ja saab uuendada, vaadake seda, päris palju kõike sellist. Sa päringu andmebaasi, siis tahaks küsida teabe andmebaasist. See on model-- kõik andmeid, kui teie sait elab. Vaade on selline nagu kasutaja kogemus. See on lehti nad näevad pärast nad on nõutud teavet. Ehk nad esitavad oma login information-- mis nad teeksid kontroller, mis me räägime teine. Nad võibolla esitada oma sisselogimise andmeid, ja andmebaasi päringuid. Teave taotletakse ja tõmmatakse andmebaasist. Ja siis, kui kasutaja sisse logitud aastal, kui nad näevad oma kodulehekülg. See on selleks, OK? Ja siis töötleja on see, mida on nimetatakse äriloogika saidile. Ja äriloogika on üks terminitest, on omamoodi wishy-washy-- meeldi, mida see äriloogika tähendab? Põhimõtteliselt oma äri Loogika on oma PHP. Teie kasutaja ei pea otseselt näha oma PHP, kuid oma PHP on ilmselt, mis toimub saavat taotlusi andmebaasile. Nii kasutaja sisend teavet eesmärgiga, mis ühendab kontroller. Like, nad tipite kujul. Kuidas sellisel kujul protsessid teave on kontroller. See on PHP, mis on tegelikult Taotluse esitamise mudelit. Ja siis annab see mudel teabe arvates mis annab selle alla, ehk kõige paremini visualiseerida järgmiselt. Nii et siin me oleme. Siin on meil vasakul, ja meie Mudel Vaata Controller paradigma korda. Kuidas see töötab? User-- us-- teeb taotleda töötleja. Meil esitada teavet näiteks HTTP kujul. Tuginedes sellele, kontrolleri ülesanne on veenduda, et mida kasutaja on andnud ei ole midagi, mis kahjustaks mudel. Ja nii kontroller läheb veenduge, et kõik on OK. See läheb väga hoolikalt. Kui seal on mingeid vigu, siis saad lõpetada asjad nii et kasutaja ei saa, et mudeli. Aga eeldades kõik on OK ja see on kehtiv päringu kontroller päringu model-- see küsin seda teavet. Mudelit ette, et andmed lehele, mis on selleks, see saab edastada see, et Nii ja siis vaade asustada teavet taotletud mudeli. Nii näiteks, kui jutt umbes logige Facebook lehele, näiteks. Vaade oleks andmeid mis tuli välja mudeli, mis viitab oma sõpradele ja uudised toita või midagi sellist, eks? Aga sa ei näe kellegi teise. Sa oleks getting-- nii saadate päringu logite model-- vabandus mina, siis login lehele. Kasutab kontroller logini teha taotluse mudeli teha Veenduge, et teil on, kes sa ütled, et oled. Mudelit on nagu, OK, jah, sa oled, kes sa ütled, et oled, las ma annan sulle oma uudistevoo. Ma annan sulle algandmed Sinu uudistevoo seisukohal, ja seejärel seisukohale muudab ilus, töötleb seda teed et me oleme harjunud, väljapanek et teave kasutajale. Märka ühendus, mis on ei kehtinud see skeem. Ei ole otsest seost Teie ja mudel. Alati see puhver kontrollerit sisendi ja seal on puhvrisse Vaata väljundi poolele. Võibolla sa oled hea isik, ja nii võibolla ei tee mingit kahju mudel, kuid võib-olla sa ei ole. Või äkki seal on keegi, kes on pahatahtlik kasutaja, kes võibolla taha rikkuda oma andmebaasi, võibolla kustutada kõik oma andmebaasi, mis võib olla väga kallis. Ilmselt on kasutaja andmed on-- seal on väärtus, mille kasutaja andmed. Ja kui me ei pane seda puhvri tsooni vahel kasutaja ja database-- kasutaja ja model-- asju ei pruugi olla läheb nii hästi meie jaoks. Ja nii see on oluline on see paradigma, kus kasutaja saab suhelda andmebaasi, Kindlasti, kuid nad peavad minema läbi meie seda teha. Ja see on põhimõtteliselt idee MVC. See püüab rakendada andmete turvalisust. See püüab kaitsta mudel kogemata või tahtlikult kurikaelad. Mis juhtub, kui me rakendame seda paradigma? Noh, me eraldades andmed peavad meie website-- model-- loogikast mis rakendab meie veebisaidi functionality-- kontrolöri ja alates lihtsast esteetika ja lehe malle, mis sisaldavad meie kasutaja experience-- seisukohta. Mida see tähendab? Noh, see tähendab, et saate teha näeb kasutajale nähtav. Saate peita mudeli ära. Ja controllers-- kasutaja ei saa olla otseselt manipuleerida. Nad ei vaja juurdepääsu oma PHP koodi. Nad lihtsalt peavad nägema kujul kus nad saavad kirjutada kraami. Ehk kujul on eesmärgiga, kontroller on PHP, et vormi esitab, on kontroller teeb päringu mudel, mudel annab rohkem infot kuni teistsugusele seisukohale, et kuvab teavet teile. Sinu programme pääseb kõik oma äriloogika, kuid kasutajad saavad otseselt ei juurdepääsu oma äriloogika. Ja üks eriti ehk nähtav näide sellest on sul kunagi saanud 403 Forbidden viga. Kas te olete kunagi läinud web lehele ja näinud 403 Forbidden? See on omamoodi nagu 404 ei leitud. 403 Forbidden tähendab, et sa üritasid pääseda leht, mis sul ei ole juurdepääsu. Võib-olla, et sait on kasutades MVC eraldamine peita oma äriloogika, et peab serveris juba olemas, et lehekülje töötada, kuid ei tahan, et sa otse ligi. Nii võite saada 403 Forbidden viga. Ja see ei ole isegi oluline kui sa olid sisenenud. No kasutaja saab puudutada täpp PHP fail. Nad võivad puudutada vaid see üks ja see one-- üks, mis neid saab touch-- ehk saab suhelda lukustatud alla faili kaudsemalt kui kasutaja. Niisiis, me mõnikord näeme seda õigused viga, see 403 Forbidden. Kuidas muuta permissions nii et asju saab või ei saa vaadelda? Kui me seda tavaliselt on kasutada Linux käsu nimeks chmod-- C-H-mod. Selleks, vorm on päris simple-- chmod, õigused, ja mis iganes fail, mida soovite kohaldada kõnealuse muudatuse. Niisiis, äkki soovite näha midagi nagu see-- chmod 600 helpers.php. Või äkki soovite näha see-- chmod pluss x, mis sisaldab kataloogi. Oli see tähendab küll? Niisiis, seal on kaks erinevat võimalust et õigused on tavaliselt kohaldada kasutades chmod. Esimene on nn kaheksand numbrid meetod. Tavaliselt kehtib õigused to kolme erinevasse kategooriasse Kasutajate samaaegselt. Nii chmod 711 faili võimaldab teil õigus lugeda, kirjutada ja ellu fail, mis võimaldaks others-- spetsiaalselt oma grupi ja world-- ainult käivita fail. See, mida tähendab see. Esimene number on on see, mida sa saad teha, teine ​​number on mida teie grupp saab teha, ja kolmas on see, mida maailm saab teha. Igaüks, kes on kes külastavad oma lehele, mis on maailmas. Millised on need numbrid tegelikult tõlkida küll? Nii et need põhiliselt tõlkida niimoodi. Kui luba on null, midagi ei juhtu. Kui see on üks, mida saab täita file-- kui see on teie loata. Kui see on kaks, siis on võimalik kirjutada faili aga sa ei saa midagi. Kui see on kolm, siis saab kirjutada ja käivitada. Ja nii edasi, nagu näete. Ja seitse tähendab, et saate teha kõike. Miks on need nn kaheksand numbrid? Noh, kui sa arvad, siin on nagu pädevusvõrgustikel ja yeses, ja kui me mõtleme neid punane ja roheline karbid, äkki see muudab natuke selgem. Aga kui me mõtleme need punased kastid kui nulle ja roheline kaste, kui need, need on tegelikult lihtsalt komplekti kahekomponentsete numbrid, eks? 000 tõlgib koma 0; 001, koma 1; 010 on koma 2, ja nii edasi. Ja nii me kutsume neid kaheksand numbritega, kuna on kaheksa erinevat võimalust. Seal on kaheksa erinevat numbrit, kui me oleme Rääkides kolm bitti information-- loe natuke, siis kirjuta natuke, ja ellu natuke. Nüüd võite rääkida binaarne, kohaga, hex ja kaheksand. Nii et sa tead, kuidas suhelda arvutite neli erinevat number süsteemid, nii et on päris lahe. Niisiis, lisaks kaheksand luba skeemi, seal on Samuti sümboolne luba kava, mis on veidi teistsugune ja tavaliselt kasutatakse parimat taotleda või kustutada luba kogu pardal. Nii chmod pluss x faili Võib lisada õige täita kõik kolm kategooriate users-- ennast, oma rühma ja kogu maailmas. See pluss on lisades osa. Õigus teostada, see on x. Ja asjaolu, et see kehtib kõigi kolme rühma kasutajad oleks a. Nii see-- pluss x-ist on ilmselt läheb olla täpselt sama nagu chmod 711 esitada, sest kui sa lähed tagasi ja vaadata kaheksand number kava ones ja seitsmed meile õigus teostada faili. Nii et see on ilmselt sama. Ja saate seda teatmiku, mida erinevate asju sümboolne chmod-ne struktuur on. Roheline teemad siin oleks kus kõik peale rohelist värvi näiteks oli hetk tagasi. Sinine oleks sinine. Oranž oleks oranž. Nii saab taotleda asju oma rühm, teised, et kasutaja, või kõigile. Võite anda neile lugeda, kirjutada ja ellu juurdepääsu, ja te saate lisada või eemaldada või määrata täpselt komplekt load kasutades seda mudelit. Kuidas kontrollida, mida faili loata kava on? Enne kui me seda muuta, see on ilmselt hea tegelikult teame Mis Failiõiguste on. Üks viis seda teha on joosta ls aga lihtsalt näpistama seda natuke. Nii et kui ma tüüpi ls kriips ma-- see väiketähti ma-- võibolla Ma näen midagi sellist. Tundub natuke segasena, kuid osa, et me tõesti hoolivad on asju vasakul seal. See tegelikult määrab faili loa alusel. Ja saab ilmselt öelda, sest see on sain r s, W ja X vaheldumisi oleva. Need esimesed three-- ignoreerides esimene teiseks, mis me topelt tagasi. Need esimesed kolm pärast first-- nii teine, kolmandas ja neljandas tähemärki Selle 10 märgijada on õigused, mis sul on. Nii ilmselt Saan aru, kirjutada ja täita PHP. Ma ei lugeda, kirjutada ja täita PHP WebDev, ja ma ei saa lugeda ja kirjutada test.php. Minu grupp saab seda teha. Nii ilmselt koos PHP ja PHP WebDev kataloogid, Grupo kirjutada neid, kuid ei midagi muud. Ja maailm ei saa midagi teha. Nii et need failid ei ole avalikult kättesaadav ja kui ma proovisin neile ligi pääseda ja ma ei olnud Apachea teha need kättesaadavaks, siis ma saan 403 viga. See on ebaõnnestunud. Püüdsin avada faili, kuid ma ei ole õigusi seda teha. Ja mis see on esimene märk? Noh, saab ilmselt üldistusi siin, et d's viitavad kataloogid ja kriips viitab nn "tavalised failid." Ja võib-olla olete näinud seda, kui olete proovisin eemaldada faili rm. Olete näinud segasena sõnum "eemaldada tavaline fail" - sel juhul, see oleks test.php. Regulaarne fail on lihtsalt midagi see ei ole kataloog. Seal on paar teistega siin, aga üldiselt oled näeme d's kataloogid ja midagi esimest elementi. Aga see on tõesti kõik on see. Te saate vaadata faili õigusi kasutades ls kriips l, saate muuta neid kasutades chmod. Ja muidugi kasutada these-- õiguste muutmine jõustamiseks MVC paradigma kaitsta andmeid oma veebilehel ja ei võimalda kasutajad juurdepääs kõike, vaid asju, mida nad vajavad pääseda, et oma lehele töötada, kuidas sa tahad seda teha. Ma olen Doug Lloyd. See on CS50.