DOUG LLOYD: Stundum þegar við erum forritun við gerum hlutina svo algengt, svo oft, og svo margir gera það sama idea-- eða sama hlutur, að það hefur nafn. MVC er einmitt einn slíkur hlutur. Það er kallað forritun fyrirmynd. Það er tegund af eins og bestu starfsvenjur sem hafa verið eimað niður af fólki að reyna að gera eitthvað. Í þessu tilviki, innleiða kerfi síður að notandi samskipti við á flóknari vefsíðu. Og það er gert svo algengt að það er mælt með sem staðall að annað fólk gæti eins og til að fylgja, og það er mjög sérstakur setja af leiðum að eitt gat fylgja þessari hugmyndafræði. Svo, MVC er fyrirmynd, og ástæðan við notum það er að óhlutbundin burtu upplýsingar frá notandanum. Sumir hlutir sem notandinn er í raun ekki þurfa að sjá. Þeir vilja bara að hafa góð reynsla notandi, og við þurfum ekki að hafa þá aðgang hvert einasta skrá sem er til staðar á vefþjóninum okkar, kannski. Það gæti verið sumum skrár sem eru bara er notað til að styrkja upplifun notenda, og svo við getum ágrip þeim í burtu. Við getum konar fela þá svo notandinn getur ekki vinna með þeim, en okkar pages-- pages-- okkar vita hvernig á að bregðast við þeim og kalla þá eða kannski þurfa, vill þá, eða eitthvað svoleiðis. Aðal hvatning fyrir MVC er öryggi gagna, vegna MVC kemur yfirleitt upp í samhengi að vinna með gagnagrunna. Einkum vér langar að koma í veg fyrir notendur frá beint hafa áhrif gagnagrunna. Við viljum bara að gera það óbeint, með síun okkar. Eða að tryggja að allt er í lagi með okkur að gera smá stöðva villa eða öryggi sönnun áður en við senda það til í dag, þar sem það gæti farið úrskeiðis, kannski mjög rangt, ef við erum ekki varkár. Svo MVC stendur fyrir Model View Controller. Hvað gera hvert þetta þýtt? Í grundvallaratriðum, líkan er gagnagrunnur. Það er þar sem allar mikilvæg gögn fyrir síðuna þína lives-- notendanöfn, tenging, lykilorð. Og þú getur uppfært það, vísa til þess, nánast allt svona. Þú vilt fyrirspurn í gagnagrunn, vilt þú spyrja Upplýsingar úr gagnagrunni. Það er model-- allt í gögn hvar á síðuna þína býr. Útsýnið er góður af eins og notandi reynsla. Það er síður þeir sjá eftir þeir hafa óskað eftir upplýsingum. Svo kannski þeir sendu tenging information-- þeirra sem þeir myndu gera í stýringu, sem við munum tala um í öðrum. Þeir leggja kannski þeirra tenging upplýsingar, og gagnagrunnurinn er fyrirspurn. Óskað er eftir upplýsingum og dreginn úr gagnagrunninum. Og þá þegar notandi er innskráður í, þeir sjá heimasíðu þeirra. Það er skoðun, allt í lagi? Og þá er stjórnandi sem er heitir fyrirtæki rökfræði á síðuna þína. Og viðskipti rökfræði er einn af þeim hugtökum sem er tegund af wishy-washy-- eins, hvað þýðir fyrirtæki rökfræði meina? Í grundvallaratriðum fyrirtæki þitt rökfræði er PHP þinn. Notandi þarf ekki að beint að sjá PHP þinn, en PHP er líklega hvað er að gerast að vera að gera beiðnir til gagnagrunninum. Þannig að notandi vilji inntak upplýsingar í því skyni, sem mun samþætta stjórnandi. Eins, þeir slá í form. Hvernig sem mynda ferli upplýsingar er stjórnandi. Það er PHP sem er í raun gera beiðni til líkan. Og þá gefur líkanið upplýsingar til að skoða, sem gefur það til notenda, kannski best visualized eins og hér segir. Svo hér erum við. Hér er okkur á vinstri og Model okkar View Controller hugmyndafræði fyrirkomulag. Hvernig virkar það? The user-- us-- gerir óskað eftir að stjórnandi. Við leggja fram upplýsingar svo sem með því HTTP formi. Byggist á því, að stjórnandi er starf er að ganga úr skugga um að það sem notandinn hefur gefið er ekki eitthvað sem myndi skaða líkan. Og svo stjórnandi er að fara að ganga úr skugga um að allt er í lagi. Það er að fara að líta mjög vel. Ef það er einhverjar villur, verður það að hætta það þannig að notandi getur ekki fá til the líkan. En miðað við allt er OK og það er gild fyrirspurn, stjórnandi mun fyrirspurn model-- það mun biðja hana að veita upplýsingar. Líkanið gefur að upplýsingar á síðu sem er útsýni, það verður að senda það sem leið, og þá skoða mun byggja á upplýsingum óskað er eftir frá líkaninu. Svo, til dæmis, ef við erum að tala um að skrá þig inn Facebook síðuna þína, til dæmis. Útsýnið væri gögnin sem kom út úr líkaninu sem er átt við vini þína og fréttir fæða eða eitthvað svoleiðis, ekki satt? En þú myndir ekki sjá einhver annar er. Þú vilt vera getting-- svo þú sendir inn fyrirspurn, þú þig inn á model-- afsökun mér, skráðu þig inn á síðuna. The stjórnandi notar innskráningarupplýsingarnar að leggja fram beiðni til líkan til að gera viss um að þú ert sem þú segir að þú ert. Eins og líkan er, OK, já, þú ert sem þú segir að þú ert, svo láta mig gefa þér fréttastraumi þína. Ég skal gefa þér hrár gögn fyrir Fréttir fæða til að skoða, og þá útsýnið gerir það falleg, vinnur það á þann hátt sem við erum að nota til, sýna að upplýsingar til notandans. Takið eftir tengingu sem er ekki fyrirliggjandi á þessari skýringamynd. Það er engin bein tenging milli þín og fyrirmynd. Það er alltaf þessi biðminni af stjórnandi á inngangshiiðinni, og það er biðminni af skoða á framleiðslu hlið. Kannski þú ert góður manneskja, og svo kannski þú myndi ekki gera fyrir skemmdir á fyrirmynd, en kannski þú ert ekki. Eða kannski er það einhver sem er a illgjarn notandi sem myndi kannski vilt skaða gagnagrunninn, kannski eyða öllu úr gagnasafninu, sem gæti verið mjög dýrt. Vitanlega, hafa gögn notanda is-- það er gildi til að hafa gögn notenda. Og svo ef við ekki setja þessa biðminni svæði milli notanda og database-- notandi og model-- það gæti ekki verið að fara svo vel fyrir okkur. Og svo er það mikilvægt að hafa þessa hugmyndafræði hvar notandinn getur samskipti við gagnagrunninn, viss, en þeir verða að fara í gegnum okkur að gera það. Og það er í rauninni hugmynd með MVC. Það er að reyna að innleiða öryggi gagna. Það er að reyna að vernda líkan frá óvart eða viljandi illgjarn notendur. Svo hvað gerist þegar við að beita þessari hugmyndafræði? Jæja, við erum að aðgreina gögn Krafist website-- okkar sem model-- frá rökfræði sem útfærir website vors functionality-- á controller-- og frá einföldum fagurfræði og síðuna sniðmát sem samanstanda okkar Notendur experience-- útsýnisins. Hvað þýðir þetta? Jæja, það þýðir að þú getur gert views sýnilegt notandanum. Hægt er að fela fyrirmynd burtu. Og controllers-- notanda getur ekki kannski beint að hagræða. Þeir þurfa ekki að opna PHP kóðann þinn. Þeir þurfa bara að sjá mynd þar sem þeir geta slegið efni í. Svo kannski er mynd útsýni, stjórnandi er PHP sem form leggur til, að stjórnandi gerir fyrirspurn í líkanið líkanið gefur meiri upplýsingar til aðra sýn sem birtir upplýsingar um þig. Forrit geta nálgast öll viðskipti rökfræði þinni, en notendur þínir geta ekki beint aðgang viðskipti rökfræði. Og eitt sérstaklega, ef til vill, sýnileg dæmi um þetta er þú hefur nokkurn tíma fengið a 403 Forbidden villa. Hefur þú einhvern tíma farið að vefnum síðu og séð 403 Forbidden? Það er tegund af eins og 404 Not Found. 403 Forbidden þýðir að þú reyndir að fá aðgang síða sem þú hefur ekki aðgang að. Kannski er þessi síða nota MVC aðskilnað til að fela burt viðskipti rökfræði sem þarf að vera til á þjóninum til fyrir síðu til að vinna, en ekki vilt þú að beint opna það. Svo þú might fá a 403 Forbidden villa. Og það myndi ekki einu sinni máli ef þú varst innskráður. Enginn notandi getur snerta þetta punktur PHP skrá. Þeir geta aðeins snerta þetta, og þetta one-- sá að þeir geta touch-- kannski getur samskipti við læst niður skrá fleiri óbeint en þeirra sem nota. Svo sjáum við stundum þetta heimildir villa, þetta 403 Forbidden. Hvernig eigum við að breyta heimildum svo sem það getur eða getur ekki séð? Þegar við gerum þetta er yfirleitt að nota a Linux skipun sem kallast chmod-- C-H-mod. Til að gera þetta, the snið er nokkuð simple-- chmod, heimildir, og hvað skráin sem þú vilt að beita þeirri breytingu á. Svo, kannski þú vilt sjá eitthvað eins this-- chmod 600 helpers.php. Eða kannski þú vilt sjá this-- chmod plús x sem felur skrá. Var þýðir þetta þó? Svo, það er tvær mismunandi leiðir sem heimildir eru yfirleitt beitt með chmod. Í fyrsta lagi er kallað octal tölur aðferð. Þetta á yfirleitt heimildir að þremur mismunandi flokkum notenda á sama tíma. Svo chmod 711 skrá myndi leyfa þér rétt að lesa, skrifa og framkvæma skráin, myndi leyfa others-- sérstaklega hópurinn og world-- að aðeins framkvæma hana. Það er það sem þetta þýðir að. Fyrsta númerið það er það sem þú getur gert, annað númer er hvaða hópur getur gert, og þriðja er það sem heimurinn getur gert. Hver sem er að fara á síðuna síðu, það er heimurinn. Hvað eru þessar tölur reyndar þýða að þó? Svo þetta í rauninni þýða svona. Ef leyfi er núll, ekkert getur gerst. Ef það er eitt, getur þú framkvæma file-- ef það er þitt leyfi. Ef það er tveir, þú getur skrifað skrána en þú getur ekki gert neitt annað. Ef það er þrjú, þú getur skrifað og framkvæma. Og svo framvegis, eins og þú sérð. Og sjö þýðir að þú getur gert allt. Svo hvers vegna eru þessir kallaðir áttunda- tölur? Jæja, ef þú hugsar um það, hér er eins noes og yeses, og ef við hugsum um þá eins rauðum og grænum kassa, kannski gerir það svolítið skýrari. En ef við hugsum um þá rauðu reitunum sem núll og græna reiti sem sjálfur, þetta eru í raun bara setur tvöfaldur tölur, ekki satt? 000 þýðir í fjölda 0; 001, aukastaf 1; 010 er aukastaf 2, og svo framvegis. Og svo við köllum þetta áttunda- tölur vegna þess að það eru átta mismunandi möguleikar. Það eru átta mismunandi tölunum ef við erum að tala um þrjú bita af information-- sem lesa hluti, sem skrifa bita, og framkvæma hluti. Svo nú er hægt að tala tvöfaldur, aukastaf, álög, og octal. Svo þú veist hvernig á að hafa samskipti við tölvur í fjórum mismunandi fjölda kerfi, svo það er laglegur kaldur. Svo, auk áttunda- leyfi kerfi, það er einnig táknræn leyfi kerfi, sem er aðeins öðruvísi og yfirleitt er notað besta til að beita eða fjarlægja leyfi yfir the borð. Svo chmod plús x skrá gæti bætt rétt að framkvæma til öll þrjú flokkar users-- sjálfur, hópurinn, og heimurinn. Það plús er að bæta hluti. Rétturinn til að framkvæma, það er x. Og sú staðreynd að það á við um alla þrír hópar notenda væri a. Svo this-- plús x-- er líklega að fara að vera nákvæmlega sú sama og chmod 711 skrá, því ef þú ferð aftur og líta á octal númer kerfi, sjálfur og Sevens gefa okkur Rétturinn til að framkvæma hana. Svo er þetta líklega það sama. Og þú getur notað þetta tilvísun handbók fyrir það ýmsir hlutir í táknræn chmod-Ing uppbyggingu eru. Græna atriði hér væri þar sem allar græna lit. dæmi var annað síðan. Bláa væri blár. The appelsína væri appelsína. Svo þú getur sótt það til þín hóp, til annarra, til notanda, eða til allra. Þú getur gefið þeim að lesa, skrifa og framkvæma aðgang, og þú getur bætt við eða fjarlægja eða framselja einmitt sett á heimildir með þessa tegund. Hvernig athuga við hvað skrá leyfi kerfi er? Áður en við að breyta því, það er sennilega gott að raunverulega vita hvað skráarréttindi eru. Ein leið til að gera þetta er að keyra LS en bara klip það svolítið. Svo ef ég tegund LS þjóta l-- það er lágstafir l-- kannski Ég sé eitthvað eins og this. Það lítur svolítið dulinn, en sá hluti sem við í raun sama um er efni á vinstri þarna. Sem í raun skilgreinir skrá leyfi kerfi. Og þú geta sennilega sagt vegna þess að það er fékk r er, W ', og X er fléttað. Þá fyrst three-- hunsa fyrst einn fyrir annað, sem við munum tvöfalda aftur. Þeir fyrstu þrjú eftir sem first-- svo annað, þriðja og fjórða stafir þeirrar 10 eðli band eru heimildir sem þú hefur. Svo virðist ég er að lesa, skrifa og framkvæma PHP. Ég get lesið, skrifað og framkvæma PHP WebDev, og ég get lesið og skrifað test.php. Hópurinn minn getur gert þetta. Svo virðist með PHP og PHP WebDev framkvæmdarstjóra, hópurinn minn getur skrifað þá en ekkert annað. Og heimurinn getur ekki gert neitt. Svo þessar skrár eru ekki aðgengileg almenningi og ef ég reyndi að aðgang að þeim og ég var ekki keyra Apache til að gera þær aðgengilegar, þá myndi ég fá 403 villa. Það er bilun. Ég reyndi að fá aðgang að skrá en ég hefur ekki heimildir til að gera það. Og hvað er það fyrsta staf? Jæja, getur þú sennilega framreikna hér að d's vísa til framkvæmdarstjóra og þjóta vísar til Svonefnd "reglulega skrár." Og kannski þú hefur séð þetta þegar þú hefur reyndi að fjarlægja skrá með RM. Þú hefur séð dulinn skilaboð "fjarlægja reglulega skrá" - í þessu tilviki, það væri test.php. Venjulegur skrá er bara eitthvað það er ekki skrá. There ert a par af öðrum hér, en almennt þú ert fara að sjá d's fyrir framkvæmdarstjóra og ekkert í fyrsta frumefni. En það er í raun allt það er til það. Þú getur athugað skrá heimildir sem nota ls þjóta l, þú getur breytt þeim að nota chmod. Og, auðvitað, nota these-- breyta heimildir til að framfylgja þessari MVC fyrirmynd að vernda gögnin á vefsvæði þínu og ekki leyfa notendum til að fá aðgang allt, en aðeins efni sem þeir þurfa til að fá aðgang til þess að síðunni þinni að vinna eins og þú vilt það til vinna. Ég er Doug Lloyd. Þetta er CS50.