Esta rubrica tem como objectivo abordar a framework PHP Laravel.
Numa era em que a Web é tão natural para nós, faz todo o sentido que quem queira dar uns passos na programação, os dê de forma sustentada. Como se costuma dizer, perceber o que está por debaixo do “capot”, dominando assim conceitos e definições. Com este pressuposto garantido, a geração vindoura de programadores, e toda a comunidade, será maior e melhor, se todos aplicarem as melhores práticas.
As linguagens de programação são uma ferramenta nas mãos de um artesão. A forma como é implementada é que faz a diferença no produto. Assim, várias linguagens como PHP, Ruby, Python, VB, C#, entre outras, são todas ferramentas, e todas permitem fazer o mesmo produto.
Cada vez que é iniciado um projecto, é necessário recomeçar do zero?
Felizmente, a resposta é: não! Com ferramentas, podemos construir mais ferramentas. Uma má prática seria fazer “copy-paste” de código fonte, repetido por todo o projecto. O caminho certo é abstrair código fonte para funções. A um conjunto de funções chamamos framework.
Com o passar do tempo e com natural evolução, todas as linguagens de programação viram nascer frameworks, que assim aceleram o desenvolvimento de aplicações e definem standards. Ruby viu nascer o Rails, Sinatra. Python viu a Django, web2py. Temos a Microsoft .NET.
Garanto-vos que não haverá melhor caminho a seguir que o de uma framework! Não se vai reinventar a roda, melhor que as frameworks modernas.
Aplicações Web
É um desafio enorme ao meu poder de síntese, conseguir explicar num só artigo todas as possibilidades.
Numa aplicação Web, existe um pedido (request) a um servidor. É executado código pelo servidor (backend), que devolve uma resposta. Esta resposta, interpretada pelo nosso browser, deverá conter código HTML, CSS e Javascript. A partir deste momento, poderão haver execuções de código a nível local. Existem também frameworks de frontend, tais como jQuery, AngularJS, VueJS, ReactJS.
Estas manipulam o documento HTML e CSS. Podem também elas fazer requests a um backend de forma assíncrona. São os requests XHR/Ajax, que tipicamente devolverão respostas JSON, interpretadas assim pelo frontend, ao invés de vermos a página Web a mudar, dando a sensação de uma aplicação desktop.
Da mesma forma, uma aplicação Web pode ser para execução a partir de uma aplicação nativa, seja de Windows, iOS ou Android (RESTful API).
É, de facto, um mundo gigante. Mas, qualquer caminhada de muitos quilómetros começa com um simples passo. Com tempo, vamos abordar estes temas.
Como escolher entre uma linguagem ou framework?
Não há uma resposta certa ou errada. São muitas as variáveis. O PHP é uma componente muito forte no mundo open-source, alavanca projetos como o WordPress, Joomla, Prestashop, Magento e muitos outros. Frameworks populares PHP são a Yii, Symfony, Zend, Codeigniter.
No entanto, a sua sintaxe e características fizeram com que, nos últimos anos, se perdesse o encanto de programar. É algo em que o Laravel veio dar uma lufada de ar fresco! Está a ser mesmo divertido desenvolver Web! Consegue acelerar bastante o desenvolvimento, ser bastante simples, ou poderosa, dependendo de quem for a “conduzir”!
Laravel e o desenvolvimento moderno
Apenas alguns tópicos:
- GIT – Controlo de versões
- Consola Artisan
- Composer – Gestor de Packages
- Eloquent Active Record
- Routes
- Autenticação
- Migrations – Controlo de versões de DB
- Blade – Templates
- Testes automáticos
- Agendador
Convido o leitor a consultar a documentação aqui.
Veja, sobre o lado esquerdo, os tópicos, e tudo aquilo do qual podemos tomar partido. Será mesmo necessário repartir por vários artigos, a explicação de tudo o que podemos aproveitar.
Resumindo
O objectivo desta rubrica será colocá-lo perante uma fantástica framework PHP, sem que antes se deixe de encaixar um mínimo de pressupostos, para entender o que se está realmente a passar aquando da programação.
Iniciar um rumo sem saber o mínimos de Programação Orientada a Objectos pode tornar-se um caminho sinuoso, qualquer que seja a linguagem ou framework!
Assim, gostaria de recolher algum feedback sobre a receptividade a este caminho. A ideia passa por explicar conceitos, complementando com um vídeo! O roadmap tem como característica ser muito versátil, pode (e deve) ser influenciado por vós!
Roadmap – proposta para os próximos passos:
- Hello world! – A primeira aplicação em qualquer linguagem
- PHP – variáveis, funções, DRY (Don’t repeat yourself)
- Classes e Objetos, Propriedades e Métodos
- Extensão de Classes, Métodos encadeados
- Namespaces e Interfaces
- Consola e linha de comandos
- Primeira página – HTML – Conteúdo dinâmico
- Browser Inspector – Ferramentas de Programador
- Bem-vindo ao Laravel!
- Site estático clássico 4 páginas, com Templates
- Bases de Dados
- CRUD – Create, Read, Update, Delete
- Desenvolvimento de WebApp, open-source, a definir pelos leitores!
Há um sem fim de caminhos, mas pretendo ser conduzido por vós, receber feedback e conhecer necessidades reais! Que vos parece?