Doug LLOYD: Dažreiz kad mēs esam programmēšana mēs darām lietas tik bieži, tāpēc bieži un tik daudz cilvēku darīt to pašu idea-- vai pats lieta, ka tas ir nosaukums. MVC ir tieši viena šāda lieta. To sauc programmēšanas paradigmu. Tas ir veida, piemēram, labākās prakses kas ir destilēts leju ar cilvēkiem, kas cenšas kaut ko darīt. Šajā gadījumā, īstenot sistēma lapām ka lietotājs mijiedarbojas ar par sarežģītāku mājas lapā. Un tas ir darīts tik bieži, ka tas ir ieteicams kā standarta ka citi cilvēki vēlētos sekot, un tur ir ļoti specifisks kopums veidos ka varētu sekot šo paradigmu. Tātad, MVC ir paradigma, un iemesls mēs izmantojam tas ir abstrakti prom detaļas no lietotāja. Dažas lietas lietotājs nav īsti nepieciešams, lai redzētu. Viņi vienkārši vēlas, lai būtu laba lietotāja pieredzi, un mums nav nepieciešams, lai tos piekļūt katru failu, kas pastāv uz mūsu tīmekļa serveri, varbūt. Tur varētu būt daži faili, kas ir tikai ko izmanto, lai pastiprinātu lietotāju pieredzi, un tāpēc mēs varam abstrakts tos prom. Mēs varam veida slēpt tos tā lietotājs nevar strādāt ar viņiem, Bet mūsu pages-- mūsu pages-- zina, kā rīkoties ar tām un viņiem piezvanīt vai varbūt ir nepieciešama, grib viņiem, vai kaut kas tamlīdzīgs. Primārā motivācija par MVC ir datu drošība, jo MVC parasti nāk atbalstīts konteksts darbu ar datu bāzēm. Un īpaši mēs vēlaties, lai liegtu lietotājiem no tieši ietekmē datu bāzēm. Mēs tikai vēlamies darīt to netieši caur mūsu filtrēšanai. Vai pārliecināties, ka viss ir OK, ko mums dara mazliet kļūdu pārbaudi vai drošības koriģēšanas, pirms mēs nosūta to datu bāzē, kur lietas var noiet greizi, varbūt īsti pareizi, ja mēs neesam uzmanīgi. Tātad MVC stendi Model View Controller. Ko katrs no šiem nozīmē? Būtībā, modelis ir jūsu datu bāzē. Tas ir, ja viss svarīgus datus par jūsu vietni lives-- lietotājvārdi, logins, paroles. Un jūs varat atjaunināt to, atsaukties uz to, diezgan daudz viss, piemēram, ka. Tu būsi vaicājumu datu bāzi, jūs lūgt informācija no datu bāzes. Tas ir model-- visi datus, ja jūsu vietā dzīvo. Skats ir veids kā lietotāju pieredzi. Tā lapas viņi redz pēc viņi ir pieprasījuši informāciju. Tātad, varbūt viņi iesniedz to login information-- ko tās darīs ar kontrolieri, kuru mēs runājam par sekundē. Viņi varbūt iesniegt savus pieteikšanās informāciju, un datu bāze tiek apšaubīts. Informācija tiek pieprasīta un velk no datu bāzes. Un tad, kad lietotājs ir pieteicies in, viņi redz savu mājas lapu. Tas ir uzskats, OK? Un tad kontrolieris ir tas, kas ir sauc par biznesa loģika jūsu vietā. Un biznesa loģika ir viens no tiem noteikumiem, kas ir sava veida wishy-washy-- patīk, Kāda biznesa loģika nozīmē? Būtībā jūsu bizness loģika ir jūsu PHP. Jūsu lietotājam nav nepieciešams tieši redzēt savu PHP, bet jūsu PHP ir iespējams, tas, kas notiek lai padarītu pieprasījumus datu bāzē. Tātad lietotājs ievade informāciju nolūkā, kas būs integrēt kontrolieris. Tāpat, tie būs ievadīts formā. Kā šajā veidlapā procesi informācija ir kontrolieris. Tas ir PHP, kas ir faktiski padarot pieprasījumu modeli. Un tad modelis sniedz informācija viedoklim, kas dod to lietotājam, iespējams, vislabāk redzamus šādi. Tātad, šeit mēs esam. Lūk mūs pa kreisi, un mūsu modelis View Controller paradigma vienošanās. Kā tas darbojas? User-- us-- padara pieprasīt kontrolieris. Mēs iesniegt informāciju piemēram, HTTP formā. Pamatojoties uz to, kontrolieris s uzdevums ir pārliecināties, ka tas, ko lietotājs ir devis nav kaut kas kaitētu modeli. Un tā kontrolieris gatavojas pārliecināties, ka viss ir OK. Tas notiek, lai izskatās ļoti uzmanīgi. Ja tur ir kādas kļūdas, tas būs apturēt lietas lai lietotājs nevar nokļūt uz modeli. Bet pieņemot, ka viss ir OK, un tas ir derīgs vaicājums, kontrolieris griezīsies model-- tas būs lūgt to sniegt informāciju. Šis modelis nodrošina, ka informācija uz lapu, kas ir uzskats, tas būs nosūta to, ka veids, un pēc tam skats būs aizpildīt informāciju pieprasīta no modeļa. Tātad, piemēram, ja mēs runājam par ieejot savā Facebook lapā, piemēram. Skats būtu dati kas iznāca no modeļa, kas atsaucas uz saviem draugiem un jaunumi barību vai sīkumi, piemēram, ka, labi? Bet jūs neredzat kāds cits. Tu būsi getting-- tā jūs iesniegt vaicājumu, jūs pieteikties uz model-- attaisnojumu man, jūs pieteikties uz lapu. Kontrolieris lietojumi Jūsu pieteikšanās informācija iesniegt pieprasījumu paraugam, lai padarītu pārliecināts, ka jūs esat, kas jūs sakāt jūs esat. Modeļa piemēram, OK, jā, Jūs esat, kas jūs sakāt jūs esat, tāpēc ļaujiet man sniegt jums savu ziņu plūsmu. Es došu jums izmantotos datus Jūsu ziņas barības viedoklim, un pēc tam skats padara to diezgan, apstrādā to tādā veidā, ka mēs esam pieraduši, parādot ka informācija, lai lietotājam. Ievērojiet savienojumu, kas ir ne esošās šajā diagrammā. Nav tieša saikne starp jums un modeli. Tur vienmēr šis buferis kontrolieris par ieejas pusē, un tur ir buferis no skats uz izejas pusi. Varbūt tu esi labs persona, un tāpēc varbūt jums nevarētu darīt jebkādu bojājumus modelis, bet varbūt jūs neesat. Vai varbūt tur ir kāds, kurš ļaunprātīgs lietotājs, kurš būtu varbūt vēlas sabojāt savu datu bāzi, varbūt izdzēst visu no datu bāzes, kas var būt ļoti dārgi. Acīmredzot, ņemot lietotāja datu is-- tur ir vērtība, kam lietotāja datus. Un tāpēc, ja mēs neesam nodot šo buferi zona starp lietotāju un database-- Lietotājam un model-- lietas iespējams, nav iet tik labi mums. Un tā tas ir svarīgi ir šo paradigmu, kur lietotājs var mijiedarboties ar datu bāzi, pārliecināts, bet tie iet caur mums lai to izdarītu. Un tas būtībā ideja ar MVC. Tā cenšas īstenot datu drošību. Tā cenšas pasargāt modeli no nejauši vai apzināti ļaunprātīgi lietotāji. Tātad, kas notiek, kad mēs izmantojam šo paradigmu? Nu, mēs esam atdalot datus pieprasa no mūsu website-- model-- no loģikas kas īsteno mūsu mājas lapas functionality-- controller-- un No vienkāršas estētiku un lapas veidnes, kas veido mūsu lietotājs experience-- viedokli. Ko tas nozīmē? Nu, tas nozīmē, ka jūs varat veikt views redzams lietotājam. Jūs varat paslēpt modeli prom. Un controllers-- lietotājam nevar varbūt tieši manipulēt. Viņiem nav nepieciešams, lai piekļūtu jūsu PHP kodu. Viņi vienkārši ir jāredz formu kur viņi var rakstīt stuff. Tātad, varbūt veidlapa ir uzskats, kontrolieris ir PHP, ka veidlapa iesniedz, tad kontrolieris padara vaicājumu paraugam, modelis dod vairāk informācijas uz citu nolūku kas parāda informāciju, lai jums. Jūsu programmas var piekļūt visu savu biznesa loģiku, bet jūsu lietotāji nevar tieši piekļūt jūsu biznesa loģiku. Un viens īpaši, iespējams, redzama ilustrācija tam tiek esat kādreiz saņēmis 403 Forbidden kļūda. Vai jūs kādreiz esat devies uz web lapa un redzējuši 403 Forbidden? Tas ir veida, piemēram, 404 Not Found. 403 Forbidden nozīmē, ka jūs mēģinājis piekļūt lapa, kas jums nav pieejami. Varbūt, ka vietne ir izmantojot MVC atdalīšana slēpt prom savu biznesa loģiku, ka vajag pastāvēt uz servera, lai lapas uz darbu, bet nav vēlas, lai jūs tieši piekļūt. Tātad jūs varētu saņemt 403 Forbidden kļūda. Un tas pat nav svarīgi ja jums bija pieteicies. Neviens lietotājs var pieskarties šo dot PHP failu. Viņi var tikai pieskarties šis viens, un šis one-- viens, ka tie var touch-- varbūt var mijiedarboties ar bloķēta uz leju failu vairāk nekā netieši lietotājam. Tātad, mēs dažreiz redzēt šo atļaujas kļūda, šis 403 Forbidden. Kā mēs mainīt atļaujas, lai ka lietas var vai nevar redzēt? Kad mēs to darām parasti ir izmantot Linux komandu sauc chmod-- C-H-mod. Lai to izdarītu, formāts ir diezgan simple-- chmod, atļaujas, un kāds fails vēlaties piemērot šīm izmaiņām. Tātad, varbūt jūs gribētu redzēt kaut ko tāpat this-- chmod 600 helpers.php. Vai varbūt jūs vēlaties redzēt this-- chmod plus x, kas ietver katalogu. Bija tas nozīmē gan? Tātad, tur ir divi dažādi veidi ka atļaujas parasti piemēro, izmantojot chmod. Pirmo sauc astotnieku numuri metode. Tas parasti attiecas atļaujas trīs dažādās kategorijās no lietotājiem, tajā pašā laikā. Tātad chmod 711 fails ļautu jums tiesības uz lasīt, rakstīt, un izpildīt Jūsu fails, ļautu others-- īpaši jūsu grupa un world-- tikai izpildīt failu. Tas, ko tas nozīmē, lai. Pirmais numurs ir ir tas, ko jūs varat darīt, Otrais numurs ir ko jūsu grupa var darīt, un trešais ir tas, ko pasaule var darīt. Ikviens, kurš apmeklē jūsu lapa, kas ir pasaule. Kādi ir šie skaitļi faktiski tulkot gan? Tātad šie būtībā tulkot kā šis. Ja atļauja ir nulle, nekas nevar notikt. Ja tas ir viens, jūs varat veikt Ekspozīcijas file-- ja tas ir jūsu atļauja. Ja tas ir divas, jūs varat rakstīt failu bet jūs nevarat darīt kaut ko citu. Ja tas ir trīs, jūs var rakstīt un izpildīt. Un tā tālāk, kā jūs varat redzēt. Un septiņi nozīmē, ka jūs varat darīt visu. Tātad, kāpēc ir šie sauc oktols numuri? Nu, ja jūs domājat par to, šeit ir tāpat kā izcilības tīklu un yeses, un, ja mēs domājam par viņiem kā sarkanā un zaļā kastes, varbūt, ka padara to nedaudz skaidrāks. Bet, ja mēs domājam par šīm sarkanajām kastes kā nullēm un zaļo lodziņiem, tiem, Tie ir faktiski tikai komplekti bināro numuru, vai ne? 000 pārveido uz decimālo 0; 001, decimālā 1; 010 ir decimal 2, un tā tālāk. Un tāpēc mēs aicinām šos astotnieku numuri, jo tur Ir astoņas dažādas iespējas. Ir astoņi dažādi cipari, ja mēs esam runājam par trim biti information-- lasīt bit, rakstīt bit, un izpildīt bit. Tātad tagad jūs varat runāt bināro, decimal, hex, un astotnieku. Tātad, jūs zināt, kā sazināties ar datori četros dažādos skaita sistēmas, tā ka ir diezgan atdzist. Tātad, turklāt astotnieku atļauja shēma, tur ir arī simboliskā atļauja shēma, kas ir nedaudz atšķirīgs un parasti tiek izmantots vislabāk piemērot vai noņemt atļauju visās jomās. Tātad chmod plus x failu var pievienot tiesības izpildīt visiem trim par users-- kategorijas sevi, savu grupu, un pasaule. Tas plus ir pievienojot daļa. Tiesības izpildīt, tas ir x. Un fakts, ka tas attiecas uz visiem trīs lietotāju grupas būtu a. Tātad this-- plus X-, iespējams, gatavojas būt tieši tāds pats kā chmod 711 failu, jo, ja jūs iet atpakaļ un ielūkoties astotnieku skaits shēmā tiem un Sevens dod mums Tiesības izpildīt failu. Tāpēc tas ir iespējams, ir tas pats. Un jūs varat izmantot šo rokasgrāmata par to, ko dažādie lietām simbolisks chmod-ing struktūra ir. Šeit būtu zaļā posteņi būt kur visi zaļā krāsā piemērs bija otrais atpakaļ. Zilais būtu zilā krāsā. Oranžā būtu oranžā krāsā. Tātad jūs varat pieteikties lietas jūsu grupa, uz citiem, lietotājam, vai uz visiem. Jūs varat dot viņiem lasīt, rakstīt, un izpildīt pieejamību, un jūs varat pievienot vai noņemt vai piešķirt tieši kopums no atļaujas, izmantojot šo modeli. Kā mēs pārbaudām, ko fails atļauja shēma? Pirms mēs to mainīt, tas ir droši vien labi zina kādi failu atļaujas ir. Viens veids, kā to izdarīt, ir, lai palaistu ls bet tikai iekniebt to mazliet. Tātad, ja es tipa ls gūstot l-- tas ir mazie l-- varbūt Tiksimies kaut kas līdzīgs šim. Tas izskatās mazliet mistisks, bet daļa, kas mums patiešām rūp ir sīkumi pa kreisi tur. Tas faktiski ir noteikts, fails atļauju shēma. Un jūs varat droši pateikt, jo tas ir got R, W, un krustiņus mijas. Tie, pirmkārt three-- ignorējot pirmā uz otru, kas mēs dubultā atpakaļ. Tie pirmie trīs pēc first-- tāpēc otrais, trešais, ceturtais un simboli Šīs 10 rakstzīmju virkne ir atļaujas, kas jums ir. Tātad acīmredzot es varu lasīt, rakstīt, un izpildīt PHP. Es varu lasīt, rakstīt, un izpildīt PHP WebDev, un es varu lasīt un rakstīt test.php. Mana grupa var izdarīt. Tātad acīmredzot ar PHP un PHP WebDev katalogi, mana grupa var rakstīt viņiem taču nekas cits. Un pasaule nevar darīt neko. Tātad šie faili nav publiski pieejama un ja es centos tiem piekļūt, un es nebiju darbojas Apache padarīt tos pieejamus, tad es varētu saņemt 403 kļūda. Tā ir neveiksme. Es centos, lai piekļūtu failu, bet es nav atļaujas, lai to izdarītu. Un kas ir tas, ka pirmais raksturs? Nu, jūs varat droši ekstrapolēt Šeit ka d's skatiet katalogi un domuzīme attiecas uz tā saukto "regulāri failus." Un varbūt jūs esat redzējuši šo, kad jūs esat mēģināja izņemt failu, izmantojot RM. Jūs esat redzējuši noslēpumains ziņu "noņemt regulāru failu" - šajā gadījumā, tas lūdzu būt test.php. Regulāra fails ir tikai kaut ko tas nav direktorija. Ir pāris citiem šeit, bet kopumā tu esi gatavojas redzēt d's katalogi un nekas pirmajam elementam. Bet tas tiešām viss notiek ar to. Jūs varat pārbaudīt failu atļaujas izmanto ls domuzīme l, Jūs varat mainīt tos, izmantojot chmod. Un, protams, izmanto these-- mainot atļaujas lai īstenotu šo MVC paradigmu uz aizsargātu datus savā mājas lapā un neļauj lietotājiem piekļūt visu, bet tikai sīkumi, kas viņiem ir nepieciešams piekļūt, lai savā lapā strādāt tā, kā jūs to vēlaties strādāt. Es esmu Doug Lloyd. Tas ir CS50.