Programação Web – #12: Laravel Homestead Environment
Abordada no tutorial anterior, a linha de comandos, vamos hoje avançar para um estágio muito próximo de iniciarmos o Laravel, que será o setup do ambiente de desenvolvimento.
Como anteriormente, gostaríamos de recordar que, não é possível formar um programador numa questão de vários tutoriais. Estes servem para boa orientação e início de uma busca por parte do leitor. Servirão de base a quem se quer iniciar, não esquecendo que esta rubrica tem como objectivo a introdução da framework Laravel.
Homestead Vagrant
O Homestead é um ambiente do ecossistema Laravel, é uma máquina virtual, que pode ser corrida via VirtualBox ou VMWare, que garante o ambiente de testes, pela equipa, ou pelo programador, face ao ambiente de produção. Assim, independentemente do Sistema Operativo em que estamos a desenvolver, o código corre num VM Linux, neste caso Ubuntu Server, e as seguintes especificações:
- Ubuntu 14.04
- Git
- PHP 7.0
- HHVM
- Nginx
- MySQL5.7
- MariaDB
- Sqlite3
- Postgres
- Composer
- Node (With PM2, Bower, Grunt, and Gulp)
- Redis
- Memcached
- Beanstalkd
Mais fácil do que parece
Não se deixem intimidar, se é que tal aconteceu, pois vamos passo a passo. Uma vez que não faz muito sentido olhar para barras de progresso de instalações, garantam desde o arranque a instalação standard do
- Vagrant
https://www.vagrantup.com/ - À data, v1.8.1
Requisito do CURL, pelo menos em Windows10, instalem também o
- Microsoft Visual C++ 2010 Redistributable Package
https://www.microsoft.com/en-us/download/details.aspx?id=5555
NOTA: Quem tiver nome de utilizador com acentos/cedilhas, poderá encontrar problemas, recomenda-se que façam outra conta na máquina, para desenvolvimento.
- e do VirtualBox (quem tiver licença VMWare, poderá usá-lo como provider)
https://www.virtualbox.org/ - À data, v5.0.20
(Necessária Virtualização)
Para Windows, será útil:
- Gestor de Ligações Remotas
Vamos configurar ligação SSH à nossa máquina de testes
- Gestor do ficheiro Hosts
https://hostsfileeditor.codeplex.com/
Vamos configurar, na nossa máquina, apontadores de domínios específicos, para a nossa VM
- Tutorial da documentação
https://laravel.com/docs/5.1/homestead
Se o leitor aguentou até aqui, parabéns!
Está a um pequeno passo do desenvolvimento moderno.
Repositórios GIT
Hoje mostramos ainda como trabalhar com um repositório privado, (por sinal deixei público), para poderem dar um quickstart a projetos vossos.
De futuro, quando chegarmos ao último ponto da rubrica, irá ser desenvolvido em cima de um repositório GitHub do PPLware.
Tópicos para hoje
- Homestead Development, Bem-vindo ao Laravel!
Roadmap para os próximos vídeos (dinâmico a cada tutorial):
- Laravel Quickstart
- Model – View – Controller
- Primeira página – HTML – Conteúdo dinâmico
- Browser Inspector – Ferramentas de Programador
- Routes
- Site estático clássico 4 páginas, com Templates
- Bases de Dados
- Migrations
- Middleware
- CRUD – Create, Read, Update, Delete
- Desenvolvimento de WebApp, open-source, a definir pelos leitores!
Ficheiros de Suporte
Hoje não serão necessários ficheiros, serão descarregados do GitHub.
Screencast
Se não conseguir ver o vídeo, clique aqui.
Este artigo tem mais de um ano
Parabéns pelo tutorial, mas eu que não sou da área das TI só consegui acompanhar até ao tutorial 10.
Da parte 11 retive bola como diz o outro.
Desta parte retive o “fiquei sem bateria no rato” 🙂
Mas vou continuar a acompanhar a ver no que isto vai dar.
Continuação de bom trabalho
Olá Mário,
Obrigado por acompanhares.
Não creio que será importante reter em memória como fazer tudo isto, pois é um setup, feito uma vez (teoricamnete, vá).
Espero que dê em boa!
Obrigado pelo feedback!
Faz sentido ter uma noção e aprender os tricks. Até porque de futuro haverá outras tecbologias, outras versões e algo irá mudar e.. o processo será diferente.
Para o próximo, já estaremos a explorar a framework! Até breve!!
Peço desculpa mas acho este capitulo desnecessário. Porque já em laravel cast num dos primeiros tutoriais iniciavam com isto. Mas no novo tutoria deles ja com a nova versão do laravel (5.2) ja não voltaram ao mesmo e acho bem. Porque a pessoa pode fazer os testes numa maquina local quando se ainda é um iniciado (rookie), se a pessoa for mais experiente, aí sim pode pensar neste tipos de ambientes. Acho é so para confundir.
Primeiro devia ser explicado na própria máquina e posteriormente, indicar alternativas de ambientes de desenvolvimento. Que venha o próximo. 😉
Olá jedi.
Hmm não sei a que tutorial te referes, mas espero, e creio que será útil a alguns.
Tutoriais existem muitos pela internet, felizmente! É com eles que a comunidade cresce, e é o objetivo desta rubrica também!
Seria até mais rápido ter começado logo por Laravel, sem ver bases de PHP, ou OOP, composer, git…
O objetivo é divulgação, o leitor terá de aprofundar por si também.
No fim da rubrica, encaminharei para o laracasts.com, onde o Jeffrey aprofunda bastante, sobre bastante.
Obrigado pelo feedback, e desculpa lá qq coisa 🙂 Tks!
Esqueci de referir, mas ser Laravel 5.1 tem que ver com ser versão LTS, como explicado lá atrás.
Não haverá dificuldades em aprender 5.1 e passar para 5.2 a arquitetura está em tudo semelhante.
Tks!
obrigado eu pela rubrica.
Falta é no roadmap, uma coisa que é importante. De como fazer o deploy de uma laravel app no servidor, porque não é so copy & paste. 😉
já agora, o tuturial que referia é o que está precisamente no laracast.
Verdade!! 😉 thanks!!
Olá João, mais uma vez, muito obrigado pela excelente partilha de conhecimentos.
Gostaria que me pudesses ajudar na seguinte questão:
-Tendo já um projeto que gostaria de passá-lo para Laravel, gostaria de saber se existe/aconselhas alguma ferramenta que fizesse reverse engineer da BD existente, para o formato Laravel migrations?
Obrigado desde já
Olá João.
É a minha forma de devolver à comunidade, e tenciono fazer algo tb open source.
O barryvdh tem sempre muita qualidade, mas ele é o primeiro a recomendar o segundo, por estar mais ativo.
https://github.com/barryvdh/laravel-migration-generator
https://github.com/Xethron/migrations-generator
Outra opção que tens, é fazer uma “migration” com o structure dump de toda a tua DB.
Ou seja, a primeira migração coloca logo o ponto agora “inicial” (de transição).
A partir daí, fazes migrations como processo normal, de Adds, ou Alters
Obrigado por acompanhares!
Parabéns por estes magníficos tutoriais.
Apesar de não estar a seguir e não ter interesse (para mim!!) é de louvar este tipo de iniciativa e disponibilidade do João Patrício. Parabéns e que continues assim muito tempo!! 😉
Olá Ricardo,
Como já referi, é uma forma de devolver à comunidade, que por sua vez, tb me faz crescer, todos os dias.
Obrigado pelo feedback, é sempre preenchedor e motivante!
Pessoal para quem queira instalar isto numa máquina Windows, têm uma ferramenta que realiza uma instalação muito simples: LARAGON – https://laragon.org/
+ info: https://innopy.wordpress.com/2015/02/07/laravel-windows/
Cumprimentos 😉
Obrigado pela partilha Nuno.
É interessante. No entanto, acho preferível ter a vm, pois podemos instalar sql server, ou o que quisermos, vá, testar cron jobs, queues.. As tantas no laragon tb. Nada como ter o poder do linux na mão:) ainda assim.. É um projeto a seguir. Obrigado!
Sem contar as ferramentas frontend, gulp grunt browserify node e assim vai.. Far-se-iam do lado do windows é certo.
É otimo termos por onde escolher!
Fica tb a sugestão do laravel valet, para osx.
Happy coding!
Boas.
Antes de mais parabéns pelos tutoriais.
Existe algun inconveniente em usar o xamp/wamp para o desenvolvimento local de laravel?
cumprimentos PL
Obrigado pelo feedback!
Pode trabalhar dessa maneira. No entanto, ao usar a virtual machine, está na verdade a usar o Sistema Operativo do server que vai estar a alojar a aplicação. Desse forma, existem muitas vantagens ao fazê-lo.
Já para não falar dos packages previamente instalados.
Meu conselho: Habitue-se à consola, em Linux, mais cedo ou mais tarde, vai necessitar.
Cumpts
Qual é o comando para criar o ficheiro index.php? Os vídeos vêem-se um bocado mal.
BTW : Estou a seguir todos os vídeos e gosto muito da tua explicação 🙂
Olá, obrigado pelo feedback!
Se se refere ao minuto 10:25, o comando linux para criar ficheiros vazios é: touch index.php
Neste caso, criei o ficheiro na Box/VM, para demonstrar que estaria tb no filesystem windows mapeado.
Pois, devido à compressão.
Houve aqui um interregno por motivos pessoais e profissionais, o tempo não aumenta, mas iremos retomar muito em breve, e de preferência, teremos um portal onde descarregar com qualidade completa, FullHD.
Novidades brevemente, se fizer falta alguma coisa para atender, cursor.pt
Foi com muito entusiasmo que acompanhei os últimos vídeos sobre o Laravel, e tenho uma questão:
Em vez de utilizar o Virtualbox + Vagrant + Homestead, porque não a solução XAMPP + Composer, ficando a máquina local como servidor do projeto que se esteja a desenvolver? Tendo na mesma um repositório online para gestão de versões.
Se não for viável, quais as consequências/desvantagens ou imprevistos que possam surgir?
Muito agradeço desde a resposta.
Foi com muito entusiasmo que acompanhei os últimos vídeos sobre o Laravel, e tenho uma questão:
Em vez de utilizar o Virtualbox + Vagrant + Homestead, porque não a solução XAMPP + Composer, ficando a máquina local como servidor do projeto que se esteja a desenvolver? Tendo na mesma um repositório online para gestão de versões.
Se não for viável, quais as consequências/desvantagens ou imprevistos que possam surgir?
Muito agradeço desde a resposta.
Boas. Obrigado por acompanhar!
A sua aplicação, quando estiver em produção (online), vai estar com windows e xampp?
O propósito da virtualização é esse mesmo, garantir o mesmo ambiente em dev e tests, como em staging e produção.
O homestead(vagrant box) permite-lhe com facilidade trabalhar no OS que tenha, estando pastas da sua máquina (projetos) mapeados para a VM, sem que assim tenha de fazer deploy a cada iteração.
Além disso, pode implementar e testar cron jobs, cache, queues, e outros..
Se tiver macOS, analise o Laravel Valet e/ou Lambo.
Fora isso, para efeitos “académicos”, pode perfeitamente usar como refere.
Obrigado por acompanhar!
Mais uma vez, obrigado por este artigo e todos os outros. Bom trabalho.