Doug LLOYD: Kultant meta aħna qed ipprogrammar nagħmlu l-affarijiet hekk komunement, hekk spiss, u tant nies jagħmlu l-istess idea-- jew l-istess ħaġa, li għandu l-isem. MVC huwa eżattament waħda tali ħaġa. Huwa sejjaħ paradigma programmazzjoni. Huwa tip simili l-aħjar prattiki li jkunu ġew distillati isfel minn persuni li ppruvaw jagħmlu xi ħaġa. F'dan il-każ, timplimenta sistema ta 'paġni li utent jinteraġixxi ma fuq websajt aktar kumplessi. U dan isir hekk komunement li huwa rakkomandat bħala standard li nies oħra tista 'tixtieq li jsegwu, u hemm sett speċifiku ħafna ta 'modi li wieħed jista 'jsegwi dan paradigma. Allura, MVC huwa paradigma, u r-raġuni nużaw huwa li d-dettalji astratti bogħod mill-utent. Xi affarijiet l-utent ma verament bżonn biex tara. Huma biss jixtiequ li jkollhom esperjenza tajba utent, u ma kellniex bżonn li jkollhom magħhom aċċess kull fajl waħdieni li teżisti fuq is-server web tagħna, forsi. Jista 'jkun hemm xi fajls li huma biss użati li jsaħħu l-esperjenza utent, u għalhekk nistgħu astratt dawk l bogħod. Nistgħu tip ta 'jaħbu lilhom sabiex l-utent ma jistgħux jaħdmu magħhom, iżda tagħna pages-- pages-- tagħna taf kif jittrattaw magħhom u jsejħulhom jew forsi jeħtieġu, irid minnhom, jew xi ħaġa bħal dik. Il-motivazzjoni ewlenija għas MVC hija s-sigurtà tad-data, minħabba MVC normalment taqa up fil- kuntest ta 'ħidma ma' databases. U b'mod partikolari aħna tixtieq li jipprevjenu lill-utenti minn databases jolqtu direttament. Aħna biss tixtieq li tagħmel dan b'mod indirett, permezz ta 'filtrazzjoni tagħna. Jew jagħmlu ċert li s OK kollox mill us tagħmel ftit ta 'verifika żball jew proofing sigurtà qabel we jibagħtu lill-database, fejn affarijiet jistgħu imorru ħażin, forsi verament ħażin, jekk aħna mhux qed attenta. Allura MVC stands għall-Mudell View-Kontrollur. What do kull wieħed minn dawn jfisser? Bażikament, il-mudell huwa database tiegħek. Huwa fejn l- data importanti għall-sit tiegħek usernames lives--, logins, passwords. U inti tista 'taġġorna dan, jirreferu għalih, kollox pretty ħafna bħal dik. Youd mistoqsija database, youd ssaqsi informazzjoni mid-database. Dik hija l-model-- kollha tal- data fejn is-sit tiegħek jgħix. Il-fehma hija tip simili l-esperjenza utent. Hu l-paġni jaraw wara huma talbu informazzjoni. Allura forsi huma jissottomettu information-- login tagħhom li huma jagħmlu fil kontrollur, li aħna ser nitkellmu dwar fit-tieni. Huma forsi jissottomettu tagħhom informazzjoni login, u d-database tiġi mfittxa. Informazzjoni hija mitluba u jinġibed mid-database. U allura ladarba l-utent tal illoggjat in, jaraw home page tagħhom. Li l-ħsieb, OK? U allura l-kontrollur huwa x'hemm imsejjaħ il-loġika kummerċjali ta 'sit tiegħek. U l-loġika tan-negozju hija waħda minn dawk it-termini li huwa tip ta wishy-washy-- simili, dak ma loġika tan-negozju jfisser? Bażikament negozju tiegħek loġika hija PHP tiegħek. Utent tiegħek ma teħtieġx jaraw direttament PHP tiegħek, iżda PHP tiegħek huwa probabbilment dak li għaddej li jkun qed jagħmel talbiet lill-database. Sabiex l-utent se input informazzjoni ħsieb, li tintegra kontrollur. Bħal, dawn ser tip fil-forma. Kif li l-proċessi forma informazzjoni huwa l-kontrollur. Dik hija l-PHP li fil-fatt tagħmel it-talba għall-mudell. U allura l-mudell jagħti informazzjoni għall-fehma, li jagħtiha lill-utent, forsi aħjar jidhru kif ġej. Allura aħna qegħdin hawn. Hawn us fuq ix-xellug, u l-Mudell tagħna Arranġament paradigma View Kontrollur. Kif taħdem? Il us-- user-- jagħmel jitlob lill-kontrollur. Aħna jippreżentaw informazzjoni bħal per eżempju billi forma HTTP. Ibbażat fuq dan, il-kontrollur xogħol huwa li jiġi żgurat li dak l-utent ikun ta mhix xi ħaġa li tista tħassar il-mudell. U għalhekk il-kontrollur għaddej biex kun żgur li s kollox OK. Li għaddej biex tħares b'attenzjoni kbira. Jekk hemm xi żbalji, huwa ser tieqaf affarijiet sabiex l-utent ma jistax jasal sal-mudell. Iżda jekk wieħed jassumi kollox ta OK u huwa query valida, il-kontrollur għandu query l model-- dan ser jitolbuha biss sabiex tipprovdi tagħrif. Il-mudell se jipprovdu li informazzjoni għal paġna li l-għan, dan ser jgħaddiha li mod, u allura l-opinjoni se timla l-informazzjoni mitluba mill-mudell. Għalhekk, per eżempju, jekk aħna qed jitkellem dwar jillogja Facebook page tiegħek, pereżempju. Il-fehma se tkun id-data li ħareġ mill-mudell li jirreferi lill-ħbieb tiegħek u l-aħbarijiet għalf jew għalf bħal dik, id-dritt? Imma inti ma tara xi ħadd ieħor. Youd tkun getting-- hekk inti tippreżenta mistoqsija, inti login għal skuża model-- me, inti login għal-paġna. L-użi kontrollur informazzjoni login tiegħek li jagħmlu talba għall-mudell li jagħmlu żgur li int min int tgħid int. Tal-mudell simili, OK, iva, inti li inti tgħidli int, so let me jagħtuk għalf aħbarijiet tiegħek. I ser jagħtuk l-informazzjoni prima għall għalf aħbarijiet tiegħek għall-fehma, u allura l-opinjoni jagħmilha pretty, proċessi dan b'mod li aħna qed jintużaw biex, wiri dik l-informazzjoni lill-utent. Avviż tal-konnessjoni li l- mhux eżistenti dwar dan dijagramma. M'hemm l-ebda konnessjoni diretta bejnek u l-mudell. Dejjem hemm dan buffer ta il-kontrollur fuq in-naħa input, u hemm buffer tal- opinjoni fuq in-naħa l-output. Forsi int tajba persuna, u għalhekk forsi inti ma tagħmel ebda ħsara lill- mudell, imma forsi int ma. Jew forsi hemm xi ħadd li s utent malizzjużi li kieku forsi tixtieq li tagħmel ħsara database tiegħek, forsi ħassar kollox mid-database tiegħek, li jistgħu jkunu għaljin ħafna. Ovvjament, is-- data li utent hemm valur li jkollhom utent tad-data. U hekk jekk aħna ma poġġiex din buffer żona bejn l-utent u l-database-- l-utent u l-affarijiet model-- jista 'ma jkunx sejjer hekk ukoll għalina. U għalhekk huwa importanti li jkollhom din paradigma fejn l-utent jista 'jkollu interazzjoni mal-database, żgur, iżda dawn għandhom jgħaddu us biex tagħmel dan. U li bażikament l-idea ma MVC. Huwa tipprova timplimenta sigurtà tad-data. Huwa jippruvaw jipproteġu l-mudell minn għarrieda jew intenzjonalment utenti malizzjużi. Allura x'jiġri meta napplikaw dan paradigma? Well, aħna qed tissepara d-data meħtieġa mill website-- tagħna l model-- mill-loġika li jimplimenta tagħna websajt functionality-- l controller-- u mill-estetika sempliċi u paġna templates li jinkludu tagħna utent experience-- l-opinjoni. Xi jfisser dan? Ukoll, dan ifisser li inti tista 'tagħmel fehmiet viżibbli għall-utent. Inti tista 'taħbi l-mudell bogħod. U controllers---utent ma tistax forsi direttament timmanipola. Huma m'għandhomx bżonn li jkollhom aċċess kodiċi PHP tiegħek. Huma biss bżonn biex tara forma fejn tista 'tip Jittieħed fil. Hekk forsi l-formola hija ħsieb, il-kontrollur hija l-PHP li l-formola jissottometti lill, il- kontrollur jagħmel mistoqsija lill-mudell, il-mudell jagħti aktar informazzjoni għal opinjoni differenti li displays informazzjoni lilek. Programmi tiegħek tista 'aċċess kollha ta 'loġika tan-negozju tiegħek, iżda l-utenti tiegħek ma jistgħux direttament aċċess loġika tan-negozju tiegħek. U wieħed partikolari, forsi, illustrazzjoni viżibbli ta 'din huwa inti stajt qatt riċevuti a 403 żball Projbit. Qatt marret lil web paġna u dehru 403 Projbit? Huwa tip ta 'prodotti simili 404 Mhux Found. 403 Projbit ifisser li inti ppruvat taċċessa paġna li inti ma għandekx aċċess għall. Forsi dak is-sit hu użu separazzjoni MVC biex jaħbu l bogħod loġika tan-negozju tagħha li jeħtieġ li jeżistu fuq is-server sabiex għall-paġna biex taħdem, iżda ma jridu li inti direttament aċċess għaliha. Allura inti tista 'tikseb 403 żball Projbit. U lanqas biss kwistjoni jekk inti kienu illoggjat. L-ebda utent jistax imiss dan il-fajl dot PHP. Huma jistax imiss biss dan wieħed, u dan one-- il-wieħed li jistgħu touch-- forsi jistgħu jinteraġixxu mal-fajl msakkra 'l isfel aktar indirett mill-utent. Allura, aħna kultant tara dan permessi żball, dan 403 Projbit. Kif nistgħu bidla permessi hekk li l-affarijiet jistgħu jew ma jistgħux jidhru? Meta nagħmlu dan tipikament huwa l-użu Linux kmand imsejħa chmod-- C-H-mod. Biex tagħmel dan, il-format huwa pjuttost simple-- chmod, permessi, u tkun xi tkun fajl li inti tixtieq li japplikaw dik il-bidla għall. Allura, forsi youd tara xi ħaġa bħal this-- chmod 600 helpers.php. Jew forsi youd tara this-- chmod plus x li tinkludi direttorju. Kien jfisser dan għalkemm? Allura, hemm żewġ modi differenti li permessi huma ġeneralment applikata bl-użu chmod. L-ewwel huwa msejjaħ il- Metodu numri octal. Dan normalment japplika permessi għal tliet kategoriji differenti ta 'utenti fl-istess ħin. Allura chmod 711 fajl jippermetti li inti id-dritt li jaqraw, jiktbu, u jesegwixxi fajl tiegħek, jippermetti others-- speċifikament grupp tiegħek u l world-- biss tesegwixxi l-fajl. Dak hu li dan jittraduċi għal. L-ewwel numru hemmhekk huwa dak li inti tista 'tagħmel, it-tieni numru huwa liema grupp tiegħek tista 'tagħmel, u t-tielet huwa dak id-dinja tista 'tagħmel. Kull min huwa jżuru tiegħek paġna, dak l-dinja. Liema huma dawn in-numri fil-fatt jissarraf għalkemm? Allura dawn bażikament jissarraf bħal dan. Jekk il-permess huwa żero, xejn ma jista 'jiġri. Jekk huwa wieħed, inti tista 'tesegwixxi l- file-- jekk dan huwa permess tiegħek. Jekk huwa tnejn, tista 'tikteb il-fajl imma inti ma tistax tagħmel xi ħaġa oħra. Jekk huwa tlieta, inti jista 'jikteb u tesegwixxi. U hekk, kif tista 'tara. U seba ifisser li inti tista 'tagħmel kollox. Allura għaliex huma dawn ċemplu numri octal? Ukoll, jekk inti taħseb dwarha, here simili NoEs u yeses, u jekk naħsbu dwarhom kif kaxxi aħmar u aħdar, forsi li jagħmilha ftit aktar ċara. Imma jekk naħsbu dwar dawn il-kaxxi aħmar kif żerijiet u l-kaxxi ħodor bħala dawk, dawn huma attwalment biss settijiet ta 'numri binarju, id-dritt? 000 jittraduċi għal deċimali 0; 001, deċimali 1; 010 huwa deċimali 2, u l-bqija. U hekk aħna sejħa dawn octal numri għaliex hemm tmien possibbiltajiet differenti. Hemm tmien ċifri differenti jekk aħna qed jitkellem dwar tlieta bits ta information-- il bit jaqra, il write bit, u l tesegwixxi bit. Allura issa inti tista 'titkellem binarju, deċimali, hex, u octal. Allura inti taf kif jikkomunikaw ma kompjuters minn kull erba numru differenti sistemi, b'tali mod li pretty jibred. Allura, minbarra l-octal iskema permess, hemm wkoll il-permess simboliku iskema, li hija ftit differenti u normalment hija użata aħjar biex japplikaw jew tneħħi permess kullimkien. Allura chmod a x fajl plus tista 'żżid il-lemin li teżegwixxi għat-tliet kategoriji ta 'users-- yourself, grupp tiegħek, u d-dinja. Li flimkien hija l-parti li żżid. Id-dritt li teżegwixxi, dak l-x. U l-fatt li din tapplika għal kull tliet gruppi ta 'utenti tkun l-a. Allura this-- a x-- plus huwa probabbilment se li jkunu eżatt l-istess bħal chmod 711 fajl, għaliex jekk inti tmur lura u tħares lejn l-iskema numru octal, dawk u Sevens tagħtina l- dritt li tesegwixxi fajl. Allura dan huwa probabbilment l-istess. U tista 'tuża dan gwida ta 'referenza għal dak l-affarijiet varji fil- istruttura chmod-Ing simboliku huma. Il-punti aħdar hawn ikunu fejn l-eżempju kkulurita aħdar kien it-tieni ilu. Il blu tkun l-blu. Il oranġjo tkun l-oranġjo. Allura inti tista 'tapplika affarijiet li tiegħek grupp, lill-oħrajn, lill-utent, jew għal kulħadd. Inti tista 'tagħtihom jaqraw, jiktbu, u jesegwixxi l-aċċess, u tista 'żżid jew tneħħi jew tassenja eżattament sett ta 'permessi li jużaw dan il-mudell. Kif nistgħu jiċċekkjaw liema a iskema permess fajl huwa? Qabel nagħmlu l-bidla dan, huwa probabbilment tajjeb li tassew taf dak l-permessi fajl huma. Mod wieħed biex dan isir huwa li tmexxi ls iżda biss tweak ftit. Mela jekk jien tip ls sing l-- li l-zghar l-- forsi I taf tara xi ħaġa bħal din. Huwa jistenna ftit cryptic, iżda il-parti li aħna verament jimpurtak hija l-għalf fuq ix-xellug hemmhekk. Li attwalment jispeċifika skema permess fajl. U inti tista 'probabbilment tgħid għaliex dan huwa ltqajna l r, w, u x s ​​b'intervall. Dawk ewwel three-- jinjora l-ewwel wieħed għat-tieni, li aħna ser tirdoppja lura lill. Dawk ewwel tliet wara l first-- hekk it-tieni, tielet, u r-raba karattri ta 'dak sekwenza 10 karattru huma l-permessi li għandek. So apparentement I tista 'taqra, jiktbu, u jesegwixxi PHP. Kapaċi naqra, jiktbu, u tesegwixxi PHP webdev, u I tista 'taqra u tikteb test.php. Grupp tiegħi tista 'tagħmel dan. Allura apparentement mal-PHP u direttorji PHP webdev, grupp tiegħi tista 'tikteb lill minnhom iżda xejn iżjed. U d-dinja ma tistax tagħmel xejn. Allura dawn il-fajls m'humiex aċċessibbli għall-pubbliku u jekk I ppruvaw aċċess għalihom u I ma kienx running Apache biex jagħmluhom aċċessibbli, allura nixtieq nikseb żball 403. Huwa falliment. I ppruvaw li jkollhom aċċess għal fajl imma I ma jkollhomx permessi li jagħmlu dan. U dak li huwa li l-ewwel karattru? Well, inti tista 'probabbilment jiġu estrapolati hawnhekk li l-d's jirreferu għall-direttorji u l sing jirreferi għall hekk imsejħa "fajls regolari." U forsi inti stajt tidher dan meta inti stajt ppruvat tneħħi fajl bl-użu rm. You stajt tidher l-messaġġ cryptic "tneħħi fajl regolari" - f'dan il-każ, huwa d jkun test.php. Fajl regolari huwa biss xi ħaġa li mhux direttorju. Hemm ftit ta 'oħrajn hawn, iżda ġeneralment int ser tara d'i għall-direttorji u xejn għall-ewwel element. Imma dak li verament kollha hemm għaliha. Tista 'tiċċekkja fajl permessi li jużaw ls sing l, inti tista 'bidla minnhom jużaw chmod. U, naturalment, l-użu these-- jinbidlu l-permessi biex jinfurzaw dan paradigma MVC li jipproteġu d-data fuq il-websajt tiegħek u ma jippermettix lill-utenti aċċess kollox, iżda biss l-għalf li għandhom bżonn għall-aċċess sabiex page tiegħek biex jaħdmu l-mod kif inti tixtieq taħdem. Jien Doug Lloyd. Dan huwa CS50.