DOUG LLOYD: Às vezes quando estamos programando fazemos as coisas tão comumente, por isso, freqüentemente, e tantas pessoas fazer o mesmo idea-- ou o mesmo coisa, que tem um nome. MVC é exatamente um tal coisa. É chamado um paradigma de programação. É como uma espécie de melhores práticas que foram destiladas para baixo por pessoas que tentam fazer alguma coisa. Neste caso, aplicar um sistema de páginas que um utilizador interage com em um site mais complexo. E isso é feito de modo que comumente é recomendado como padrão que outras pessoas podem gostar de seguir, e há um conjunto muito específico de maneiras que se poderia seguir esse paradigma. Assim, MVC é um paradigma, e a razão podemos usá-lo é abstrair detalhes a partir do utilizador. Algumas coisas que o usuário realmente não precisa ver. Eles só querem ter uma boa experiência do usuário, e nós não precisa tê-los acessar todos os arquivos que existe no nosso servidor web, talvez. Pode haver alguns arquivos que são apenas utilizados para reforçar a experiência do usuário, e assim podemos abstrair os que estão longe. Podemos tipo de escondê-los de modo o usuário não pode trabalhar com eles, mas o nosso pages-- nosso pages-- saber como lidar com eles e chamá-los ou talvez exijam, quer que eles, ou algo parecido. A principal motivação para MVC é a segurança dos dados, porque MVC geralmente surge no contexto de trabalhar com bancos de dados. E, em particular, nós quer evitar usuários a partir de bases de dados que impactam directamente. Nós só queremos fazê-lo indiretamente, através do nosso filtração. Ou certificando-se de que tudo está OK por nos fazer um pouco de verificação de erros ou prova de segurança antes de nós enviá-lo para o banco de dados, onde as coisas poderiam dar errado, talvez realmente errado, se não formos cuidadosos. Então MVC significa Model View Controller. O que cada um deles significa? Basicamente, o modelo é o seu banco de dados. É onde toda a dados importantes para o seu site usernames lives--, logins, senhas. E você pode atualizá-lo, se referem a ele, tudo muito bonito assim. Você iria consultar um banco de dados, você pediria informações da base de dados. Essa é a model-- todo o dados onde o seu site vive. A vista é tipo como de a experiência do usuário. É as páginas que vêem depois eles pediram informações. Então, talvez eles apresentar sua information-- de login que eles fariam em um controlador, que nós vamos falar em um segundo. Eles talvez apresentar a sua Informação de Login, eo banco de dados é consultado. A informação é solicitada e puxado a partir da base de dados. E, em seguida, uma vez que o usuário do logado in, eles vêem a sua home page. Isso é uma vista, OK? E, em seguida, o controlador é o que é chamado a lógica de negócios do seu site. E a lógica do negócio é um desses termos que é uma espécie de wishy-washy-- gosta, o que é que a lógica de negócios significa? Basicamente o seu negócio lógica é o seu PHP. O seu usuário não precisa para ver diretamente o seu PHP, mas o PHP é provavelmente o que está acontecendo estar a fazer pedidos para o banco de dados. Assim, a entrada de utilizador vontade informações em uma visão, que irá integrar um controlador. Como, eles vão digitar em um formulário. Como que os processos de formulário a informação é o controlador. Isso é o que é realmente PHP fazendo a solicitação para o modelo. E, em seguida, o modelo dá informações para a vista, o que lhe confere para o utilizador, talvez melhor visualizado como segue. Então aqui estamos nós. Aqui somos nós à esquerda, e nosso Modelo Arranjo paradigma View Controller. Como funciona? O US-- faz um user-- solicitar ao controlador. Nós enviar informações tal como por uma forma de HTTP. Com base nisso, o controlador de trabalho é certificar-se que o que o utilizador tenha dado não é algo que prejudicaria o modelo. E assim, o controlador vai certifique-se de que tudo está OK. Ele vai olhar com muito cuidado. Se houver algum erro, ele vai parar de coisas de modo que o usuário não pode chegar ao modelo. Mas, supondo que tudo está OK e é uma consulta válida, o controlador irá consultar o model-- ele vai pedir-lhe fornecer informações. O modelo vai prever que informações para uma página que é uma visão, ele vai transmiti-lo que caminho, e então o ponto de vista irá preencher as informações solicitado a partir do modelo. Assim, por exemplo, se estamos falando sobre entrando em sua página no Facebook, por exemplo. A vista seria os dados que saiu do modelo que refere-se a seus amigos e as notícias alimentar ou coisas assim, certo? Mas você não veria outra pessoa. Você ficaria tão getting-- enviar uma consulta, você acessar a desculpa model-- me, você acessar a página. As utilizações do controlador suas informações de login para fazer um pedido para o modelo para fazer Certifique-se que você é quem você diz ser. Como o modelo, OK, sim, você é quem você diz ser, então deixe-me dar-lhe o seu feed de notícias. Eu vou dar-lhe os dados brutos para seu feed de notícias para a vista, e, em seguida, a visão torna- bonito, processa-lo de uma forma que estamos acostumados a, exibindo essa informação para o usuário. Observe a conexão que é não existente neste diagrama. Não há nenhuma conexão direta entre você eo modelo. Há sempre esse buffer de o controlador no lado da entrada, e há um tampão do ver no lado da saída. Talvez você é um bom pessoa, e talvez por isso você não faria qualquer dano ao modelo, mas talvez você não é. Ou talvez haja alguém que está um usuário mal-intencionado que seria talvez quer danificar seu banco de dados, talvez apagar tudo do seu banco de dados, o que pode ser muito caro. Obviamente, ter dados de usuário é-- não há valor para ter os dados do usuário. E por isso, se nós não colocar esse buffer zona entre o usuário eo database-- o usuário e as coisas model-- não pode estar indo tão bem para nós. E por isso é importante têm esse paradigma onde o utilizador pode interagir com a base de dados, certeza, mas eles têm que ir através de nós para fazê-lo. E isso é basicamente a idéia com MVC. Ele está tentando implementar a segurança de dados. Ele está tentando proteger o modelo inadvertidamente ou intencionalmente usuários mal-intencionados. Então o que acontece quando nós aplicamos esse paradigma? Bem, nós estamos separando os dados requerido de nossa website-- model-- a partir da lógica que implementa o nosso website da functionality-- o controller-- e da estética simples e página modelos que compõem a nossa usuário experiência-- a vista. O que isto significa? Bem, isso significa que você pode fazer vê visível para o utilizador. Você pode ocultar o modelo de distância. E controllers-- o utilizador não pode talvez manipular diretamente. Eles não precisam de aceder ao seu código PHP. Eles só precisam de ver uma forma onde eles podem escrever material para. Então, talvez a forma é uma visão, o controlador PHP é o que o formulário envia para, a controlador faz com que uma consulta para o modelo, o modelo dá mais informações para uma visão diferente que exibe informações para você. Seus programas podem acessar toda a sua lógica de negócios, mas os usuários não podem diretamente acessar sua lógica de negócio. E particularmente um, talvez, ilustração visível desta é que você já recebeu um erro 403 Forbidden. Você já foi a um web página e visto 403 Proibido? É uma espécie de como 404 Not Found. 403 Proibido significa que você tentou acessar uma página que você não tem acesso. Talvez esse site é usando separação MVC para esconder a sua lógica de negócios que precisa existir no servidor, a fim para a página de trabalhar, mas não quero que você acessá-lo diretamente. Então você pode obter um erro 403 Forbidden. E nem sequer importa se você estava logado. Nenhum usuário pode tocar esse arquivo PHP ponto. Eles só podem tocar este, e este um-- o que pode talvez touch-- pode interagir com o arquivo bloqueado mais do que indiretamente o usuário. Então, às vezes vemos esta permissões erro, este 403 Proibido. Como podemos mudar permissões para que as coisas podem ou não pode ser visto? Quando fazemos isso normalmente é usar um De comando do Linux chamado chmod-- C-H-mod. Para fazer isso, o formato é bastante simple-- chmod, permissões, e qualquer arquivo que você quer para aplicar essa alteração a. Então, talvez você visse algo como isto-- chmod 600 helpers.php. Ou talvez você visse isto-- chmod um plus x que inclui diretório. Foi isso significa embora? Assim, não há duas maneiras diferentes que as permissões são geralmente aplicado usando chmod. O primeiro é chamado de método números octal. Isso normalmente se aplica permissões para três categorias diferentes dos utilizadores, ao mesmo tempo. Então chmod 711 arquivo permitem que você o direito de ler, escrever e executar seu arquivo, permitiria outros- especificamente seu grupo e do mundo-- para executar somente o arquivo. Isso é o que isto traduz-se. O primeiro número não é o que você pode fazer, o segundo número é o que o seu grupo pode fazer, eo terceiro é o que o mundo pode fazer. Qualquer um que está visitando seu A página, que é o mundo. O que são esses números realmente traduzir para que? Portanto, estas traduzem basicamente assim. Se a permissão é zero, nada pode acontecer. Se ele é um, você pode executar o file-- se essa é a sua permissão. Se é dois, você pode gravar o arquivo mas você não pode fazer mais nada. Se for três, você pode escrever e executar. E assim por diante, como você pode ver. E sete significa que você pode fazer tudo. Então, por que são esses chamados números octais? Bem, se você pensar sobre isso, aqui é como nãos e sins, e se pensarmos sobre eles como caixas de vermelhas e verdes, talvez que o torna um pouco mais claro. Mas se pensarmos sobre essas caixas vermelhas como zeros e as caixas verdes como aqueles, estes são realmente apenas conjuntos dos números binários, certo? 000 traduz para decimal 0; 001, decimal 1; 010 decimal é 2, e assim por diante. E assim nós chamamos estes octal números, porque há São oito possibilidades diferentes. Há oito dígitos diferentes Se nós estamos falando sobre três bits de information-- o bit de leitura, a escrita bit, e o bit de execução. Então, agora você pode falar binário, decimal, hex, e octal. Então, você sabe como se comunicar com computadores em quatro diferentes números sistemas, de modo que é muito legal. Assim, além da octal regime de permissão, há também a permissão simbólica esquema, que é ligeiramente diferente e normalmente é usada melhor para aplicar ou remover uma permissão através da placa. Então chmod um x arquivo mais pode adicionar-se o direito para executar a todos os três Categorias de users-- mesmo, o seu grupo, e no mundo. Essa é a parte mais adicionando. O direito de executar, que é o x. E o fato de que ela se aplica a todos três grupos de usuários seria o um. Então isto-- um x-- mais é provavelmente vai para ser exatamente o mesmo que chmod 711 arquivo, porque se você voltar e olhar para o esquema de número octal, queridos e sevens-nos a dar- direito de executar um arquivo. Portanto, esta é provavelmente a mesma. E você pode usar este guia de referência para o as várias coisas no estrutura simbólica chmod-ing são. Os itens verdes aqui seria onde todos o exemplo de cor verde foi um segundo atrás. O azul seria o azul. A laranja seria a laranja. Então você pode aplicar as coisas para o seu grupo, para os outros, para o usuário, ou a toda a gente. Você pode dar-lhes ler, escrever e executar o acesso, e você pode adicionar ou remover ou atribuir exatamente um conjunto de permissões usando este modelo. Como podemos verificar o que um regime de permissão de arquivo é? Antes de alterá-lo, é provavelmente bom para realmente saber o que as permissões de arquivo são. Uma maneira de fazer isso é executar ls mas apenas ajustá-lo um pouco. Então, se eu digitar ls traço l-- isso é um minúsculas l-- talvez Eu vou ver algo como isso. Parece um pouco enigmática, mas a parte que realmente se preocupam com é o material à esquerda ali. Isso, na verdade, especifica um regime de permissão de arquivo. E você provavelmente pode dizer porque é tem de r, w de e X do intercaladas. Aqueles primeiro three-- ignorando o primeiro por um segundo, quais vamos dobrar para trás a. Os três primeiros depois o first-- de modo que o segundo, terceiro, e quarto caracteres dessa seqüência de 10 caracteres são as permissões que você tem. Então, aparentemente, eu posso ler, gravação e execução PHP. Sou capaz de ler, escrever e executar PHP WebDev, e eu posso ler e escrever test.php. O meu grupo pode fazer isso. Assim, aparentemente, com o PHP e diretórios PHP Webdev, o meu grupo pode escrever para eles, mas nada mais. E o mundo não pode fazer nada. Então, esses arquivos não são acessíveis ao público e se eu tentasse acessá-los e eu não estava rodando Apache para torná-los acessíveis, então eu iria obter um erro 403. É um fracasso. Eu tentei acessar um arquivo, mas eu Não tem permissões para fazê-lo. E o que é que o primeiro personagem? Bem, você provavelmente pode extrapolar aqui que o d's referem-se aos diretórios eo traço refere-se a os chamados "arquivos regulares." E talvez você já viu isso quando você tem tentou remover um arquivo usando rm. Você já viu a mensagem críptica "remover arquivo regular" - neste caso, seria test.php. Arquivo regular é apenas algo isso não é um diretório. Há um par de outros aqui, mas geralmente você é vai ver d's para diretórios e nada para o primeiro elemento. Mas isso é realmente tudo o que existe para ela. Você pode verificar arquivo permissões usando ls traço l, você pode alterá-los usando chmod. E, claro, usar these-- alterando as permissões para fazer cumprir este paradigma MVC para proteger os dados em seu site e não permitir que os usuários para acessar tudo, mas apenas as coisas que eles precisam para acessar a fim de que a sua página para trabalhar da maneira que você quer que ele funcione. Eu sou Doug Lloyd. Este é CS50.