DOUG LLOYD: Wakati mwingine wakati sisi ni programu sisi kufanya mambo ya kawaida, hivyo mara kwa mara, na hivyo watu wengi kufanya idea-- inayofanana au Jambo, kwamba ina jina. MVC ni hasa mmoja kitu kama hicho. Ni wito programu dhana. Ni aina ya kama njia bora ambayo yamekuwa distilled chini na watu kujaribu kufanya kitu. Katika kesi hiyo, kutekeleza mfumo wa kurasa kwamba mtumiaji interacts na kwenye tovuti ngumu zaidi. Na ni kosa hivyo kawaida kwamba ni ilipendekeza kama kawaida kwamba watu wengine ili kama kufuata, na kuna kuweka maalum sana ya njia kwamba mtu anaweza kufuata dhana hii. Hivyo, MVC ni dhana, na sababu tunatumia ni kwa maelezo abstract mbali kutoka kwa mtumiaji. Baadhi ya mambo mtumiaji kweli haina haja ya kuona. Wao wanataka tu kuwa na nzuri user uzoefu, na hatuna haja ya kuwa nao kupata kila faili moja kwamba ipo kwenye mtandao wetu server, labda. Huenda kuna baadhi ya files kwamba ni tu kutumika kuimarisha uzoefu user, na hivyo tunaweza abstract wale mbali. Tunaweza aina ya kujificha yao ili user hawawezi kufanya kazi pamoja nao, lakini pages-- yetu pages-- yetu kujua jinsi ya kukabiliana nao na kuwaita au labda kuhitaji, anataka yao, au kitu kama hicho. Motisha ya msingi kwa MVC ni usalama wa data, kwa sababu MVC kawaida huja juu katika mazingira ya kufanya kazi na database. Na katika sisi hasa wanataka kuzuia watumiaji kutoka moja kwa moja athari database. Sisi tu unataka kufanya hivyo moja kwa moja, kupitia filtration wetu. Au kuhakikisha kuwa kila kitu ni sawa na sisi kufanya kidogo ya kuangalia makosa au proofing usalama kabla ya sisi kutuma kwa Mbegu, ambapo mambo inaweza kwenda vibaya, labda kweli vibaya, kama sisi siyo makini. Hivyo MVC anasimama kwa Model View Mdhibiti. Je, kila moja ya haya ina maana gani? Kimsingi, mfano ni orodha yako. Ni ambapo wote taarifa muhimu kwa ajili ya tovuti yako majina ya watumiaji lives--, logins, nywila. Na unaweza taarifa hiyo, rejea yake, kila kitu pretty much kama hicho. Wewe d swala database, utaweza kuomba habari kutoka database. Hiyo ni model-- wote wa data ambapo tovuti yako anaishi. Maoni ni aina ya kama user uzoefu. Ni kurasa wanachokiona baada wao kuwa ameomba habari. Hivyo labda wao kuwasilisha kuingia yao information-- ambayo watafanya katika mtawala, ambayo tutaweza majadiliano juu katika pili. Wao labda kuwasilisha yao Maelezo kuingia, na database ni aliuliza. Taarifa ni ombi na vunjwa kutoka orodha. Na kisha mara moja mtumiaji watumiaji katika, wanaona ukurasa wa nyumba zao. Hiyo ni maoni, sawa? Na kisha mtawala ni nini aitwaye mantiki ya biashara ya tovuti yako. Na mantiki ya biashara ni moja ya sheria hizo kuwa ni aina ya wishy-washy-- kama, nini mantiki ya biashara na maana? Kimsingi biashara yako mantiki ni PHP yako. User yako haina haja kwa moja kwa moja kuona PHP yako, lakini PHP yako pengine ni nini kinaendelea kuwa maamuzi maombi na database. Hivyo mtumiaji mapenzi pembejeo habari katika mtazamo, ambayo itakuwa kuunganisha mtawala. Kama, wao itabidi aina katika fomu. Jinsi kwamba taratibu fomu kampuni ni mtawala. Hiyo ni PHP hiyo ni kweli kufanya ombi kwa mfano. Na kisha mfano inatoa Maelezo ya maoni, ambayo inatoa ni kwa mtumiaji, labda bora visualized kama ifuatavyo. Hivyo hapa sisi ni. Hapa ni yetu juu ya kushoto, na Model wetu View Mdhibiti dhana utaratibu. Jinsi gani kazi? Us-- user-- hufanya kuomba kwa mtawala. Sisi kuwasilisha taarifa kama vile kwa namna HTTP. Kulingana na kwamba, mtawala wa kazi ni kuhakikisha kwamba kile user amewapa si kitu ambacho ingekuwa kuharibu mfano wa kuigwa. Na hivyo mtawala kinaendelea kuhakikisha kwamba kila kitu ni sawa. Ni kwenda kuangalia kwa makini sana. Kama kuna makosa yoyote, kutakuwa na kuacha mambo hivyo mtumiaji hawawezi kupata mfano wa kuigwa. Lakini kuchukua kila kitu OK na ni swala halali, mtawala swala model-- kutakuwa na kuuliza ni kutoa taarifa. Mfano itatoa kwamba Maelezo ya ukurasa hiyo ni maoni, kutakuwa na kusambaza ni kwamba njia, na kisha mtazamo itakuwa na idadi ya maelezo ombi kutoka mfano wa kuigwa. Hivyo, kwa mfano, kama tunazungumzia kuhusu magogo katika ukurasa wako Facebook, kwa mfano. Mtazamo itakuwa data waliotoka mfano kwamba inahusu rafiki yako na habari kulisha au mambo kama hayo, haki? Lakini bila kuona mtu mwingine. Wewe d kuwa getting-- hivyo kuwasilisha swala, wewe kuingia kwa kisingizio model-- mimi, wewe kuingia kwa ukurasa. Matumizi mtawala Maelezo yako ya kuingia kufanya ombi kwa mfano kufanya uhakika kuwa wewe ni nani kusema wewe ni. Mfano wa kama, sawa, ndiyo, wewe ni nani kusema wewe ni, hivyo nikupe habari kulisha yako. Mimi nitakupa takwimu ghafi kwa kulisha habari yako kwa mtazamo, na kisha mtazamo inafanya warembo, michakato hivyo kwa njia kwamba sisi ni kutumika, kwa kuonyesha kwamba taarifa kwa mtumiaji. Taarifa hiyo ni uhusiano si zilizopo kwenye mchoro huu. Hakuna uhusiano wa moja kati ya wewe na mfano. Kuna daima buffer hii ya mtawala upande pembejeo, na kuna buffer ya kuona upande pato. Labda wewe ni vizuri mtu, na hivyo labda wewe bila kufanya uharibifu wowote kwa mfano, lakini labda wewe si. Au labda kuna mtu ambaye ni makusudi mtumiaji ambaye hakutaka labda wanataka kuharibu Mbegu yako, labda kufuta kila kitu kutoka orodha yako, ambayo inaweza kuwa ghali sana. Ni wazi, kuwa user data is-- kuna thamani kwa kuwa data ya mtumiaji. Na hivyo kama hatukuwa kuweka buffer hii zone kati ya mtumiaji na database-- user na mambo model-- wanaweza kuwa kwenda vizuri kwa ajili yetu. Na hivyo ni muhimu kwa na dhana hii ambapo user unaweza kuingiliana na Mbegu, uhakika, lakini wao kwenda kupitia kwetu kufanya hivyo. Na kwamba kimsingi wazo na MVC. Ni kujaribu kutekeleza usalama wa data. Ni kujaribu kulinda mfano kutoka inadvertently au kwa makusudi watumiaji hatarishi. Hivyo kile kinachotokea wakati sisi kuomba dhana hii? Naam, sisi ni kutenganisha data required kutoka website-- yetu model-- kutoka mantiki kwamba zana tovuti yetu ya functionality-- controller-- na kutoka aesthetics rahisi na ukurasa templates kuwa wanaunda yetu user experience-- maoni. Hii ina maana gani? Vizuri, ina maana unaweza kufanya maoni inayoonekana kwa mtumiaji. Unaweza kuficha mfano mbali. Na controllers-- mtumiaji hawezi labda moja kwa moja kuendesha. Hawana haja ya kupata kanuni PHP yako. Wao tu haja ya kuona fomu ambapo wanaweza aina ya mambo katika. Hivyo labda fomu ni maoni, mtawala ni PHP kwamba fomu elekeza kwa, mtawala hufanya swala mfano, mfano anatoa taarifa zaidi kwa mtazamo tofauti kwamba maonyesho habari na wewe. Mipango wako wanaweza kupata yote ya biashara mantiki yako, lakini watumiaji yako hawezi moja kwa moja kupata mantiki ya biashara yako. Na moja hasa, pengine, inayoonekana mfano wa hii ni wameweza milele kupokea 403 makosa Haramu. Je, umewahi kwenda kwa mtandao ukurasa na kuonekana 403 Haramu? Ni aina ya kama 404 Haukupatikana. 403 Haramu ina maana alijaribu kupata ukurasa kwamba huna upatikanaji wa. Labda tovuti ambayo ni kutumia MVC kujitenga kujificha mbali biashara mantiki yake kwamba inahitaji kuwepo kwenye kompyuta ili kwa ukurasa wa kufanya kazi, lakini hana nataka wewe moja kwa moja kupata huduma hiyo. Hivyo unaweza kupata 403 Haramu makosa. Na bila hata jambo kama ungekuwa umeingia. Hakuna mtumiaji anaweza kugusa hii nukta PHP faili. Wanaweza tu kugusa hii moja, na one-- hii moja kwamba wanaweza touch-- labda unaweza kuingiliana na imefungwa-chini faili moja kwa moja zaidi ya mtumiaji. Kwa hiyo, sisi wakati mwingine kuona ruhusa hii makosa, hii 403 Haramu. Je, sisi mabadiliko ya ruhusa ili kwamba mambo yanaweza au hauwezi kuonekana? Wakati sisi kufanya hivyo kwa kawaida ni kutumia Linux amri inayoitwa chmod-- C-H-Mod. Kwa kufanya hivyo, muundo ni mzuri simple-- chmod, ruhusa, na chochote faili unataka kuomba kwamba mabadiliko ya. Kwa hiyo, labda utaweza kuona kitu kama hii chmod 600 helpers.php. Au labda utaweza kuona Haya chmod pamoja na x kuwa ni pamoja na directory. Ilikuwa Hii inamaanisha ingawa? Hivyo, kuna njia mbili tofauti kwamba ruhusa ni kawaida kutumika kwa kutumia chmod. Kwanza inaitwa octal idadi mbinu. Hii kwa kawaida inatumika ruhusa kwa makundi matatu tofauti ya watumiaji kwa wakati mmoja. Hivyo chmod 711 faili ingeweza kuruhusu wewe Haki ya kusoma, kuandika, na nitafanya file yako, ingeweza kuruhusu others-- mahsusi kundi lako na world-- kwa tu nitafanya faili. Hiyo ni nini hii inasababisha na. Idadi ya kwanza huko ni nini unaweza kufanya, idadi ya pili ni nini kikundi anaweza kufanya, na wa tatu ni nini dunia anaweza kufanya. Mtu yeyote ambaye ni kutembelea yako ukurasa, hiyo ni dunia. Je, ni namba hizi kweli kutafsiri kwa ingawa? Basi hizi kimsingi kutafsiri kama hii. Kama ruhusa ni sifuri, hakuna kinachoweza kutokea. Kama ni moja, unaweza kutekeleza file-- kama hiyo idhini yako. Kama ni mbili, unaweza kuandika faili lakini huwezi kufanya kitu kingine chochote. Kama ni tatu, Unaweza kuandika na kutekeleza. Na kadhalika, kama unaweza kuona. Na saba ina maana unaweza kufanya kila kitu. Hivyo kwa nini ni hizi inaitwa idadi octal? Naam, kama wewe kufikiri juu yake, hapa ni kama noes na yeses, na kama tunafikiri kuhusu wao kama masanduku nyekundu na kijani, labda kwamba inafanya wazi kidogo. Lakini kama sisi kufikiri juu ya masanduku wale nyekundu kama zeros na masanduku ya kijani kama zile, hizi ni kweli seti tu ya idadi binary, sawa? 000 inasababisha kwa decimal 0; 001, alisema 1; 010 ni 2 alisema, na kadhalika. Na hivyo sisi kuwaita hawa octal nambari kwa sababu kuna uwezekano nane tofauti. Kuna nane tarakimu tofauti kama tuko kuzungumza juu tatu vipande vya information-- kusoma kidogo, kuandika kidogo, na kutekeleza kidogo. Hivyo sasa unaweza kusema mapacha, alisema, hex, na octal. Hivyo unajua jinsi ya kuwasiliana na kompyuta katika nne idadi tofauti mifumo, hivyo hiyo ni pretty cool. Hivyo, badala ya octal mpango ruhusa, kuna pia ruhusa ya mfano mpango, ambayo ni tofauti kidogo na kwa kawaida hutumika bora kuomba au kuondoa ruhusa katika bodi. Hivyo chmod pamoja na x faili inaweza kuongeza haki kutekeleza kwa wote watatu makundi ya users-- mwenyewe, kundi lako, na ulimwengu. Pamoja na kwamba ni sehemu ya kuongeza. Haki ya kutekeleza, hiyo ni x. Na ukweli kwamba inatumika kwa wote makundi matatu ya watumiaji itakuwa a. Hivyo Haya pamoja na x-- pengine ni kwenda kuwa sawa kama chmod 711 faili, kwa sababu kama wewe kurudi nyuma na kuangalia octal idadi mpango, ndio na sevens kutupa Haki ya kutekeleza faili. Hivyo hii pengine ni sawa. Na unaweza kutumia hii rejea mwongozo kwa nini mambo mbalimbali katika ishara chmod-ing muundo ni. Vitu ya kijani hapa itakuwa ambapo kijani mfano yote rangi alikuwa wa pili iliyopita. Bluu itakuwa bluu. Machungwa itakuwa machungwa. Hivyo unaweza kuomba mambo ya yako kundi, kwa wengine, kwa mtumiaji, au kwa kila mtu. Unaweza kuwapa kusoma, kuandika, na nitafanya kupata, na unaweza kuongeza au kuondoa au hawawajui hasa kuweka ya ruhusa kwa kutumia mtindo huu. Je, sisi kuangalia nini Mpango faili ruhusa ni? Kabla ya mabadiliko hayo, ni pengine nzuri ya kweli kujua nini ruhusa faili ni. Njia moja ya kufanya hivyo ni kukimbia ls lakini tu tweak ni kidogo. Hivyo kama mimi aina ls dash l-- hiyo ni ndogo l-- labda Mimi utaona kitu kama hiki. Inaonekana kidogo cryptic, lakini sehemu kwamba sisi kweli huduma kuhusu ni mambo upande wa kushoto zaidi ya hapo. Kwamba kweli bayana Mpango faili ruhusa. Na pengine unaweza kusema kwa sababu ni got r wa, w, na x ya Kukifuatiwa. Wale three-- kwanza kupuuza moja kwanza kwa ajili ya pili, ambayo tutaweza mara mbili nyuma ya. Wale wa kwanza tatu baada ya first-- hivyo wa pili, tatu, na wahusika wa nne ya kwamba kamba 10 tabia ni ruhusa kwamba una. Hivyo inaonekana siwezi kusoma, kuandika, na nitafanya PHP. Siwezi kusoma, kuandika, na kutekeleza PHP WebDev, na ninaweza kusoma na kuandika test.php. Kundi yangu unaweza kufanya hivyo. Hivyo inaonekana na PHP na PHP WebDev directories, kundi yangu unaweza kuandika kwa nao lakini kitu kingine. Na dunia hawezi kufanya kitu chochote. Hivyo mafaili haya si hadharani kupatikana na kama mimi walijaribu kuzipata na sikuwa mbio Apache ili kuwafanya kupatikana, basi napenda kupata 403 makosa. Ni kushindwa. Nilijaribu kupata faili lakini mimi hawana ruhusa ya kufanya hivyo. Na nini hicho tabia ya kwanza? Naam, pengine unaweza extrapolate hapa kwamba d's rejea directories na dash inahusu kinachojulikana "mara kwa mara mafaili." Na labda wameweza kuona hii wakati wewe wameweza alijaribu kuondoa faili kwa kutumia rm. Wameweza kuona ujumbe cryptic "kuondoa faili mara kwa mara" - katika kesi hii, d kuwa test.php. Mara kwa mara file ni tu kitu si kwamba directory. Kuna michache ya wengine hapa, lakini kwa ujumla uko kwenda kuona d's kwa directories na chochote kwa kipengele kwanza. Lakini hiyo ni kweli wote kuna hiyo. Unaweza kuangalia faili ruhusa kutumia ls dash l, unaweza mabadiliko yao kwa kutumia chmod. Na, bila shaka, kutumia these-- kubadilisha ruhusa kutekeleza hii dhana MVC kwa kulinda data kwenye tovuti yako na si kuruhusu watumiaji kupata kila kitu, lakini tu mambo ambayo wanahitaji kupata ili kwa ukurasa wako kufanya kazi kwa njia unataka kufanya kazi. Mimi nina Doug Lloyd. Hii ni CS50.