DOUG LLOYD: A vegades quan estem programant fem les coses amb tanta freqüència, de manera que amb freqüència, i tanta gent fer el mateix idea-- o el mateix cosa, que no té un nom. MVC és exactament una cosa semblant. Es diu un paradigma de programació. És una cosa així com d'una les millors pràctiques que han estat destil·lada baix per persones que tracten de fer alguna cosa. En aquest cas, aplicar un sistema de pàgines que un usuari interactua amb en un lloc web més complexa. I ho ha fet tan comú que es recomana com a norma que altres persones els agradaria seguir, i hi ha un conjunt molt específic de formes que un podria seguir aquest paradigma. Així, MVC és un paradigma, i la raó utilitzem és abstreure detalls per part de l'usuari. Algunes coses de l'usuari en realitat no necessita veure. Ells només volen tenir una bona experiència d'usuari, i no necessitem tenir-los accedir a cada arxiu que existeix al nostre servidor web, potser. Hi pot haver alguns arxius que són només utilitzat per reforçar l'experiència de l'usuari, i així podem abstreure els lluny. Podem espècie d'ocultar-los pel l'usuari no pot treballar amb ells, però la nostra pages-- nostra pages-- saber com tractar amb ells i cridar-los o potser requereixi, ells, o alguna cosa així vol. La principal motivació per MVC és la seguretat de dades, perquè MVC habitualment apareix en el context de treballar amb bases de dades. I en particular, volen evitar que els usuaris a partir de bases de dades que impacten directament. Només volem fer-ho indirectament, a través del nostre filtració. O assegurant-se que tot està bé per nosaltres fent una mica de comprovació d'errors o proves de seguretat abans que enviar-lo a la base de dades, on les coses podrien anar malament, potser molt malament, si no anem amb compte. Així MVC significa Model Vista Controlador. Què significa cada un d'ells? Bàsicament, el model és la seva base de dades. És el lloc on tot el dades importants del seu lloc noms d'usuari, noms d'usuaris lives--, contrasenyes. I vostè pot actualitzar-la, es refereixen a ella, gairebé tot l'estil. Es podria consultar una base de dades, el preguntaries informació de la base de dades. Aquesta és la model-- tota la de dades on resideix el seu lloc. La vista és alguna cosa així com l'experiència de l'usuari. Són les pàgines que veuen després que han sol·licitat informació. Així que potser es sotmeten la seva entrada informació-- que ho farien en un controlador, que parlarem en un segon. Ells potser presentin la seva informació d'inici de sessió, i la base de dades es consulta. Se sol·licita la informació i trets de la base de dades. I a continuació, una vegada que l'usuari d'connectat en, veuen la seva pàgina d'inici. Això és un punt de vista, d'acord? I llavors el controlador és el que hi ha anomenat la lògica de negoci del seu lloc. I la lògica de negoci és un d'aquests termes que és una espècie de wishy-washy-- agradaria, ¿Què significa la lògica de negoci? Bàsicament el seu negoci la lògica és la seva PHP. El seu usuari no necessita per veure directament el PHP, però la seva PHP és probablement el que està passant estar fent peticions a la base de dades. Així que l'entrada de la voluntat de l'usuari informació en una vista, que integrarà un controlador. Igual, que van a tipus en un formulari. Com que els processos de forma la informació és el controlador. Aquest és el PHP que en realitat que fa la sol·licitud al model. I llavors el model dóna informació a la vista, el que li dóna a l'usuari, potser millor visualitzat com segueix. Així que aquí estem. Aquí ens tens a l'esquerra, i el nostre model Arranjament de paradigma Vista Controlador. Com funciona? El nosaltres-- user-- fa un sol·licitar al controlador. Sotmetem informació com ara per una forma HTTP. Basat en això, el controlador de treball és assegurar-se que que el que l'usuari ha donat no és cosa que podria danyar el model. I pel que el controlador va assegurar-se que tot està bé. Es va a mirar amb molta cura. Si hi ha algun error, s'aturarà coses de manera que l'usuari no pot arribar al model. Però suposant que tot Acceptar i és una consulta vàlida, el controlador consultarà el model-- que va a demanar a proporcionar informació. El model que proporcionarà la informació a una pàgina que és un punt de vista, que va a transmetre és que manera, i llavors la vista poblarà la informació Es va demanar a la model. Així, per exemple, si estem parlant sobre d'accedir a la seva pàgina de Facebook, per exemple. La vista seria les dades que van sortir de la model que es refereix als seus amics i les notícies alimentar o coses per l'estil, oi? Però no es veuria d'una altra persona. Vostè s'ho getting-- envia una consulta, inicia sessió en l'excusa model-- jo, una sessió a la pàgina. Els usos del regulador les teves dades d'accés per fer una sol·licitud a la model per fer Segur que vostè és qui diu ser. Com de la model, OK, sí, vostè és qui diu ser, així que et vaig a donar el seu servei de notícies. Et vaig a donar les dades en brut per el seu servei de notícies a la vista, i llavors la vista fa bastant, el processa d'una manera que estem acostumats, es presenten que la informació per a l'usuari. Noti la connexió que és no existint en aquest diagrama. No hi ha connexió directa entre vostè i el model. Sempre hi ha aquest buffer de el controlador al costat d'entrada, i hi ha un amortiment de la veure en el costat de sortida. Potser vostè és un bon persona, de manera que potser vostè no faria cap mal a la model, però potser no ho estàs. O potser hi ha algú que és un usuari malintencionat que faria potser voler danyar la seva base de dades, potser Eliminar tot, des de la base de dades, que podria ser molt car. Òbviament, és-- de dades que té l'usuari hi ha valor de comptar amb les dades de l'usuari. I així si no posem aquest memòria intermèdia zona entre l'usuari i el database-- l'usuari i les coses model-- No podria estar passant tan bé per a nosaltres. I pel que és important tenir aquest paradigma, on l'usuari pot interactuar amb la base de dades, segur, però que han d'anar a través de nosaltres per fer-ho. I això és bàsicament la idea amb MVC. S'està tractant d'implementar la seguretat de dades. S'està tractant de protegir el model inadvertidament o intencionalment els usuaris maliciosos. Llavors, què passa quan apliquem aquest paradigma? Bé, estem separant les dades requereix de la nostra website-- la model-- de la lògica que implementa el nostre lloc web de functionality-- la controller-- i de l'estètica simples i pàgina plantilles que componen la nostra usuari experience-- la vista. Què vol dir això? Bé, vol dir que vostè pot fer les vistes visibles per a l'usuari. Podeu ocultar el model de distància. I l'usuari controllers-- potser no pot manipular directament. Ells no necessiten accedir al seu codi PHP. Només tenen a veure un formulari on poden escriure coses en. Així que potser la forma és 01:00 vista, el controlador PHP és el que la forma se sotmet a la controlador fa una consulta per al model, el model dóna més informació a un punt de vista diferent que mostra informació per a vostè. Els seus programes poden accedir tota la seva lògica de negoci, però els usuaris no pot directament accedir a la seva lògica de negoci. I particularment, potser, il·lustració visible d'aquest està alguna vegada has rebut un error 403 Forbidden. Alguna vegada has anat a un web pàgina i vist 403 prohibit? És una cosa així com 404 Not Found. 403 Forbidden vol dir que ha intentat accedir a la una pàgina que no té accés. Potser aquest lloc és utilitzant la separació MVC amagar-se de la seva lògica de negoci que ha d'existir al servidor per tal perquè la pàgina funcioni, però no ho fa Vols tenir accés directe a ella. Així que és possible obtenir un error 403 Forbidden. I ni tan sols importa si s'ha identificat. Cap usuari pot tocar aquest arxiu PHP punt. Només poden tocar aquest, i això un-- el que poden touch-- potser pot interactuar amb l'arxiu bloquejat-down més indirecta que l'usuari. Així que, de vegades veiem aquesta permisos error, 403 Forbidden. Com podem canviar els permisos de forma que les coses poden o no poden ser vistos? Quan fem això en general és utilitzar una Comandaments de Linux anomenada chmod-- C-H-MOD. Per a això, el format és bastant simple-- chmod, permisos, i qualsevol arxiu que vols aplicar aquest canvi a. Així, potser t'agradaria veure alguna cosa així- chmod 600 helpers.php. O potser t'agradaria veure esto-- chmod 1 x més que inclou directori. Va ser vol dir això, però? Així, hi ha dues maneres diferents que els permisos són generalment aplicat usant chmod. El primer es diu el mètode dels nombres octals. Això en general s'aplica permisos a tres categories diferents d'usuaris a la vegada. Així chmod 711 fitxer li permetria el dret a llegir, escriure i executar el seu arxiu, permetria altres-- específicament el seu grup i el món-- només per executar l'arxiu. Això és el que això es tradueix en. El primer número que hi ha és el que pot fer, el segon número és el que el seu grup pot fer, i el tercer és el que el món pot fer. Qualsevol persona que està visitant el seu pàgina, que és el món. Quins són aquests nombres de fet traduir a l'embargament? Així que aquests bàsicament es tradueixen com aquest. Si el permís és zero, res pot succeir. Si es tracta d'un, pot executar el file-- si aquest és el seu permís. Si es tracta de dos, vostè pot escriure el fitxer però no es pot fer res més. Si es tracta de tres, pot escriure i executar. I així successivament, com es pot veure. I set vol dir que vostè pot fer tot. Així que per què són ells diuen nombres octals? Bé, si es pensa en això, aquí és com nos i sís, i si pensem sobre ells com caixes de color vermell i verd, potser això fa que sigui una mica més clar. Però si pensem en aquestes caixes vermelles com zeros i els quadres de color verd com estimats, aquests són en realitat tan sols conjunts de nombres binaris, oi? 000 es tradueix a decimal 0; 001, decimal gener; 010 és decimal 2, i així successivament. I així ens diem aquests octal números perquè hi ha són vuit possibilitats diferents. Hi ha vuit diferents dígits si estem parlant de tres bits d'informació-- el bit de lectura, l'escriptura bit, i el bit d'execució. Així que ara vostè pot parlar binari, decimal, hexadecimal i octal. Així que ja saben com comunicar-se amb ordinadors de cada quatre nombre diferent sistemes, així que això és molt bo. Així, a més de la octal esquema de permís, hi ha també el permís simbòlica esquema, que és lleugerament diferent i en general s'utilitza la millor manera d'aplicar o treure un permís a través del tauler. Així chmod una X arxiu més podria afegir la dreta per executar als tres categories de users-- vostè, el seu grup, i en el món. Aquest avantatge és la part afegint. El dret a executar, aquesta és la x. I el fet que s'aplica a tots tres grups d'usuaris serien els a. Així esto-- 1 x-- més probablement va de ser exactament el mateix que chmod 711 presentar, perquè si vas cap enrere i mirar l'esquema nombre octal, estimats i sets ens la donen dret a executar un arxiu. Així que aquest és probablement el mateix. I vostè pot utilitzar aquest guia de referència per al que les diverses coses al simbòlica estructura-ció chmod són. Els elements verds aquí serien on tot l'exemple de color verd va ser fa un segon. El blau seria el blau. La taronja seria el de taronja. Així que vostè pot aplicar les coses al seu grup, als altres, per a l'usuari, o per a tothom. Vostè pot donar a llegir, escriure i executar l'accés, i vostè pot afegir o treure o assignar exactament un conjunt de permisos que utilitzen aquest model. Com vam comprovar el que és un esquema de permisos de fitxers és? Abans ho canviem, és Probablement bo saber en realitat el que els permisos d'arxius són. Una manera de fer això és executar ls però només ajustar una mica. Així que si escric ls llancen jo-- això és una minúscula jo-- potser Vaig a veure alguna cosa com això. S'assembla una mica críptic, però la part que realment ens importa és la matèria de l'esquerra allà. Que especifica realitat un esquema de permisos de fitxers. I vostè pot dir probablement perquè és té r, de w, x, i de intercalats. Aquells primera tres-- fent cas omís de la primera per un segon, que anem a doble Tornar. Els tres primers després el primer-- pel que el segon, tercer, i quart caràcters d'aquesta cadena de 10 caràcters són els permisos que té. Així que pel que sembla el que puc llegir, escriure i executar PHP. Sóc capaç de llegir, escriure i executar PHP WebDev, i puc llegir i escriure test.php. El meu grup pot fer això. Així que pel que sembla amb el PHP i directoris PHP WebDev, el meu grup pot escriure en ells, però res més. I el món no pot fer res. Així que aquests arxius no són d'accés públic i si tractava de accedir-hi i no estava corrent Apache perquè siguin accessibles, llavors jo aconseguir un error 403. És un fracàs. He intentat accedir a un arxiu, però jo no tenen permisos per fer-ho. ¿I quin és aquest primer personatge? Bé, és probable que pugui extrapolar aquí que el d's es refereixen a directoris i el guió es refereix a els anomenats "arxius normals." I potser vostè ha vist això quan tens intentat suprimir un fitxer fent servir rm. Vostè ha vist el missatge críptic "tregui arxiu regular" - en aquest cas, que seria test.php. Fitxer regular és només una cosa això no és un directori. Hi ha un parell d'altres aquí, però en general ets anar a veure d's per als directoris i res per al primer element. Però això és realment tot el que cal fer. Podeu comprovar l'arxiu permisos mitjançant ls tauler l, pot canviar usant chmod. I, per descomptat, utilitzar these-- canviant els permisos per fer complir aquest paradigma MVC protegir les dades en la seva pàgina web i no permetre que els usuaris per accedir a tot, però només les coses que necessiten accedir perquè la seva pàgina per treballar de la manera que vol que funcioni. Sóc Doug Lloyd. Això és CS50.