DOUG LLOYD: A veces cuando estamos programando hacemos las cosas con tanta frecuencia, por lo que con frecuencia, y tanta gente hacer lo mismo idea-- o el mismo cosa, que no tiene un nombre. MVC es exactamente una cosa semejante. Se llama un paradigma de programación. Es algo así como de una las mejores prácticas que han sido destilada abajo por personas que tratan de hacer algo. En este caso, aplicar un sistema de páginas que un usuario interactúa con en un sitio web más compleja. Y lo ha hecho tan común que se recomienda como norma que otras personas les gustaría seguir, y hay un conjunto muy específico de formas que uno podría seguir este paradigma. Así, MVC es un paradigma, y ​​la razón utilizamos es abstraer detalles por parte del usuario. Algunas cosas del usuario en realidad no necesita ver. Ellos sólo quieren tener una buena experiencia de usuario, y no necesitamos tenerlos acceder a cada archivo que existe en nuestro servidor web, tal vez. Puede haber algunos archivos que son sólo utilizado para reforzar la experiencia del usuario, y así podemos abstraer los lejos. Podemos especie de ocultarlos por lo el usuario no puede trabajar con ellos, pero nuestra pages-- nuestra pages-- saber cómo tratar con ellos y llamarlos o tal vez requiera, ellos, o algo así quiere. La principal motivación para MVC es la seguridad de datos, porque MVC habitualmente aparece en el contexto de trabajar con bases de datos. Y en particular, quieren evitar que los usuarios a partir de bases de datos que impactan directamente. Sólo queremos hacerlo indirectamente, a través de nuestro filtración. O asegurándose de que todo está bien por nosotros haciendo un poco de comprobación de errores o pruebas de seguridad antes de que enviarlo a la base de datos, donde las cosas podrían ir mal, tal vez muy mal, si no tenemos cuidado. Así MVC significa Modelo Vista Controlador. ¿Qué significa cada uno de ellos? Básicamente, el modelo es su base de datos. Es el lugar donde todo el datos importantes de su sitio nombres de usuario, nombres de usuarios lives--, contraseñas. Y usted puede actualizarla, se refieren a ella, casi todo el estilo. Se podría consultar una base de datos, lo preguntarías información de la base de datos. Esa es la model-- toda la de datos donde reside su sitio. La vista es algo así como la experiencia del usuario. Son las páginas que ven después que han solicitado información. Así que tal vez se someten su entrada información-- que lo harían en un controlador, que hablaremos en un segundo. Ellos tal vez presenten su Información Entrar, y la base de datos se consulta. Se solicita la información y sacados de la base de datos. Y a continuación, una vez que el usuario de conectado en, ven su página de inicio. Eso es un punto de vista, ¿de acuerdo? Y entonces el controlador es lo que hay llamado la lógica de negocio de su sitio. Y la lógica de negocio es uno de esos términos que es una especie de wishy-washy-- gustaría, ¿qué significa la lógica de negocio? Básicamente su negocio la lógica es su PHP. Su usuario no necesita para ver directamente el PHP, pero su PHP es probablemente lo que está pasando estar haciendo peticiones a la base de datos. Así que la entrada de la voluntad del usuario información en una vista, que integrará un controlador. Al igual, que van a tipo en un formulario. ¿Cómo que los procesos de forma la información es el controlador. Ese es el PHP que en realidad que hace la solicitud al modelo. Y entonces el modelo da información a la vista, lo que le da al usuario, quizás mejor visualizado como sigue. Aqui estamos. Aquí nos tienes en la izquierda, y nuestro modelo Arreglo de paradigma Vista Controlador. ¿Como funciona? El nosotros-- user-- hace un solicitar al controlador. Sometemos información tales como por una forma HTTP. Basado en esto, el controlador de trabajo es asegurarse de que que lo que el usuario ha dado no es algo que podría dañar el modelo. Y por lo que el controlador va a asegurarse de que todo está bien. Se va a mirar con mucho cuidado. Si hay algún error, se detendrá cosas por lo que el usuario no puede llegar al modelo. Pero suponiendo que todo Aceptar y es una consulta válida, el controlador consultará el model-- que va a pedir a proporcionar información. El modelo que proporcionará la información a una página que es un punto de vista, que va a transmitir es que manera, y entonces la vista poblará la información Se pidió a la modelo. Así, por ejemplo, si estamos hablando acerca de acceder a su página de Facebook, por ejemplo. La vista sería los datos que salieron de la modelo que se refiere a sus amigos y las noticias alimentar o cosas por el estilo, ¿verdad? Pero no se vería de otra persona. Usted se lo getting-- envía una consulta, inicia sesión en la excusa model-- yo, una sesión a la página. Los usos del regulador tus datos de acceso para hacer una solicitud a la modelo para hacer Seguro que usted es quien dice ser. Como de la modelo, OK, sí, usted es quien dice ser, así que te voy a dar su servicio de noticias. Te voy a dar los datos en bruto para su servicio de noticias a la vista, y entonces la vista hace bastante, lo procesa de una manera que estamos acostumbrados, se presentan que la información para el usuario. Note la conexión que es no existiendo en este diagrama. No hay conexión directa entre usted y el modelo. Siempre hay este búfer de el controlador en el lado de entrada, y hay un amortiguamiento de la ver en el lado de salida. Tal vez usted es un buen persona, por lo que tal vez usted no haría ningún daño a la modelo, pero tal vez no lo estás. O tal vez hay alguien que es un usuario malintencionado que haría tal vez querer dañar su base de datos, tal vez Eliminar todo, desde su base de datos, que podría ser muy caro. Obviamente, es-- de datos que tiene el usuario hay valor de contar con los datos del usuario. Y así si no ponemos este búfer zona entre el usuario y el database-- el usuario y las cosas model-- No podría estar pasando tan bien para nosotros. Y por lo que es importante tener este paradigma, donde el usuario puede interactuar con la base de datos, seguro, pero que tienen que ir a través de nosotros para hacerlo. Y eso es básicamente la idea con MVC. Se está tratando de implementar la seguridad de datos. Se está tratando de proteger el modelo inadvertidamente o intencionalmente los usuarios maliciosos. Entonces, ¿qué sucede cuando aplicamos este paradigma? Bueno, estamos separando los datos requiere de nuestra website-- la model-- de la lógica que implementa nuestro sitio web de functionality-- la controller-- y de la estética simples y página plantillas que componen nuestra usuario experience-- la vista. ¿Qué significa esto? Bueno, significa que usted puede hacer las vistas visibles para el usuario. Puede ocultar el modelo de distancia. Y el usuario controllers-- tal vez no puede manipular directamente. Ellos no necesitan acceder a su código PHP. Sólo tienen que ver un formulario donde pueden escribir cosas en. Así que tal vez la forma es una vista, el controlador PHP es el que la forma se somete a la controlador hace una consulta para el modelo, el modelo da más información a un punto de vista diferente que muestra información para usted. Sus programas pueden acceder toda su lógica de negocio, pero los usuarios no puede directamente acceder a su lógica de negocio. Y particularmente, tal vez, ilustración visible de este está alguna vez has recibido un error 403 Forbidden. ¿Alguna vez has ido a una web página y visto 403 prohibido? Es algo así como 404 Not Found. 403 Forbidden significa que ha intentado acceder a la una página que no tiene acceso. Tal vez ese sitio es utilizando la separación MVC esconderse de su lógica de negocio que debe existir en el servidor con el fin para que la página funcione, pero no lo hace Quieres tener acceso directo a ella. Así que es posible obtener un error 403 Forbidden. Y ni siquiera importa si se ha identificado. Ningún usuario puede tocar este archivo PHP punto. Sólo pueden tocar éste, y esto uno-- el que pueden touch-- quizás puede interactuar con el archivo bloqueado-down más indirecta que el usuario. Así que, a veces vemos esta permisos error, 403 Forbidden. ¿Cómo podemos cambiar los permisos de forma que las cosas pueden o no pueden ser vistos? Cuando hacemos esto por lo general es utilizar una Comandos de Linux llamada chmod-- C-H-MOD. Para ello, el formato es bastante simple-- chmod, permisos, y cualquier archivo que deseas aplicar ese cambio a. Así, tal vez te gustaría ver algo así- chmod 600 helpers.php. O tal vez te gustaría ver esto-- chmod un x más que incluye directorio. Fue Qué significa esto, sin embargo? Así, hay dos maneras diferentes que los permisos son generalmente aplicado usando chmod. El primero se llama el método de los números octales. Esto por lo general se aplica permisos a tres categorías diferentes de usuarios al mismo tiempo. Así chmod 711 archivo le permitiría el derecho a leer, escribir y ejecutar su archivo, permitiría otros-- específicamente su grupo y el mundo-- sólo para ejecutar el archivo. Eso es lo que esto se traduce en. El primer número que hay es lo que puede hacer, el segundo número es lo que su grupo puede hacer, y el tercero es lo que el mundo puede hacer. Cualquier persona que está visitando su página, que es el mundo. ¿Cuáles son estos números de hecho traducir al embargo? Así que estos básicamente se traducen como este. Si el permiso es cero, nada puede suceder. Si se trata de uno, puede ejecutar el file-- si ese es su permiso. Si se trata de dos, usted puede escribir el archivo pero no se puede hacer nada más. Si se trata de tres, puede escribir y ejecutar. Y así sucesivamente, como se puede ver. Y siete significa que usted puede hacer todo. Así que ¿por qué son ellos llaman números octales? Bueno, si se piensa en ello, aquí es como noes y síes, y si pensamos acerca de ellos como cajas de color rojo y verde, tal vez eso hace que sea un poco más claro. Pero si pensamos en esas cajas rojas como ceros y los cuadros de color verde como queridos, estos son en realidad tan sólo conjuntos de números binarios, ¿verdad? 000 se traduce a decimal 0; 001, decimal 1; 010 es decimal 2, y así sucesivamente. Y así nos llamamos estos octal números porque hay son ocho posibilidades diferentes. Hay ocho diferentes dígitos si estamos hablando de tres bits de información-- el bit de lectura, la escritura bit, y el bit de ejecución. Así que ahora usted puede hablar binario, decimal, hexadecimal y octal. Así que ya saben cómo comunicarse con computadoras de cada cuatro número diferente sistemas, así que eso es muy bueno. Así, además de la octal esquema de permiso, hay también el permiso simbólica esquema, que es ligeramente diferente y por lo general se utiliza la mejor manera de aplicar o quitar un permiso a través del tablero. Así chmod una x archivo más podría añadir la derecha para ejecutar a los tres categorías de users-- usted, su grupo, y en el mundo. Esa ventaja es la parte añadiendo. El derecho a ejecutar, esa es la x. Y el hecho de que se aplica a todos tres grupos de usuarios serían los a. Así esto-- un x-- más probablemente va que ser exactamente el mismo que chmod 711 presentar, porque si vas hacia atrás y mirar el esquema número octal, queridos y sietes nos la dan derecho a ejecutar un archivo. Así que este es probablemente el mismo. Y usted puede utilizar este guía de referencia para lo que las diversas cosas en el simbólica estructura-ción chmod son. Los elementos verdes aquí serían donde todo el ejemplo de color verde fue hace un segundo. El azul sería el azul. La naranja sería el de naranja. Así que usted puede aplicar las cosas a su grupo, a los demás, para el usuario, o para todos. Usted puede dar a que lean, escribir y ejecutar el acceso, y usted puede agregar o quitar o asignar exactamente un conjunto de permisos que utilizan este modelo. ¿Cómo comprobamos lo que es un esquema de permisos de ficheros es? Antes lo cambiamos, es Probablemente bueno saber en realidad lo que los permisos de archivos son. Una forma de hacer esto es ejecutar ls pero sólo ajustar un poco. Así que si escribo ls lanzan yo-- eso es una minúscula yo-- quizá Voy a ver algo como esto. Se parece un poco críptico, pero la parte que realmente nos importa es la materia de la izquierda allí. Que especifica realidad un esquema de permisos de ficheros. Y usted puede decir probablemente porque es tiene r, de w, x, y de intercalados. Aquellos primera tres-- haciendo caso omiso de la primera por un segundo, que vamos a doble Volver. Los tres primeros después el primero-- por lo que el segundo, tercero, y cuarto caracteres de esa cadena de 10 caracteres son los permisos que tiene. Así que al parecer lo que puedo leer, escribir y ejecutar PHP. Soy capaz de leer, escribir y ejecutar PHP WebDev, y puedo leer y escribir test.php. Mi grupo puede hacer esto. Así que al parecer con el PHP y directorios PHP WebDev, mi grupo puede escribir en ellos, pero nada más. Y el mundo no puede hacer nada. Así que estos archivos no son de acceso público y si trataba de acceder a ellos y no estaba corriendo Apache para que sean accesibles, entonces yo conseguir un error 403. Es un fracaso. He intentado acceder a un archivo, pero yo no tienen permisos para hacerlo. ¿Y cuál es ese primer personaje? Bueno, es probable que pueda extrapolar aquí que el d's se refieren a directorios y el guión se refiere a los llamados "archivos normales." Y tal vez usted ha visto esto cuando tienes intentado eliminar un archivo usando rm. Usted ha visto el mensaje críptico "quite archivo regular" - en este caso, que sería test.php. Fichero regular es sólo algo eso no es un directorio. Hay un par de otros aquí, pero por lo general eres ir a ver d's para los directorios y nada para el primer elemento. Pero eso es realmente todo lo que hay que hacer. Puede comprobar el archivo permisos mediante ls tablero l, puede cambiarlos usando chmod. Y, por supuesto, utilizar these-- cambiando los permisos para hacer cumplir este paradigma MVC proteger los datos en su página web y no permitir que los usuarios para acceder a todo, pero sólo las cosas que necesitan acceder para que su página para trabajar de la manera que quiere que funcione. Soy Doug Lloyd. Esto es CS50.