Doug LLOYD: Ás veces cando estamos programando facemos as cousas tan comunmente, polo que frecuentemente, e tantas persoas facer o mesmo idea-- ou mesmo cousa, que ten un nome. MVC é exactamente un tal cousa. Chámase un paradigma de programación. É como unha especie de mellores prácticas que foron destiladas abaixo por persoas que tentan facer algo. Neste caso, aplicar un sistema de páxinas que un usuario interactúa con nun sitio máis complexo. E iso está feito para que comunmente recoméndase como estándar que outras persoas poden gustar de seguir, e hai un conxunto moi específico de formas que se podería seguir este paradigma. Así, MVC é un paradigma, ea razón podemos usalo é abstraerse detalles desde o sitio web. Algunhas cousas que o usuario realmente non precisa ver. Eles só queren ter unha boa experiencia de usuario, e nós non precisa telos acceder todos os ficheiros que existe no noso servidor web, quizais. Pode haber algúns arquivos que son só utilizados para reforzar a experiencia do usuario, e así podemos abstraerse os que están lonxe. Podemos tipo de esconde-los de xeito o usuario non pode traballar con eles, pero o noso pages-- noso pages-- saber como tratar con eles e chamalos ou que requiran, quere que eles, ou algo parecido. A principal motivación para MVC é a seguridade dos datos, porque MVC xeralmente xorde no contexto de traballar con bases de datos. E, en particular, nos quere evitar usuarios desde bases de datos que impactan directamente. Nós só queremos facelo indirectamente, a través do noso filtración. Ou asegurarse de que todo está OK por nos facer un pouco de verificación de erros ou proba de seguridade antes de nós envialo para a base de datos, onde as cousas poderían dar mal, quizais realmente mal, se non somos coidadoso. Entón MVC significa Model View Controller. Que cada un deles significa? Basicamente, o modelo é o seu banco de datos. É onde toda a datos importantes para a súa web nome de usuario lives--, logins, contrasinais. E pode actualiza-lo, se refiren a el, todo moi bonito así. Ía consultar unha base de datos, pediría información da base de datos. Esa é a model-- todo o datos que o seu sitio vive. A vista é tipo como de a experiencia do usuario. É as páxinas que ven despois eles pediron información. Entón, talvez presentar súa information-- login que farían nun controlador, que nós imos falar en un segundo. Eles quizais presentar a súa información de login, eo banco de datos é consultado. A información é solicitada e tirado dende a base de datos. E, a continuación, xa que o usuario do logueado in, eles ven a súa páxina principal. Isto é unha vista, OK? E, a continuación, o controlador é o que é chamado a lóxica de negocio do seu sitio. E a lóxica do negocio é un deses termos que é unha especie de wishy-washy-- gusta, que é o que a lóxica de negocio significa? Basicamente a súa empresa lóxica é o seu PHP. O seu usuario non ten para ver directamente o seu PHP pero o PHP é probablemente o que está a suceder estar a facer peticións para a base de datos. Así, a entrada de usuario vontade información nunha visión, que integrar un controlador. Como, van escribir nun formulario. Como que os procesos de formulario a información é o controlador. Iso é o que é realmente PHP facendo a solicitude para o modelo. E, a continuación, o modelo dá información para a vista, o que lle confire ao usuario, quizais mellor visto como segue. Entón aquí estamos nós. Aquí somos nós á esquerda, eo noso Modelo Arranxo paradigma View Controller. Como funciona isto? O US-- fai un user-- solicitar ao controlador. Nós enviar información como por unha forma de HTTP. Con base niso, o controlador de traballo é asegurarse de que o que o usuario teña dado non é algo que prexudicaría o modelo. E así, o controlador vai asegúrese de que todo está OK. Que vai mirar con moito coidado. Se hai algún erro, que vai deixar de cousas de xeito que o usuario non pode chegar ao modelo. Pero, supoñendo que todo está Aceptar e é unha consulta válida, o controlador pode consultar o model-- vai pedirlle proporcionar información. O modelo vai prever que información a unha páxina que é unha visión, vai transmitilo lo que camiño, e entón o punto de vista ha encher a información solicitada a partir do modelo. Así, por exemplo, se estamos a falar sobre entrando na súa páxina de Facebook, por exemplo. A vista sería os datos que saíu do modelo que refírese a seus amigos e as noticias alimentaria ou cousas así, non? Pero non vería outra persoa. Vostede quedaría tan getting-- enviar unha consulta, acceder a escusa model-- me, acceder á páxina. Os usos do controlador información de inicio de sesión para facer unha proposta para o modelo para facer Asegúrese de que vostede é quen di ser. Como o modelo, OK, si, es quen di ser, entón deixe-me dar-lle o seu comentario de noticias. Vou dar-lle os datos en bruto para seu comentario de noticias para a vista, e, a continuación, a visión torna- bonito, procesa-lo dun xeito que estamos afeitos, mostrando esta información para o usuario. Observe a conexión que é non existente neste diagrama. Non hai ningunha conexión directa entre vostede eo modelo. Sempre hai ese buffer de o controlador no lado da entrada, e hai un tapón do ver na parte da saída. Quizais é un bo persoa, e quizais por iso non faría calquera dano ao modelo, pero quizais non o é. Ou que haxa alguén que está un usuario malicioso que sería quizais quere danar a base de datos, é posible borrar todo do seu banco de datos, o que pode ser moi caro. Obviamente, ter datos de usuario é-- non hai valor para ter os datos do usuario. E por iso, se non poñer este buffer zona entre o usuario eo database-- o usuario e as cousas model-- non pode estar indo tan ben para nós. E por iso é importante teñen ese paradigma onde o usuario pode interactuar coa base de datos, seguro, pero eles teñen que ir a través de nós para facelo. E iso é basicamente a idea con MVC. Está tentando aplicar a seguridade de datos. Está tentando protexer o modelo inadvertidamente ou intencionadamente usuarios mal intencións. Entón o que ocorre cando nós aplicamos ese paradigma? Ben, nós estamos separando os datos requirido da nosa website-- model-- dende a lóxica que aplica o noso sitio web da functionality-- o controller-- e da estética sinxela e páxina modelos que compoñen a nosa usuario experiência-- a vista. O que significa isto? Ben, iso significa que pode facer ve visible para o usuario. Pode ocultar o modelo de distancia. E controllers-- o usuario non pode talvez manipular directamente. Eles non precisan de acceder ao seu código PHP. Eles só precisan de ver unha forma onde poden escribir material para. Entón, talvez a forma é unha visión, o controlador PHP é o que o formulario envía, a controlador fai que unha consulta para o modelo, o modelo dá máis información para unha visión diferente que mostra información para ti. Seus programas poden acceder toda a súa lóxica de negocio, pero os usuarios non poden directamente acceder a súa lóxica de negocio. E especialmente un quizais ilustración visible desta é que xa recibiu un erro 403 Forbidden. Xa foi a unha web páxina e ver 403 Prohibido? É unha especie de como 404 Not Found. 403 Prohibido significa que intentou acceder unha páxina que non ten acceso. Quizais ese sitio é usando separación MVC para ocultar a súa lóxica de negocio que Debe existir no servidor, para á páxina de traballar, pero non quero que acceder a ela directamente. Entón podes obter un erro 403 Forbidden. E nin sequera importa se estaba rexistrado. Ningún usuario pode tocar o ficheiro PHP punto. Eles só poden tocar este, e este um-- o que pode talvez touch-- pode interactuar co arquivo bloqueado máis que indirectamente o usuario. Entón, ás veces vemos esta permisos erro, este 403 Prohibido. Como podemos cambiar permisos para que as cousas poden ou non se pode ver? Cando facemos iso normalmente é usar un De comandos de Linux chamado chmod-- C-H-mod. Para iso, o formato é bastante simple-- chmod, permisos, e calquera arquivo que quere para aplicar esta modificación a. Entón, pode vise algo como isto-- chmod 600 helpers.php. Ou que vise isto-- chmod un plus x que inclúe directorio. Foi iso significa aínda? Así, non hai dous xeitos diferentes que os permisos son xeralmente aplicado mediante chmod. O primeiro chámase método números octal. Isto normalmente se aplica permisos para tres categorías diferentes dos usuarios, ao mesmo tempo. Entón chmod 711 arquivo permiten que o dereito de ler, escribir e executar seu ficheiro, permitiría outros- especificamente seu grupo e do mundo-- para realizar soamente o arquivo. Iso é o que isto tradúcese se. O primeiro número non é o que se pode facer, o segundo número é o que o seu grupo pode facer, eo terceiro é o que o mundo pode facer. Calquera que está a visitar o seu A páxina, que é o mundo. Que son eses números realmente traducir para que? Polo tanto, estas traducen basicamente así. Se o permiso é cero, nada pode pasar. Se é un, pode realizar o file-- se esa é a súa autorización. Se é dous, pode gravar o ficheiro pero non pode facer máis nada. De ser tres, pode escribir e executar. E así por diante, como se pode ver. E sete significa que pode facer todo. Entón, por que son eses chamados números octais? Ben, se pensar sobre iso, aquí é como nãos e pecados, e se pensamos sobre eles como caixas de vermellas e verdes, talvez que o fai un pouco máis claro. Pero se pensamos sobre estas caixas vermellas como ceros e as caixas verdes como aqueles, estes son realmente só conxuntos dos números binarios, non? 000 traduce decimal 0; 001, decimal 1; 010 decimal é 2, e así por diante. E así chamamos estes octal números, porque hai Son oito posibilidades diferentes. Hai oito díxitos diferentes Se estamos fala de tres bits de information-- o bit de lectura, a escrita bit, eo bit de execución. Entón, agora pode falar binario, decimal, hex, e octal. Entón, vostede sabe como se comunicar con ordenadores en catro diferentes números sistemas, polo que é moi legal. Así, ademais da octal réxime de autorización, hai tamén o permiso simbólica esquema, que é lixeiramente diferente e normalmente úsase mellor para aplicar ou eliminar un permiso a través da tarxeta. Entón chmod un x ficheiro máis pode engadir-se o dereito para realizar a todos os tres Categorías de users-- mesmo, o seu grupo, e no mundo. Esta é a parte máis engadindo. O dereito de realizar, que é o x. E o feito de que ela se aplica a todos tres grupos de usuarios sería o un. Entón isto-- un x-- máis é probablemente vai para ser exactamente o mesmo que chmod 711 ficheiro, porque se volver e mirar para o esquema de número octal, queridos e sevens connosco a dar- dereito de realizar un arquivo. Polo tanto, esta é probablemente a mesma. E pode usar este guía de referencia para o as moitas cousas no estrutura simbólica chmod-ing son. Os elementos verdes aquí sería onde todos o exemplo de cor verde foi un segundo atrás. O azul sería o azul. A laranxa sería a laranxa. Entón pode aplicar as cousas para o seu grupo, para outros, para o usuario, ou a todo o mundo. Pode darlles ler, escribir e executar o acceso, e pode engadir ou eliminar ou asignar exactamente un conxunto de permisos usando este modelo. Como podemos comprobar o que un réxime de autorización de ficheiro é? Antes de cambia-lo, é probablemente bo para realmente saber o que os permisos do ficheiro son. Unha forma de facelo é facer ls pero só axusta-lo un pouco. Entón, se eu escribir ls trazo l-- iso é un minúsculas l-- quizais Vou ver algo como isto. Parece un pouco enigmática, pero a parte que realmente se preocupan é o material á esquerda alí. Iso, en realidade, especifica un réxime de autorización de arquivo. E probablemente pode dicir por que é ten r, w de e X do intercaladas. Aqueles primeiro three-- ignorando o primeiro por un segundo, que imos dobrar cara atrás a. Os tres primeiros despois o first-- de xeito que o segundo, terceiro, e cuarto caracteres desa secuencia de 10 caracteres son os permisos que ten. Entón, ao parecer, podo ler, gravación e execución PHP. Son capaz de ler, escribir e executar PHP WebDev, e podo ler e escribir test.php. O meu grupo pode facelo. Así, ao parecer, co PHP e directorios PHP Webdev, o meu grupo pode escribir para eles, pero nada máis. E o mundo non pode facer nada. Entón, eses ficheiros non son accesibles ao público e se eu intentase acceder a eles e eu non estaba rodando Apache para tornalos accesibles, entón eu ía conseguir un erro 403. É un fracaso. Intento acceder a un ficheiro, pero eu Non ten permisos para facelo. E que é o que o primeiro personaxe? Ben, probablemente pode extrapolar aquí que o d's refírense aos directorios eo trazo refírese a os chamados "ficheiros regulares." E quizais xa viu iso cando ten intentou eliminar un ficheiro usando rm. Xa viu a mensaxe críptica "eliminar ficheiro regular" - neste caso, sería test.php. Arquivo regular é só algo iso non é un directorio. Hai un par de outros aquí, pero xeralmente é vai ver d's para directorios e nada para o primeiro elemento. Pero iso é realmente todo o que existe para ela. Podes comprobar arquivo permisos usando ls trazo l, pode cambia-los usando chmod. E, por suposto, usar these-- cambiando os permisos para facer cumprir este paradigma MVC para protexer os datos no seu sitio e non permitir que os usuarios para acceder todo, pero só as cousas que precisan para acceder a fin de que a súa páxina para traballar do xeito que quere que funcione. Eu son Doug Lloyd. Este é CS50.