>> Tudo bem.
Assim, os cursos de instrução.
Catálogo de cursos da Universidade de Harvard tem vários milhares de cursos,
há várias centenas do corpo docente
e há vários dezenas de campos,
ciência da computação apenas sendo um deles,
e eu pensei que iria usar isso como uma oportunidade para começar a pensar
sobre como implementa um aplicação baseada na web padrão
usando PHP e Laravel e também como podemos modelar alguns
destas entidades do mundo real.
Então, para fazer isso vamos usar Laravel, que é apenas um quadro
que adiciona um monte de recursos para PHP,
bem como Jango acrescenta o mesmo para Python,
Rails acrescenta o mesmo com Ruby.
Portanto, há um casal de maneiras diferentes
em que você pode instalar Laravel.
A documentação para Laravel, como você pode recordar
desde a semana passada, é realmente muito rico
e você pode certamente em seu próprio país em jogo em casa
aí com isso e seguir as instruções especificamente,
mas eu estou indo para ir em frente e apenas dar-nos uma rápida,
rápido tour de alguns deles,
semelhante ao que Tim fiz no outro dia,
e eu estou indo primeiro a usar este.
Então Composer é uma espécie de característica nova e melhorada
para o mundo do PHP que faz mais fácil de instalar as coisas.
Se você estiver familiarizado com a Lei Entre no mundo [inaudível]
ou [inaudível] mundo ou Yum no [inaudível]
e mundo chapéu vermelho, este é ainda apenas mais uma ferramenta
que permite que você instalar as coisas
para esse ambiente particular.
Então, se eu fizer Composer, Criar projeto e assim por diante,
que eu vou fazer aqui, vamos em frente e só, eu vou levá-lo
através de alguns destes etapas como fizemos da última vez
sem o sinal de porcentagem, Droga, sem Composer.
Assim, com o Compositor, estou usando uma máquina virtual diferente
do que eu fiz antes.
Vamos fazer isso muito rápido.
Tudo bem, pelo que a instalação Compositor é tão simples como isso.
Então, eu vou fazer uma, eu vou levantar-se Em minha saboneteira por um tempo também.
Isto é, na verdade, uma muito paradigma cada vez mais comum
para a instalação de coisas em computadores das pessoas nos dias de hoje,
onde você essencialmente recuperar uma URL arbitrária,
canalizá-lo através de um intérprete e depois é só fazer o que
esse pedaço de código arbitrário você acabou de baixar diz para fazer.
É muito fácil, pois você está prestes de ver, mas perceber o cético
no seu deve pensar que esta está entre os mais inseguros
coisas que você nunca poderia fazer; download de um arquivo arbitrário
a partir da Internet e, em seguida, cegamente executá-lo por meio
do tubo, mas vamos Confiamos que o instalador é
de facto legítimo hoje.
Eu estou indo para ir em frente e executar este e este vai
para baixar o programa.
Vai baixar um arquivo chamado composer.farphparchive,
e eu estou indo para ir em frente e fazer isso,
sudo-primeiro realmente chmod755composer.far,
que vai torná-lo executável por todos,
e então eu vou fazer compositor mv sudo
para o usuário compositor bin local, eo que é usuário de bin local
para aqueles familiarizados com o Linux?
Para ser claro que eu estou fazendo isso dentro
do aparelho, embora Eu estou usando o terminal no meu MAC.
[Low audio] Exatamente, lo em um diretório,
na verdade, uma ligeira clarificação.
No diretório normalmente chamado / bin
ou / userbin são de fato alguns programas muito populares
como CD e LS e assim por diante.
Em usuário bin locais por convenção não é nada, por padrão, e nós,
os usuários do sistema, pode colocar tudo o que queremos lá
e por padrão, ele está em seu chamado caminho de pesquisa para que
quando você acabou de digitar compositor o sistema operacional, Linux,
vai olhar em que diretório, entre outros
para encontrar o programa em questão, e verifica-se que está tudo bem
renomeá-lo com a extensão do arquivo
porque fizemos lo executável.
Essa coisa vai realmente correr como pretendemos.
Ok, então agora eu vou voltar
à linha propus nós executar mais cedo, o que é isso;
compositor e, em seguida, é preciso um argumento de linha de comando,
que eu sei que só a partir de ler a documentação,
chamado criar-projeto.
Eu preciso especificar o nome do o projeto em que eu quero
a minha base e Laravel / Laravel refere-se essencialmente
para um repositório hub get em que esse código vive.
Catalog é um nome arbitrário Eu vou dar para o meu projeto,
o catálogo de cursos, mas você poderia chamá-lo de foo
ou qualquer outra coisa, e preferem-dist.
É um pouco cortada.
Significa apenas que preferir a última distribuição.
Então, eu estou indo para ir em frente e pressione Enter e, como disse Tim
na quarta-feira que pode às vezes demorar um pouco,
especialmente se você estiver em uma conexão lenta
ou se você não tiver em cache algumas dessas coisas,
mas o que é isso fazendo é que é a verificação
um grupo inteiro de código do online.
Vai devagar para transferi-lo para o meu computador
e quando ele finalmente feito,
Eu vou ter um diretório chamado Catalog dentro
de que é-oops, é por isso.
Catalog, vamos fazer isso de novo.
Ok não correr esse.
Aparentemente você tem uma existente Diretório de catálogo e ele percebe
que no último minuto.
Isso vai ter para mim um diretório chamado Catalog dentro
de que é todo o código que eu preciso
para começar a escrever um web aplicação com Laravel.
Assim, dentro de alguns segundos isso deve chutar
e uma vez que temos esta e mais uma vez se você não está no ponto
onde você é capaz de acompanhar agora,
é totalmente bom, é muito fácil
para recriar estes passos depois no seu próprio aparelho.
Tudo bem. Tudo bem no Enquanto isso, como fazemos isso,
Eu vou puxar se uma outra dica.
Então, você pode ter visto menção Tim
ou editar esse arquivo pela última vez.
O que é um arquivo etc / host e de onde ele mora?
Tudo bem, vamos reverter a tempo.
O que é o DNS, que discutido não muito tempo atrás?
Tudo bem, então sistema de nome de domínio.
Este é apenas o infra-estrutura na Internet
que faz o que em uma frase?
É. [Low audio] Exatamente.
Ele converte nomes de domínio para Endereços IP e vice-versa,
por isso é efetivamente uma tabela de banco de dados grande
com estas duas colunas que têm nomes de domínio totalmente qualificados
à esquerda e endereço IP à direita, por exemplo,
e ele só converte os dois.
Agora que é muito bom e correto mas se você realmente quer
para criar novos nomes de host em a internet, novos nomes de domínios
na internet, você normalmente tem que dar dinheiro a alguém,
você tem que configurar as coisas no seu servidor, seus servidores de nome
e assim por diante, o que é um dor real, e, especialmente,
se nós realmente não quer comprar um nome de domínio, nós só queremos
fingir que temos nosso próprio domínio local,
por exemplo, chamado Catálogo ou Catalog.com
ou qualquer coisa assim.
Bem etc / host permite que você difícil mapeamentos de código entre os nomes de host
e endereços IP em seu próprio computador local, de forma
para enganar, essencialmente, o computador em pensamento
que esse nome de domínio realmente existe naquele IP.
É verificado antes o próprio sistema DNS realmente
está marcada.
Então deixe-me ir para este janela de terminal e parece
como no fundo lá,
tudo tinha baixado êxito,
então o que eu estou indo agora a fazer é a seguinte.
Se você está mais familiarizado do seu 50 ou 51 dias
com G Editar, eu estou indo para ir em frente e fazer isso com G Editar
num primeiro momento, mas estou indo para a frente
e fazer sudo g editar / etc / hosts no interior do aparelho,
e quando eu faço isso, eu sou vai ter uma janela
que se parece com este aqui.
Linhas um tanto enigmáticas só porque eles são longos,
mas, essencialmente, é 127.0.0.1 mapeamento
para alguns nomes de host diferentes, um dos quais é host local,
uma das quais é aparelho e, em seguida, mais um par;
localhost.localdomain, appliance.localdomain.
Estes são apenas convenções para usar coisas como localhost
como nome do host padrão e localdomain
como um alto padrão domínio de nível ou TLD.
Então, observe o que eu já fez com antecedência aqui.
Se eu quero enganar o aparelho em pensar
Catálogo que é de fato uma verdadeiro site na internet,
Eu posso dizer que o aparelho seu endereço IP é 127.0.0.1.
Agora, por que o endereço?
O que é que o IP?
Onde é que ela vem?
Quem é que eu tenho que pedir isso?
[Low audio] O que é isso?
[Low audio] É o loop de endereço para trás,
o que simplesmente significa que este é o endereço IP padrão dado
para praticamente qualquer computador em o mundo que suporta IP,
protocolo de internet, e é um endereço de loop de volta
no sentido de que ele reflete.
Refere-se a si mesmo.
Então, todos nós, se tivermos um aparelho ou até mesmo um MAC
ou PC tem um endereço IP local de 127.0.0.1 e é usado apenas
de modo que você pode falar para si mesmo.
Eu poderia, em teoria figura
o que o IP do aparelho endereço é e digite 192.168
ou o que quer que o número é, mas não é necessário.
Este vai ser invariante e simplesmente sempre funciona.
Então, quando eu salvar o que significa que, em última análise
que em um navegador eu posso ir para http://Catalog, como eu vou fazer aqui,
mas algumas coisas são quebrado para fora dos portões.
Então, o que faz isso normalmente significa,
quando eu não tenho permissões, proibido, para fazer algo,
qual é o seu primeiro instinto para resolver este problema?
Eu fiz o download de um diretório chamado Catalog
em meu diretório anfitriões V, que da semana passada que você vai se lembrar é
onde todo o nosso tipo de sites locais viverá.
O que pode ser quebrado?
Como corrigir?
[Low audio] Permissões.
As permissões de quê?
Ok arquivos potencialmente.
Então, vamos voltar ao nosso janela de terminal aqui.
Estou no meu diretório do host V.
Deixe-me fazer LS e aviso prévio há algumas coisas.
Host local, que vem com o aparelho, vamos colocá-la lá.
Catalog.original, que Eu coloquei lá mais cedo,
que é uma espécie de final versão do que estamos
prestes a mergulhar, e catálogo, que eu apenas o download.
Se eu quero olhar as permissões
no diretório de catálogo, Eu posso fazer LS-L e aviso prévio
que eles estão um pouco diferente dos outros.
O que a permissão é aparentemente o diretório de catálogo,
que acabou de baixar, falta por padrão?
Mesmo se você não tem idéia do que a palavra é que você pode inferir ranzinza
o que há de diferente cada uma destas três linhas?
Ok o que falta entre a linha e uma linha de saída de dois?
Sim? [Low audio] Sim, por isso é faltando a X, que está
para executável e o que isso significa
se um diretório é executável?
Significa apenas que você pode abri-lo.
Pode CD para ele.
Você pode acessar os arquivos no interior do mesmo.
Então, se executáveis, meio de um arquivo é como um programa que pode ser executado.
Um diretório é executável se você pode ir para ele.
Então, eu posso corrigir isso com algumas maneiras.
Eu poderia fazer chmod A plus X, o que significa que todos os mais executável
e então eu posso dizer Catalog.
Ou lembrar da CS50 ou outras classes,
Eu posso ser um pouco mais sofisticado e dizer 0711 ou mais simplesmente 711
em Catálogo, pressione Enter, nada parece acontecer
mas se eu fizer LS-L mais uma vez, notar que é executável
pelo meu grupo, que é o meio de três pedaços e por todos,
que é o direito três bits, e é suficiente para aqueles
ser idêntico para nossos propósitos.
Tudo bem, eu me sinto como se estivéssemos em muito boa forma.
Vamos voltar para o browser e vamos recarregar,
caramba, ainda proibido.
Então, o que mais pode ser quebrado?
Onde mais poderia queremos olhar?
Assim, fixo Catalog, assim se eu entrar em Catalog,
Vamos fazer outro LS, agora há mais coisas aqui e, francamente,
à primeira vista, é esmagador
e ouso dizer que este é um dos as dores de cabeça de frameworks
para fora do portão e que você classificar de ter um monte de acordo com,
mas vamos aprimorar em o que é importante hoje
ea coisa mais importante agora é este diretório.
Se você já usou o aparelho antes que você pode saber
que o acesso público diretório é chamado Pública,
ou no ano passado ele foi chamado HTML, mas temos visto que mudou
ao Público mais comum.
Então, se eu fizer chmod 711 of Public
que parece corrigir esse problema.
Portanto, agora o Público diretório também é executável
e, portanto, acessível.
Vamos ver se nós estamos um passo mais perto.
Vamos recarregar, ainda não bom e agora vai
a ficar um pouco desafiador; este é um pouco mais difícil.
Se eu entrar em Público, recordação Tim nos mostrou que este.
Se eu fizer LS-AL, que lista todos os arquivos no formato longo,
há um arquivo de ponto por assim dizer
onde um arquivo é apenas um ponto arquivo cujo nome de arquivo começa
com um ponto.
O que htaccess fazer?
Bem, vamos olhar nisso.
Ao invés de usar G Editar, Eu vou usar VIM,
você pode usar o Emax ou Nano ou qualquer um dos seus editores preferenciais,
mas se eu olhar aqui esta tem um monte de coisas de baixo nível
que veio com Laravel de distribuição.
Este é um arquivo que o Servidor web Apache entende
e longa história curta, estas várias linhas
de truque de configuração todo o diretório Pública
encaminhamento em quase todos HTTP solicitações para dar um palpite.
Qual arquivo?
Todos os pedidos HTTP de entrada com algumas exceções seriam encaminhados
ao que arquivo, caso contrário conhecido como um controlador de frente?
>> Index.
>> Index.php.
Assim, mesmo se houver um foo.php arquivo ou um arquivo bar.php
no meu diretório Público, o significado dessas linhas
em geral, é a encaminhar todas as solicitações
para index.php menos que esses arquivos realmente existem porque as coisas
como bang-f significa que se o nome de arquivo não existe,
e se a directamente não existe,
encaminhar todas as solicitações para index.php.
Então, daqui a pouco isso vai para que possamos ter a URL do
como http://Catalog/courses/123
onde 123 é a única identificador para um curso
mas não é claramente o nome do um arquivo de modo que o pedido vai
para ser encaminhado para index.php quem vai descobrir,
graças a Laravel e você, onde a rota
essa solicitação HTTP de entrada.
Mas há um problema.
Observe que, por padrão, htaccess não é legível
ou executável.
Executabilidade não é importante mas eu quero fazer chmod644
em htaccess ponto ou Um aviso R. Agora mais
que se eu fizer um tudo perfil, agora é legível.
Agora, se eu cruzo meus dedos aqui e recarga, ufa,
nós tê-lo instalado e funcionando.
Passos tão estúpido que você precisa passar por num primeiro momento,
mas o fato de que eu tipo de passou por isso
tão pedante é exactamente os tipos
de etapas de diagnóstico você deve pensar
sobre sempre que algo é errado,
e mesmo quando um diretório Pode ser errado,
perceber que não pode também ser dot arquivos,
em particular HTAccess ponto que são bastante comuns
em qualquer distribuição Apache,
o que pode criar dores de cabeça como aquele.
Então eu estou ficando um pouco cansado de ir de volta
e para a frente para o aparelho.
Eu prefiro trabalhar em Meu Mac ou até mesmo no meu PC.
Então, como posso fazer isso mesmo truque etc / host?
Bem notar que primeiro deixe-me figura
o que o aparelho de Endereço IP é.
Eu posso fazer ifcongig, o que mostra me alguma saída bastante enigmática
mas aviso ao lado de eth0 ou melhor ao lado eth1
há esse endereço IP aqui.
Eu estou indo para ir em frente e copie esse e dentro
da janela de terminal do meu próprio MAC Vou editar sudo etc / hosts
em meu próprio MAC, que dá me um arquivo procurando similar.
Tudo o que eu vou fazer é isso.
Então, eu vou enganar o meu MAC
em pensar http://Catalog realmente mapeia
para esse endereço IP específico.
Tudo bem, então vamos em frente e salvar este, agora deixe-me fechar
que a janela de terminal e de agora meu MAC usando qualquer navegador que eu quero,
http://Catalog e I ver a mesma coisa.
Agora eu nem sequer tem que se preocupar voltar para [inaudível]
que você pode não gostar de fazer de qualquer maneira, então agora eu estou de volta
em meu próprio computador, usando realmente o aparelho
apenas como um servidor web.
Tudo bem, isso aqui é só uma rápida recapitulação de alguns
das permissões de arquivo podemos querer mudar
e eu cortar alguns cantos em coisas como o favicon ou todos
que interessante, por enquanto.
Tudo bem, então agora vamos começar
para configurar esse padrão Instalação Laravel
para um banco de dados.
Então Tim fez isso brevemente última vez e também o arquivo
em questão é este aqui.
Então, dentro de, deixe-me mudar que isso seja consistente,
Aplicativo Catálogo database.php configuração.
Então, vamos entrar em aplicativo, vamos para configuração
e vamos entrar em database.php.
Portanto, este é um arquivo muito longo, a maioria dos quais é observações,
mas você vai ver se você leia atentamente este processo
que você pode configurar Enquadramentos Laravel e um monte de
para suportar diferentes tipos de bancos de dados.
Talvez você esteja usando o MySQL, talvez você está usando Post [inaudível],
Talvez você esteja usando SQL Lite, há outras coisas
mas se estamos usando o MySQL