DOUG LLOYD: Uneori când suntem programare facem lucruri atât de frecvent, astfel încât frecvent, și atât de mulți oameni face același idee, sau la fel lucru, că are un nume. MVC este exact un astfel de lucru. Se numește o paradigmă de programare. E ca un fel de cele mai bune practici care au fost distilate în jos de oameni care incearca sa faca ceva. În acest caz, punerea în aplicare a un sistem de pagini că un utilizator interacționează cu pe un site web mai complexe. Și se face atât de frecvent încât este recomandat ca un standard că alte persoane ar plăcea să urmeze, și nu există un set foarte specific de moduri care s-ar putea urma această paradigmă. Deci, MVC este o paradigmă, și motivul vom folosi este de a abstracte departe detalii din partea utilizatorului. Unele lucruri utilizatorului nu într-adevăr nevoie pentru a vedea. Ei vor doar să aibă o experiență bună de utilizator, și nu trebuie să le aibă accesa fiecare fișier pe care există pe serverul nostru de web, poate. S-ar putea fi unele fișiere care sunt doar folosit pentru a consolida experiența utilizatorului, și astfel încât să putem abstract cei departe. Putem fel de le ascundeți așa utilizatorul nu poate lucra cu ei, dar pages-- nostru pages-- nostru știu cum să se ocupe de ei și le numim sau poate necesita, le, sau ceva de genul care vrea. Motivația principală pentru MVC este securitatea datelor, deoarece MVC de obicei, vine în sus în context de lucru cu baze de date. Și, în special, ne-am doresc pentru a preveni utilizatorii din bazele de date cu impact direct. Vrem doar să-l facă în mod indirect, prin filtrare nostru. Sau asigurându-vă că totul e în regulă cu ne face un pic de verificarea erorilor sau proofing siguranță înainte de a trimite-l la baza de date, în cazul în care lucrurile ar putea merge prost, poate într-adevăr greșit, dacă nu suntem atenți. Deci, MVC standuri pentru Model View Controller. Ce fiecare dintre aceste înseamnă? Practic, modelul este baza de date. Este cazul în care toate date importante pentru site-ul dvs. nume de utilizator, login-uri, lives-- parole. Si puteti actualiza, se referă la ea, destul de mult tot așa. Te-ai interoga o bază de date, ai întreba informații din baza de date. Asta e tot de la model-- date în cazul în care locuiește site-ul tău. Punctul de vedere este un fel de experiența utilizatorului. E paginile pe care le văd după au solicitat informații. Deci, poate că prezintă information-- lor de conectare pe care le-ar face într-un controler, care vom vorbi despre un al doilea. Ei poate prezenta lor informații de conectare, iar baza de date este interogat. Se solicită informații și scos din baza de date. Și apoi o dată utilizatorului logat în, ei văd pagina lor de origine. Asta e un punct de vedere, OK? Și apoi controlerul este ceea ce este numit logica de afaceri de site-ul tau. Și logica de afaceri este unul dintre acei termeni care este un fel de wishy-washy-- place, Ce înseamnă logica de afaceri? Practic afacerea ta logica este PHP-ul. Utilizator ta nu are nevoie de pentru a vedea direct PHP dvs., dar PHP ta este, probabil, ceea ce se întâmplă a fi a face cereri în baza de date. Deci, de intrare va utilizator informații într-o vizualizare, care va integra un controler. Cum ar fi, vor tastați într-o formă. Cum că procesele de formă informații controlerul. Asta e de fapt PHP care care face solicitarea la modelul. Și apoi modelul dă informații la ecranul, pe care o conferă utilizatorului, probabil cel mai bine vizualizat dupa cum urmeaza. Deci, aici suntem. Iată-ne e pe stânga, și modelul nostru View Controller aranjament paradigmă. Cum functioneazã? Us-- user-- face o solicita operatorului. Am prezinte informații cum ar fi de un formular de HTTP. Bazat pe faptul că, controlorului de locuri de muncă este de a asigura că ceea ce utilizatorul a dat nu este ceva care ar afecta modelul. Și astfel controlerul va asigurați-vă că totul e OK. Se va arata foarte atent. Dacă există erori, se va opri lucrurile astfel încât utilizatorul nu poate ajunge la modelul. Dar presupunând totul lui OK si este o interogare validă, controlerul va interoga model-- o să-l cere să furnizeze informații. Modelul va prevedea ca informații la o pagină care este un punct de vedere, acesta va transmite că mod, iar apoi vizualizarea va popula informațiile solicitat de la modelul. Deci, de exemplu, dacă vorbim despre logare în pagina dvs. Facebook, de exemplu. Punctul de vedere ar fi datele care a venit din modelul pe care se referă la prieteni și știri hranei pentru animale sau chestii de genul asta, nu? Dar tu nu ar vedea altcuiva. Ai fi atât de getting-- trimiteți o interogare, vă conectați la scuza model-- mă, vă conectați la pagina. Utilizările controler informatiile de autentificare pentru a face o cerere de modelul de a face sigur că ești cine spui că ești. Ca modelului, OK, da, sunteti cine spui că ești, asa ca lasa-mi să vă dau feed-ul de știri. Îți dau datele primare pentru feed-ul de știri la ecranul, și apoi punctul de vedere se face destul de, le prelucrează într-un mod că suntem obișnuiți să, afișarea aceste informații pentru utilizator. Observați legătura care este nu existente pe acest diagrama. Nu e nici o legătură directă între tine și modelul. Există întotdeauna acest tampon de regulatorul pe partea de intrare, și nu există o tampon a vizualiza pe partea de ieșire. Poate ca esti un bun persoană, și așa poate că nu ar face nici o deteriorare a modelul, dar poate nu ești. Sau poate e cineva care a un utilizator rău intenționat care ar poate doresc să deteriora baza de date, poate șterge totul, de la baza de date, care ar putea fi foarte costisitoare. În mod evident, este-- date cu utilizator există o valoare a avea date de utilizator. Și așa dacă nu am pus acest tampon zonă între utilizator și database-- utilizatorul și lucrurile model-- ar putea să nu fie atât de bine merge pentru noi. Și așa este important să au această paradigmă în cazul în care utilizatorul poate interacționa cu baza de date, sigur, dar ei trebuie să treacă prin noi de a face acest lucru. Și asta e de fapt ideea cu MVC. Încearcă să pună în aplicare de securitate a datelor. Este încearcă să protejeze modelul din neatenție sau în mod intenționat utilizatorilor rău intenționați. Deci, ce se întâmplă când am aplica această paradigmă? Ei bine, suntem de separare a datelor necesară din website-- nostru model-- din logica care pune în aplicare site-ul nostru functionality-- controller-- și din estetica simple și pagina template-uri care cuprind nostru utilizator experience-- de vedere. Ce înseamnă acest lucru? Ei bine, aceasta înseamnă că puteți face consideră vizibile utilizatorului. Puteți ascunde modelul departe. Și controllers-- utilizatorul nu poate manipula direct poate. Ei nu au nevoie pentru a accesa codul PHP. Ei au nevoie doar pentru a vedea un formular în cazul în care acestea pot introduce lucruri în. Deci, poate forma este un punct de vedere, controlerul este PHP că forma transmite la, controler face o interogare a modelului, modelul oferă mai multe informații la un punct de vedere diferit, care afișează informații pentru tine. Programele pot accesa toate de logica de afaceri, dar utilizatorii nu pot direct accesa logica de afaceri. Și unul în special, poate, ilustrare vizibil al acestei este ați primit vreodată o eroare de 403 Interzis. Ai plecat vreodata la un web pagină și văzut 403 Interzis? E un fel de 404 Not Found. 403 Interzis înseamnă că a încercat să acceseze o pagină care nu aveți acces la. Poate că este site-ul utilizând separarea MVC pentru a ascunde departe logica de afaceri care trebuie să existe pe serverul pentru pentru pagina de a lucra, dar nu Vreau să-l accesa direct. Deci, s-ar putea obține o eroare Interzis 403. Și nu chiar ar conta daca te-ai autentificat. Nici un utilizator poate atinge acest fișier punct PHP. Ele pot atinge numai aceasta, și această Unu cel care le pot touch-- probabil pot interacționa cu dosarul blocat-jos mai mult decât în ​​mod indirect de utilizator. Deci, vom vedea, uneori, acest permisiuni eroare, aceasta 403 Forbidden. Cum putem schimba permisiunile astfel că lucrurile pot sau nu pot fi văzut? Când facem acest lucru de obicei este de a utiliza un Comandă Linux numit chmod-- C-H-mod. Pentru a face acest lucru, formatul este destul de simple-- chmod, permisiuni, și orice fișier pe care doriți să aplice această modificare a. Deci, poate că ai văzut ceva ca asta: chmod 600 helpers.php. Sau poate te-ai vedea astea-- chmod un x plus care include director. A fost acest lucru, deși nu? Deci, sunt două moduri diferite că permisiunile sunt, de obicei, aplicate folosind chmod. Prima se numește Metoda numere octal. Acest lucru se aplică, de obicei, permisiuni la trei categorii diferite de utilizatori în același timp. Deci, chmod 711 fișier pe ar permite dreptul de a citi, scrie, și să execute fișierul, ar permite others-- special grupul dvs. și world-- să execute doar fisierul. Asta e ceea ce se traduce acest lucru. Primul număr acolo este ceea ce se poate face, al doilea număr este ceea ce grupul tau poate face, iar al treilea este ceea ce poate face lumea. Oricine vizitează tău pagină, asta e lumea. Care sunt aceste numere traduce de fapt, la, deși? Astfel încât acestea, practic traduce așa. În cazul în care permisiunea este la zero, nimic nu se poate întâmpla. Dacă e unul, poate executa file-- cazul în care este permisiunea dumneavoastră. Dacă e doi, puteți scrie fișierul dar nu pot face nimic altceva. Dacă e de trei, tu poate scrie și executa. Și așa mai departe, după cum puteți vedea. Și șapte înseamnă că poate face totul. Deci, de ce sunt acestea numite numere octale? Ei bine, dacă stai să te gândești, aici e ca și rețelele de excelență yeses, și dacă ne gândim la ele ca cutii de roșu și verde, Poate că o face un pic mai clar. Dar dacă ne gândim la acele cutii roșii ca zerouri și cutiile verzi ca cele, Acestea sunt de fapt doar seturi de numere binare, nu? 000 se traduce în zecimal 0; 001, zecimală 1; 010 este zecimală 2, și așa mai departe. Și așa numim aceste octal numere pentru că nu există sunt opt ​​posibilitati diferite. Există opt diferite cifre dacă suntem vorbesc despre trei biți de information-- bitul de citire, de scriere bit, și executa biți. Deci, acum puteți vorbi binar, zecimal, hexazecimal, octal și. Deci știi cum să comunice cu computere din patru număr diferit sisteme, așa că e destul de cool. Deci, în afară de octal sistem permisiune, nu e de asemenea, permisiunea simbolic sistem, care este ușor diferită și, de obicei se utilizează cel mai bine pentru a aplica sau elimina o permisiune peste bord. Deci, chmod un plus X fișier s-ar putea adăuga dreapta pentru a executa la toate cele trei categorii de users-- le grupul dvs., și lumea. Că plus este partea adăugarea. Dreptul de a executa, asta e x. Iar faptul că se aplică tuturor trei grupuri de utilizatori ar fi a. Deci asta: un X- plus este, probabil, va să fie exact la fel ca chmod 711 dosar, pentru că dacă te duci înapoi și uita-te la sistemul de numărul octal, unu și șeptari SUA da dreptul de a executa un fișier. Deci aceasta este, probabil la fel. Și puteți folosi acest ghid de referință pentru ceea ce diverse lucruri în simbolic structura chmod-ing sunt. Elementele verzi de aici ar fi în cazul în care toate exemplul de culoare verde a fost acum o secundă. Albastrul ar fi albastru. Portocaliu ar fi portocaliu. Astfel încât să puteți aplica lucruri pentru dvs. grup, pentru alții, pentru utilizator, sau pentru toată lumea. Puteți da le citiți, scrie, și să execute acces, și puteți adăuga sau elimina sau aloca exact un set de permisiuni folosind acest model. Cum putem verifica ce o sistem de permisiunea de fișier este? Înainte de a ne schimba, e probabil bine sa stii de fapt ceea ce permisiunile de fișiere sunt. O modalitate de a face acest lucru este de a rula ls dar doar un pic tweak. Deci, dacă am de tip LS lovești l-- asta e un minuscule l-- poate Voi vedea ceva de genul asta. Se pare un pic criptic, dar partea pe care ne pasă cu adevărat de este chestii pe stânga acolo. Care specifică de fapt un sistem de permisiune de fișier. Și tu poți spune, probabil, pentru că este Trebuie Rx lui lui, w, iar intercalate. Cei mai întâi three-- ignorând prima pentru un al doilea, care ne vom dubla înapoi la. Cei trei după prima first-- așa-al doilea, al treilea, al patrulea și caractere din șir de caractere 10 sunt permisiunile pe care le au. Deci, se pare că pot citi, scrie, și să execute PHP. Pot citi, scrie, și executa PHP Webdev, și pot citi și scrie test.php. Grupul meu poate face acest lucru. Deci, aparent cu PHP și directoare PHP Webdev, grupul meu poate scrie la ei, dar nimic altceva. Și lumea nu poate face nimic. Deci, aceste fișiere nu sunt accesibile publicului și dacă am încercat să le accesați și nu am fost rulează Apache pentru a le face accesibile, atunci mi-ar lua o eroare de 403. Este un eșec. Am încercat să acceseze un fișier, dar am Nu aveți permisiunea de a face acest lucru. Și ceea ce este că primul caracter? Ei bine, probabil se poate extrapola vă aici că D se referă la directoare și se referă la bord așa-numitele "dosare regulate." Și poate ați văzut acest lucru atunci când ați a încercat pentru a elimina un fișier folosind rm. Ai văzut mesajul criptic "elimina fișier obișnuit" - în acest caz, că ar fi test.php. Fișier obișnuit este doar ceva asta nu e un director. Există o serie de alte aici, dar, în general, ești O să vezi d'pentru directoare și nimic pentru primul element. Dar asta e într-adevăr tot acolo este să-l. Puteți verifica fișier permisiuni folosind ls liniuță L, le puteți modifica folosind chmod. Și, desigur, utilizați these-- schimbarea permisiunile să pună în aplicare această paradigmă MVC la proteja datele pe site-ul și nu permite utilizatorilor pentru a accesa totul, dar numai lucrurile de care au nevoie pentru a accesa pentru ca pagina dvs. la locul de muncă modul în care doriți să-l lucreze. Sunt Doug Lloyd. Acest lucru este CS50.