DOUG LLOYD: Ndonjëherë kur ne jemi programimit ne bëjmë gjëra kaq shpesh, kështu që shpesh, dhe kaq shumë njerëz bëjë të njëjtën idea-- ose e njëjtë gjë, se ajo ka një emër. MVC është pikërisht një gjë të tillë. Është quajtur një paradigmë programimit. Është lloj si një praktikat më të mira që kanë qenë të distiluar poshtë nga njerëzit duke u përpjekur për të bërë diçka. Në këtë rast, të zbatojë një sistem i faqeve që një përdorues ndërvepron me në një faqe interneti më komplekse. Dhe kjo është bërë në mënyrë që zakonisht është e rekomanduar si një standard që njerëzit e tjerë mund të donte për të ndjekur, dhe ka një grup shumë të veçantë nga mënyra që dikush mund të ndiqni këtë paradigmë. Pra, MVC është një paradigmë, dhe arsyeja ne përdorim është për detaje abstrakte larg nga përdoruesit. Disa gjëra përdoruesi me të vërtetë nuk ka nevojë për të parë. Ata vetëm duan të kenë një përvojë e mirë përdorues, dhe ne nuk kemi nevojë të kenë ato hyni në çdo skedë të vetme që ekziston në web serverin tonë, ndoshta. Nuk mund të ketë disa fotografi që janë vetëm përdoret për të forcuar user experience, dhe kështu që ne mund abstrakte ata larg. Ne mund të lloj të fshehin ato në mënyrë përdoruesi nuk mund të punojnë me ta, por tona pages-- pages-- tonë e di se si të merren me ta dhe thirrjen e tyre apo ndoshta kërkojnë, dëshiron ata, ose diçka të tillë. Motivimi kryesor për MVC është siguria e të dhënave, sepse MVC zakonisht vjen deri në Konteksti i punuar me bazat e të dhënave. Dhe në veçanti ne doni të parandaluar përdoruesit nga bazat e të dhënave që ndikojnë direkt. Ne vetëm duam të bëjmë atë në mënyrë të tërthortë, përmes filtrimit tonë. Ose duke u siguruar që gjithçka është në rregull nga na bërë pak error checking ose korrigjim bocash sigurisë para se të ta dërgojnë atë në bazën e të dhënave, ku gjërat mund të shkojnë keq, ndoshta të vërtetë të gabuar, në qoftë se ne nuk jemi të kujdesshëm. Pra, MVC qëndron për Model Shiko Controller. Çfarë secili prej tyre do të thotë? Në thelb, modeli është bazës së të dhënave juaj. Kjo është ku të gjithë të dhëna të rëndësishme për faqen tuaj përdoruesve lives--, logins, passwords. Dhe ju mund update it, i referohen asaj, shumë e shumë çdo gjë si kjo. Ju do të query një bazë të dhënash, ju do të pyesni informacion nga bazën e të dhënave. Kjo është model-- të gjitha të të dhëna ku jeton faqja e juaj. Pikëpamja është lloj i si user experience. Është faqet që ata shohin pas ata kanë kërkuar informacion. Pra, ndoshta ata të dorëzojnë information-- tyre login që ata do të bëjnë në një kontrollues, të cilat ne do të flasim në një të dytë. Ata ndoshta submit e tyre informacion login, dhe baza e të dhënave është i kërkohet. Informacioni kërkohet dhe nxorrën nga bazën e të dhënave. Dhe pastaj një herë përdorues të regjistruar në, ata e shohin faqen e tyre në shtëpi. Kjo është një pikëpamje, OK? Dhe pastaj kontrollues është ajo që është quhet logjika e biznesit e faqes tuaj. Dhe logjika e biznesit është një nga ato kushte që është lloj i shkel e washy-- pëlqen, Çfarë do të thotë logjika e biznesit? Në thelb të biznesit tuaj Logjika është PHP juaj. Përdoruesi juaj nuk ka nevojë për të parë direkt PHP tuaj, por PHP juaj është ndoshta çfarë po ndodh të jetë bërë kërkesa për bazën e të dhënave. Pra, të dhëna përdoruesi do informacioni në një pikëpamje, i cili do të integrojë një kontrollues. Si, ata do të shkruani në një formë. Si që proceset formë informacion është kontrollues. Kjo është PHP kjo është në fakt bërë kërkesën në model. Dhe pastaj modeli i jep informacion në pamje, e cila i jep atë për përdoruesit, ndoshta më të mirë visualized si më poshtë. Pra, ja ku jemi. Këtu na është në të majtë, dhe modeli ynë Marrëveshje paradigmë Shiko Controller. Si punon? Us-- user-- bën një kërkojë kontrollues. Ne paraqesë informacion të tilla si nga një formë HTTP. Bazuar në këtë, kontrollues të punë është për t'u siguruar se ajo që përdoruesi ka dhënë nuk është e diçka që do të dëmtonte modelin. Dhe kështu kontrollues do të sigurohuni që gjithçka është në rregull. Ajo do të duken shumë kujdes. Nëse ka ndonjë gabim, ajo do të ndalet gjëra në mënyrë që përdoruesit nuk mund të merrni me modelin. Por, duke marrë çdo gjë të OK dhe kjo është një pyetje e vlefshme, kontrollues do të query model-- ajo do të kërkojë atë për të dhënë informacion. Modeli do të sigurojë që informacion në një faqe që është një pikëpamje, ajo do të transmetojë atë që mënyrë, dhe pastaj pamje do populloj informacion kërkuar nga modeli. Kështu, për shembull, në qoftë se ne jemi duke folur për prerjet në Facebook faqen tuaj, për shembull. Pikëpamja do të jenë të dhënat e që doli nga modeli që i referohet miqtë tuaj dhe lajme ushqim ose gjëra të tilla, e drejtë? Por ju nuk do të shoh dikush tjetër. Ju do të jetë getting-- kështu ju të paraqesë një pyetje, ju identifikohuni për arsyetim model-- mua, ju identifikoheni në faqe. Përdor kontrollues të dhënat tuaja login për të bërë një kërkesë për modelin për të bërë i sigurt që ju jeni që ju thonë se ju jeni. Si modeli së, OK, po, ju jeni që ju thonë se ju jeni, kështu që më lejoni t'ju jap feed tuaj lajme. Unë do të ju jap të dhënat e para për ushqim tuaj lajm të parë, dhe pastaj pamje e bën atë goxha, përpunon atë në një mënyrë të që ne jemi duke përdorur për të, duke shfaqur që informacioni për përdoruesit. Vini re lidhjen që është nuk ekziston në këtë diagram. Nuk ka asnjë lidhje të drejtpërdrejtë midis jush dhe model. Ka gjithmonë kjo tampon e kontrollues në anën input, dhe ka një tampon i të parë në anën e prodhimit. Ndoshta ju jeni një të mirë Personi, dhe kështu që ndoshta ju nuk do të bëjë ndonjë dëm të model, por ndoshta ju nuk jeni. Apo ndoshta ka dikush i cili është një përdorues keqdashës që do të ndoshta duan të dëmtojë bazën e të dhënave tuaja, ndoshta fshini çdo gjë nga database tuaj, të cilat mund të jenë shumë të shtrenjta. Natyrisht, duke pasur përdorues të dhënat is-- ka vlera për të pasur të dhënat e përdoruesit. Dhe kështu që në qoftë se ne nuk e vënë këtë tampon zonë në mes të shfrytëzuesit dhe database-- përdoruesi dhe gjërat model-- nuk mund të shkojnë aq mirë për ne. Dhe kështu që është e rëndësishme për të kanë këtë paradigmë ku përdoruesit mund të ndërveprojnë me bazën e të dhënave, i sigurt, por ata duhet të kalojnë përmes nesh per ta bere. Dhe kjo është në thelb ideja me MVC. Ajo është duke u përpjekur për të zbatuar të dhënave të sigurisë. Ajo është duke u përpjekur për të mbrojtur modelin nga pa dashje apo me qëllim përdoruesit me qëllim të keq. Pra, çfarë ndodh kur ne aplikojmë këtë paradigmë? E pra, ne jemi ndarja e të dhënave kërkohet nga website-- tonë model-- nga logjika që zbaton ynë website-së functionality-- controller-- dhe nga estetikë të thjeshtë dhe faqe templates që përbëjnë tonë përdorues experience-- pamjen. Ç'do të thotë kjo? E pra, kjo do të thotë që ju mund të bëni e sheh të dukshme për përdoruesit. Ju mund të fshehin modelin larg. Dhe controllers-- përdorues ndoshta nuk mund të drejtpërdrejt të manipuluar. Ata nuk kanë nevojë për të hyrë në kodin tuaj PHP. Ata vetëm duhet të shoh një formë ku ata mund të shtypni gjëra në. Kështu që ndoshta forma është një pamje, kontrollues PHP është se forma paraqet Për të, kontrollues bën një pyetje për modelin, modeli i jep më shumë informacion në një pikëpamje të ndryshme që tregon informacion për ju. Programet tuaja mund të hyni të gjithë logjikën e biznesit tuaj, por përdoruesit e juaj nuk mund të drejtpërdrejt hyni në logjikën e biznesit tuaj. Dhe një të veçantë, ndoshta, ilustrim i dukshëm i kësaj po ju keni marrë ndonjëherë një gabim 403 ndaluar. A keni shkuar ndonjëherë në një web faqe dhe shihet 403 Forbidden? Kjo është lloj i si 404 Not Found. 403 Forbidden të thotë që ju u përpoq për të hyrë në një faqe që ju nuk keni qasje në. Ndoshta kjo faqe është duke përdorur MVC ndarje për të fshehur larg logjikën e saj të biznesit që duhet të ekzistojnë në server në mënyrë për faqe për të punuar, por nuk ka dua që ju të drejtpërdrejt qasje atë. Kështu që ju mund të merrni një gabim 403 Forbidden. Dhe kjo nuk do ta marrë parasysh në qoftë se keni qenë të regjistruar. Asnjë përdorues mund të prekin këtë fotografi dot PHP. Ata mund të prekë vetëm kjo, dhe ky one-- ai që ata mund të touch-- mbase mund të ndërveprojnë me mbyllur-down fotografi më shumë në mënyrë indirekte se përdoruesit. Pra, ne nganjëherë shohim këtë leje gabim, kjo 403 Forbidden. Si mund të ndryshojë lejet kështu se gjërat mund ose nuk mund të shihet? Kur e bëjmë këtë në mënyrë tipike është që të përdorin një Komandë Linux quajtur chmod-- C-H-mod. Për ta bërë këtë, format është shumë e simple-- chmod, lejet, dhe çdo gjë që ju doni skedar të zbatojë këtë ndryshim. Pra, ndoshta ju do të shihni diçka si this-- chmod 600 helpers.php. Apo ndoshta ju do të shihni this-- chmod një x plus që përfshin directory. Ishte do të thotë kjo pse? Pra, ka dy mënyra të ndryshme se lejet janë zakonisht aplikuar duke përdorur chmod. E para është quajtur Metoda oktal numra. Kjo zakonisht vlen leje të tri kategorive të ndryshme e përdoruesve në të njëjtën kohë. Pra, chmod 711 Dosja do të lejojë që të drejtën për të lexojnë, shkruajnë, dhe të ekzekutuar dosja juaj, do të lejojë others-- specifike grupi juaj dhe world-- për të ekzekutuar vetëm skedarin. Kjo është ajo që kjo përkthehet në. Numri i parë atje është ajo që ju mund të bëni, numri i dytë është çfarë grupi juaj mund të bëjë, dhe e treta është ajo që mund të bëjë bota. Çdokush që është duke vizituar tuaj faqe, kjo është bota. Cilat janë këto shifra në fakt përkthehet për pse? Pra, këto në thelb përkthehet si kjo. Nëse leja është zero, asgjë nuk mund të ndodhë. Në qoftë se kjo është një, ju mund të ekzekutojë file-- nëse kjo është leja juaj. Në qoftë se kjo është dy, ju mund të shkruani file por ju nuk mund të bëni ndonjë gjë tjetër. Në qoftë se kjo është tre, ju mund të shkruani dhe të ekzekutojë. Dhe kështu me radhë, si ju mund të shihni. Dhe shtatë do të thotë që ju mund të bëni çdo gjë. Pra, pse janë këto quajtur numrat oktal? E pra, në qoftë se ju mendoni rreth saj, këtu është si Noës dhe yeses, dhe në qoftë se ne mendojmë rreth tyre si kuti të kuqe dhe të gjelbër, ndoshta kjo e bën atë një pak më të qarta. Por në qoftë se ne mendojmë për ato kuti të kuqe si zero dhe kuti të gjelbër si ato, këto janë në fakt vetëm grupe i numrave binare, e drejtë? 000 përkthehet në decimal 0; 001, decimal 1; 010 është 2 decimal, dhe kështu me radhë. Dhe kështu ne e quajmë këto oktal Numrat sepse atje janë tetë mundësi të ndryshme. Ka tetë shifra të ndryshme në qoftë se ne jemi duke folur për tre pjesë të information-- Lexoni pak, shkruaj bit, dhe të ekzekutuar pak. Kështu që tani ju mund të flisni binare, decimal, magji, dhe oktal. Pra, ju e dini se si për të komunikuar me kompjutera në katër numra të ndryshëm Sistemet, kështu që kjo është pretty cool. Pra, përveç oktal Skema leje, nuk ka edhe leja simbolike skemë, e cila është pak më ndryshe dhe zakonisht është përdorur më mirë për të aplikuar apo hequr një leje të gjithë bordit. Pra, chmod një x fotografi plus mund të shtoni të drejtën për të ekzekutuar të gjitha tre kategoritë e users-- veten, grupi juaj, dhe bota. Kjo plus është pjesa shtuar. E drejta për të ekzekutuar, kjo është x. Dhe fakti se ajo vlen për të gjithë Tre grupet e përdoruesve do të jetë një. Pra this-- një x-- plus është ndoshta do të jetë saktësisht e njëjtë si chmod 711 fotografi, sepse në qoftë se ju shkoni mbrapa dhe shikoni në skemën numrin oktal, ato dhe Sevens na japin e drejta për të ekzekutuar një fotografi. Pra, kjo është ndoshta njëjtë. Dhe ju mund të përdorni këtë udhëzues referimi për çfarë gjërat e ndryshme në simbolik strukturë chmod-ing janë. Artikujt e gjelbër këtu do të jetë ku të gjithë shembull e gjelbër me ngjyrë ishte një sekondë më parë. Blu do të jetë blu. Portokalli do të jetë portokalli. Kështu që ju mund të aplikoni gjëra në tuaj grup, për të tjerët, për përdoruesit, apo për të gjithë. Ju mund të jepni atyre lexojnë, shkruaj, dhe ekzekutuar qasje, dhe ju mund të shtoni ose hiqni apo të caktojë saktësisht një grup e lejeve duke përdorur këtë model. Si mund të shikoni se çfarë është një Skema leje skedë është? Para se të ndryshuar atë, kjo është ndoshta mirë që në fakt e di çfarë lejet fotografi janë. Një mënyrë për të bërë këtë është për të kandiduar ls por vetëm shkulje atë pak. Pra, nëse unë lloji ls dash l-- kjo është një vogle l-- ndoshta Unë do të shihni diçka si kjo. Ajo duket pak i fshehtë, por pjesa që ne me të vërtetë kujdeset për është një temë në të majtë mbi atje. Që në fakt specifikon një skemë leje skedar. Dhe ju ndoshta mund të them, sepse kjo është u r s, w-së, dhe X-it interspersed. Ata trete parë duke injoruar një të parë për një të dytë, i cili ne do të dyfishtë përsëri në. Ata tre e parë pas first-- kështu i dyti, Së treti, dhe karaktere të katërt e atë varg 10 karakter janë lejet që ju keni. Kështu që me sa duket unë mund të lexoj, shkruaj, dhe ekzekutuar PHP. Unë mund të lexoj, shkruaj, dhe ekzekutojë PHP WebDev, dhe unë mund të lexojnë dhe shkruajnë test.php. Grupi im mund ta bëjë këtë. Pra, me sa duket me PHP dhe directories PHP WebDev, grupi im mund të shkruaj për ata por asgjë tjetër. Dhe bota nuk mund të bëjë asgjë. Pra, këto fotografi nuk janë të qasje publike dhe në qoftë se unë u përpoq për qasjen e tyre dhe unë nuk ishte i drejtimin Apache për t'i bërë ato të arritshme, atëherë unë do të merrni një gabim 403. Kjo është një dështim. Unë u përpoq për të hyrë në një fotografi, por unë nuk kanë leje për të bërë atë. Dhe çfarë është që karakteri i parë? E pra, ju ndoshta mund të nxirrni këtu se d's referohen directories dhe dash i referohet I ashtuquajturi "fotografi të rregullta." Dhe ndoshta keni parë këtë kur ju keni u përpoq për të hequr një skedë me RM. Ju keni parë mesazhin fshehtë "hequr fotografi të rregullt", - në këtë rast, ajo do të jetë test.php. Skedar i rregullt është vetëm diçka kjo nuk është një directory. Ka disa të tjerëve këtu, por në përgjithësi ju jeni do të shohim d's për directories dhe gjë për të elementit të parë. Por kjo është me të vërtetë e gjitha nuk është për atë. Ju mund të kontrolloni fotografi Lejet e përdorur ls dash l, ju mund të ndryshoni ato duke përdorur chmod. Dhe, sigurisht, përdorni these-- duke ndryshuar lejet për të zbatuar këtë paradigmë MVC të mbrojtur të dhënat në faqen tuaj dhe të mos lejojnë përdoruesit për të hyrë në çdo gjë, por vetëm gjëra që ata kanë nevojë për për të hyrë në mënyrë që faqen tuaj për të punuar në mënyrë që ju dëshironi që ajo të punojë. Unë jam Doug Lloyd. Kjo është CS50.