Esta rubrica tem como objectivo abordar a framework PHP Laravel.
Após o bom feedback recebido no artigo #1 desta rubrica, ainda assim subsistiu a dúvida se faria ou não sentido começar pelo básico, de forma a instruir quem nunca programou, ou acelerar um pouco o ritmo, para não demorar alguns meses até chegar à framework e tirar partido das fantásticas possibilidades ao dispor. A solução passou por fazer um híbrido, onde o leitor terá tempo de praticar e questionar o Google na procura de guias, de forma a sincronizar o passo e acompanhar esta rubrica.
Falou-se também nas micro frameworks, que são mais reduzidas no que toca a componentes, pois o seu objectivo será fazer uma API (Application Programming Interface). Podemos pensar numa API como um conjunto de métodos e respostas, previamente definidos, para que duas camadas de software possam interagir. Assim, as micro frameworks ganham este nome, pois podem ser construídas por menos componentes, podendo então ser mais rápidas e suportar mais pedidos por segundo. Isto pode fazer toda a diferença em aplicações com bastante tráfego.
Assim como em qualquer aplicação (micro ou full size), se houver por exemplo muita interacção com a base de dados, quantos mais pedidos houver, mais depressa vamos necessitar de maior poder de processamento, ou eventualmente, mais servidores e um load balancer. Há outros métodos que permitem adiar tal procedimento: por exemplo, com um bom sistema de cache implementado também pode haver bons ganhos. Puxar N resultados da base de dados e tratá-los em memória, também será mais eficiente que puxá-los individualmente (N+1 Query Problem).
Na nossa rubrica, não vamos poder chegar a todo o lado. Vamos fazer um percurso que vos orientará, e mais que isso (que considero fundamental), implementar conhecimentos base que vos permitirão trilhar o vosso próprio caminho.
Assim, mantemos o rumo por uma “framework full-size”.
O servidor
O caso mais típico pela Web fora será a stack LAMP, acrónimo para Linux + Apache + MySQL + PHP. Existe uma nova tendência para o LEMP, que em vez de Apache, leva NginX (Engine X).
De um modo muito redutor, o Apache vai ser o nosso processo webserver, que irá servir respostas. Se pedirmos uma imagem jpeg, ele irá entregar a foto. Já se pedirmos um ficheiro PHP, ele irá entregar o resultado do processamento do código nesse ficheiro.
NOTA: Numa fase inicial, iremos usar a nossa máquina como servidor da nossa aplicação. Mais à frente, iremos alavancar ferramentas como o Vagrant e VirtualBox, que nos vão permitir desenvolver em qualquer OS, e a nossa aplicação estará a correr num ambiente Linux virtualizado, que terá assim um comportamento igual ou similar ao ambiente de produção – onde está a aplicação disponível para uso, bem como toda uma equipa de programação estará a testar o código fonte em ambiente igual.
Método de Ensino
Seria muito extenso para o leitor, e talvez até maçador, ver vários exemplos de código fonte aqui debitados. Vou tentar, por ajuda de screencast (vídeo), tornar os guias mais interactivos, mais rápidos, e disponibilizar os vários ficheiros se eventualmente quiserem testar. O que não falta na web são recursos deste tipo, com inúmeras lições atrás de lições. Assim vamos tentar inovar.
Quando chegarmos ao tema de OOP (Programação Orientada a Objectos), teremos então este processo alavancado da melhor forma e usaremos ferramentas para colaboração, como GIT e Composer.
Até lá, por muito que bastassem uns trechos de código para o leitor copiar-colar-experimentar, vamos tentando screencasts.
Pontos para hoje:
- Instalação do XAMPP, que nos vai permitir ter PHP e Apache. À altura da realização do guia, foi a versão XAMPP 5.6.15
- Instalação do IDE NetBeans PHP IDE
- Instalação de tema Sublime Monokai
- Hello world! – Ambiente pronto para iniciar aprendizagem!
Download XAMPP NOTA: no decorrer do vídeo, a instalação do XAMPP deu um pequeno bug, mas que se tornou importante explorar. Este será configurado por omissão, para as portas 80 e 443, e assim abordamos o método para descobrir que outras aplicações podem estar a fazer uso dessas portas.
Screencast
Se não conseguir ver o vídeo, clique aqui.
Até breve!