Programação Web – #12: Laravel Homestead Environment

24 Comentários

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.

clean-coding-best-practices


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

http://www.mremoteng.org/

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.

 

Por João Patrício para Pplware.com

Comentários

24

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Mário
    Mário

    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

    1. Avatar de João Patrício
      João Patrício

      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!

      1. Avatar de João Cavaleiro
        João Cavaleiro

        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.

  2. Avatar de João Patrício
    João Patrício

    Para o próximo, já estaremos a explorar a framework! Até breve!!

  3. Avatar de jedi
    jedi

    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. 😉

    1. Avatar de João Patrício
      João Patrício

      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!

    2. Avatar de João Patrício
      João Patrício

      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!

      1. Avatar de jedi
        jedi

        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.

        1. Avatar de João Patrício
          João Patrício

          Verdade!! 😉 thanks!!

  4. Avatar de João Gomes
    João Gomes

    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á

    1. Avatar de João Patrício
      João Patrício

      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!

  5. Avatar de Ricardo Gaio
    Ricardo Gaio

    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!! 😉

    1. Avatar de João Patrício
      João Patrício

      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!

  6. Avatar de Nuno Ferreira
    Nuno Ferreira

    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 😉

    1. Avatar de João Patrício
      João Patrício

      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!

    2. Avatar de João Patrício
      João Patrício

      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!

  7. Avatar de PL
    PL

    Boas.
    Antes de mais parabéns pelos tutoriais.

    Existe algun inconveniente em usar o xamp/wamp para o desenvolvimento local de laravel?

    cumprimentos PL

    1. Avatar de Joao Patricio
      Joao Patricio

      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

  8. Avatar de Carla Sampaio
    Carla Sampaio

    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 🙂

  9. Avatar de Joao Patricio
    Joao Patricio

    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

  10. Avatar de Cristiano Alves
    Cristiano Alves

    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.

  11. Avatar de Cristiano Alves
    Cristiano Alves

    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.

    1. Avatar de Joao Patricio
      Joao Patricio

      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!

  12. Avatar de João Cavaleiro
    João Cavaleiro

    Mais uma vez, obrigado por este artigo e todos os outros. Bom trabalho.