Do PHP ao Laminas Domine as boas práticas
Flávio LisboaPrefácio
De acordo com Parish (1990, p. 7), “temos de lembrar que quase todo software passa por manutenção de um tipo ou de outro durante a sua vida”. Por isso, é bom ter uma ferramenta para nos ajudar a criar programas fáceis de manter. É o que Laminas faz para a linguagem de programação PHP, usando o paradigma da Orientação a Objetos.
Este é um livro para quem quer aprender Laminas de verdade. Não é uma "apostilinha" com uma foto bacana na capa, uma mera tradução da documentação, ou uma enorme lista de tópicos iguais a qualquer tutorial da internet – que termina antes mesmo de você ter suas dúvidas esclarecidas.
Se você quer realmente aprender a programar em PHP direito e quer desenvolver com componentes reutilizáveis que podem ser adaptados às suas necessidades – pensando no melhor compromisso entre controle e desempenho –, este é o livro certo.
Você pode utilizar o Laminas (apelido que demos e será usado daqui em diante) como container da sua aplicação, dando todo o poder a ele; ou apenas usar dos componentes que lhe forem convenientes. Este livro tem como foco a primeira opção.
Ele foi escrito para quem programa em PHP, tendo em mente que telepatia não existe e nada é óbvio – a não ser que esteja explícito. Não é um livro para fazer você dormir, mas pode eventualmente evitar que você passe a noite em claro.
O conteúdo foi organizado da seguinte forma: no capítulo 1, fazemos a introdução à nossa emocionante aventura. Primeiro, preparamos o terreno fértil de sua mente, ao desmistificar os termos da arquitetura de software, até chegarmos ao conceito de framework. Isso porque usar algo sem compreender bem do que se trata é como dar o anel do Lanterna Verde ao Patolino.
No capítulo 2, apresentaremos vários padrões e recomendações de desenvolvimento gerais e orientados para PHP. Já no capítulo 3, vamos instalar as ferramentas necessárias e configurar nosso ambiente de trabalho.
Os capítulos 4 e 5 são os guias de referência PHP para este livro. Seu primeiro impulso certamente será pulá-los, mas você poderá retornar sempre que precisar de um fundamento de PHP. Assim, nos capítulos 6 a 9, aplicamos o padrão MVC com Laminas, aprendendo a dar o domínio da nossa aplicação ao framework. Vamos confiar a ele o controle sobre o nosso código. Esses capítulos abordam os componentes Laminas\Mvc e Laminas\View, e o componente de geração de formulários dinâmicos, o Laminas\Form.
No capítulo 10, apresentamos um guia de referência rápida para a implementação MVC do Laminas, que será o seu auxiliar imediato para dúvidas sobre o que você implementou nos capítulos anteriores e para os novos projetos que usarem o Laminas. No capítulo 11, encerraremos o livro com algumas considerações. Por fim, vamos apresentar nosso referencial teórico no capítulo 12, caso você queira refletir sobre o que leu.
Fique tranquilo(a) com relação ao software necessário para fazer bom proveito deste livro, pois todas as ferramentas que usaremos para desenvolvimento do Laminas são livres, como o próprio framework. Este livro foi escrito com base na crença de que devemos remover – e não criar – obstáculos para a aquisição de conhecimento. Restringir o acesso ao conhecimento é uma grande bobagem, e o único efeito concreto que causa é a escassez de bons profissionais.
No final do século XIX, o Japão pulou uma era inteira para alcançar o nível de desenvolvimento tecnológico do Ocidente e tornar-se uma superpotência. Em vez de sucumbirem ao próprio orgulho, tentando fazer as coisas por conta própria, os líderes e técnicos japoneses foram sensatos o bastante para conhecer o que outros países haviam feito e simplesmente assimilarem esse conhecimento. Como veremos durante a leitura, ter é melhor que ser, mas usar é melhor que ter.
Decerto que temos capacidade para criar softwares nacionais (incluindo frameworks), entretanto, não podemos nos esquecer de que disputamos a corrida em condições desiguais. Logo, a estratégia Meiji pode ser a mais adequada em certas situações. Também temos de respeitar a "experiência dos ancestrais".
Assim é a ciência. Nada se faz do zero. Parafraseando Isaac Newton: não podemos fazer nada grandioso se não nos apoiarmos sobre ombros de gigantes. Então, aproprie-se do poder do Laminas e explore seu potencial para criar software de qualidade.
Todo código-fonte dos projetos deste livro está disponível no GitHub, em https://github.com/fgsl/zf3booksamples. Saberei se você leu o prefácio se enviar um e-mail perguntando sobre isso. ;)
Boa sorte, e que o PHP esteja com você!
Sobre o autor
Flávio Gomes da Silva Lisboa é mestre em Tecnologia e Sociedade pela Universidade Tecnológica Federal do Paraná e bacharel em Ciência da Computação, com especialização em Tecnologia Java. Atualmente cursa o doutorado em Tecnologia e Sociedade.
Programador formado pelo Centro Estadual de Educação Tecnológica Paula Souza, já atuou em empresas privadas de TI e foi funcionário do Banco do Brasil, onde atuou como analista na diretoria internacional.
É analista de desenvolvimento do Serviço Federal de Processamento de Dados (Serpro), no qual foi coordenador do Programa Serpro de Software Livre e gerente de equipe de desenvolvimento.
Tem mais de 10 anos de experiência em treinamento de desenvolvedores em programação orientada a objetos, padrões de projeto e uso de frameworks.
Lecinou na pós-graduação da UNICID, em São Paulo, e das faculdades Sant'Anna, em Ponta Grossa. Atualmente é professor de pós-graduação na UNICESUMAR, em Maringá, e na Faculdade Alfa de Umuarama e de graduação no Isulpar, em Paranaguá.
É pioneiro na bibliografia em língua portuguesa sobre Zend Framework e Symfony. Por fim, ele é associado a ABRAPHP, Zend PHP Certified Engineer, Zend Framework Certified Engineer e Zend Framework 2 Certified Architect.
É autor ainda do documentário Rom, Biografia não Autorizada, e da ficção O UM: a solidão e a harmonia.
Sumário
- 1 Introdução
- 1.1 Manutenção de software
- 1.2 Arquitetura de software
- 1.3 Conclusão
- 2 Boas práticas de desenvolvimento
- 2.1 Princípios da boa programação
- 2.2 Calistenia de objetos
- 2.3 Recomendações para desenvolver em PHP
- 3 Bússola do ambiente de desenvolvimento
- 3.1 Apache, MySQL e PHP
- 3.2 Ambiente integrado de desenvolvimento
- 4 Bússola da estrutura de PHP
- 4.1 Configuração do PHP
- 4.2 Tipos de dados
- 4.3 Strings
- 4.4 Arrays
- 5 Bússola de funções e classes de PHP
- 5.1 Funções
- 5.2 Classes e objetos
- 5.3 Data e hora
- 5.4 Diretórios e arquivos
- 5.5 Monitoração e medição em segundo plano
- 5.6 Servidor embutido
- 5.7 Modo interativo
- 5.8 Standard PHP Library (SPL)
- 6 MVC e MVVM com Laminas
- 6.1 Criação do projeto
- 6.2 Edição de projeto
- 6.3 Criação de módulo
- 6.4 Criação das rotas
- 6.5 Criação das ações do controlador
- 6.6 Criação de layout
- 6.7 Integração do Eclipse e do Composer
- 7 Mapeamento objeto-relacional
- 7.1 Banco de dados, modelo e mapeador
- 7.2 Conexão e mapeamento objeto-relacional como serviço
- 7.3 Implementando as ações do controlador
- 8 Formulários dinâmicos
- 8.1 Criando formulários dinâmicos
- 8.2 Validando formulários dinâmicos
- 8.3 Ajustes na alteração de setores
- 8.4 Ajustes na remoção de setores
- 8.5 Modelo e mapeador com relacionamento
- 8.6 Mapeando várias tabelas
- 8.7 Formulário com mapeador
- 9 Visão e controle com relacionamentos
- 9.1 Visões de um modelo relacionado
- 9.2 Um controlador com dois modelos pelo preço de um
- 9.3 Ajustando o módulo Application
- 10 Guia de referência rápida do MVC do Laminas
- 10.1 Modelos
- 10.2 Controladores
- 10.3 Visões
- 10.4 Tipo de documento
- 10.5 Mapeadores
- 10.6 Formulários
- 10.7 Aplicação
- 10.8 Fluxo de processamento da requisição
- 11 Considerações finais
- 12 Referencial teórico
- 13 Referências
Dados do produto
- Número de páginas:
- 273
- ISBN:
- 978-65-86110-49-4
- Data publicação:
- 10/2020