Encontre milhões de e-books, audiobooks e muito mais com um período de teste gratuito

A partir de $11.99/mês após o período de teste gratuito. Cancele quando quiser.

Do PHP ao Laminas: Domine as boas práticas
Do PHP ao Laminas: Domine as boas práticas
Do PHP ao Laminas: Domine as boas práticas
E-book387 páginas3 horas

Do PHP ao Laminas: Domine as boas práticas

Nota: 3 de 5 estrelas

3/5

()

Ler a amostra

Sobre este e-book

Depois de criado, todo software precisará de manutenção enquanto estiver rodando. Para que esse custo não seja alto, é necessário desenvolvê-lo com ferramentas que facilitem sua manutenção. É o que o framework Laminas faz para a linguagem de programação PHP, usando o paradigma da Orientação a Objetos. Laminas é um framework de código aberto para o desenvolvimento de aplicações e serviços Web com PHP, que segue uma filosofia de componentes desacoplados.

Neste livro, Flávio Lisboa se dirige a você, que quer aprender a desenvolver aplicações orientadas a objeto em PHP sem se tornar prisioneiro de componentes específicos e, assim, reduzir seu custo de manutenção. Este é o livro certo para você aprender a programar em PHP usando desenvolvimento baseado em componentes reutilizáveis, adaptando-os às suas necessidades – pensando no melhor compromisso entre controle e desempenho. Você verá como aplicar o padrão MVC com Laminas, abordando os componentes Laminas\Mvc, Laminas\View, e o componente de geração de formulários dinâmicos, o Laminas\Form. Além do framework, os capítulos incluem vários padrões e recomendações de desenvolvimento gerais e orientados para PHP.

Este livro utiliza PHP 8 como linguagem de programação, Laminas como framework, e Visual Studio Code como ambiente integrado de desenvolvimento. Uma combinação poderosa de ferramentas de código aberto para a construção de software para web.
IdiomaPortuguês
Data de lançamento23 de mar. de 2018
ISBN9788594188526
Do PHP ao Laminas: Domine as boas práticas

Leia mais títulos de Flávio Lisboa

Relacionado a Do PHP ao Laminas

Ebooks relacionados

Programação para você

Visualizar mais

Avaliações de Do PHP ao Laminas

Nota: 3 de 5 estrelas
3/5

1 avaliação0 avaliação

O que você achou?

Toque para dar uma nota

A avaliação deve ter pelo menos 10 palavras

    Pré-visualização do livro

    Do PHP ao Laminas - Flávio Lisboa

    Sumário

    ISBN

    Agradecimentos

    Sobre o autor

    Prefácio

    1. Introdução

    2. Boas práticas de desenvolvimento

    3. Bússola do ambiente de desenvolvimento

    4. Bússola da estrutura de PHP

    5. Bússola de funções e classes de PHP

    6. MVC e MVVM com Laminas

    7. Mapeamento objeto-relacional

    8. Formulários dinâmicos

    9. Visão e controle com relacionamentos

    10. Guia de referência rápida do MVC do Laminas

    11. Considerações finais

    12. Referencial teórico

    13. Referências

    ISBN

    Impresso: 978-65-86110-49-4

    Digital: 978-85-94188-52-6

    Caso você deseje submeter alguma errata ou sugestão, acesse http://erratas.casadocodigo.com.br.

    Agradecimentos

    Agradeço a Deus, pelos milagres e por me sustentar na dificuldade.

    Agradeço à minha esposa, por ser minha companheira.

    Agradeço à minha filha, por ser mais do que eu sonhava quando a imaginei.

    Agradeço a toda a equipe da Casa do Código, por tornar o projeto deste livro realidade, principalmente à Vivian, que transformou o caos do meu pensamento em algo legível.

    Agradeço aos meus colegas da comunidade PHP, que me ensinaram muito e mostraram caminhos para trabalhar melhor. E a todos os leitores que enviaram perguntas, críticas, sugestões e correções.

    Agradeço aos alunos que tenho ensinado e treinado há mais de uma década, os quais compartilharam seus anseios e realidades, e ampliaram meu horizonte.

    Agradeço aos artistas de histórias em quadrinhos, por estimularem minha imaginação e mostrarem que é possível aprender com diversão.

    Agradeço aos excelentes professores que tive a honra de conhecer.

    Agradeço à minha mãe, onde quer que ela esteja, e aos que duvidaram do que eu era capaz de fazer.

    Sobre o autor

    Flávio Gomes da Silva Lisboa (FGSL) é mestre e doutor 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. 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. Lecionou na pós-graduação da UNICID, em São Paulo, nas faculdades Sant'Anna, em Ponta Grossa, na UNICESUMAR, em Maringá, e na Faculdade Alfa de Umuarama. Lecionou no curso de sistemas de informação do Isulpar, em Paranaguá. Atualmente é professor de ensino médio e técnico da ETEC Bento Quirino, do Centro Estadual de Educação Tecnológica Paula Souza.

    É 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 do documentário em seis volumes Rom, Biografia não Autorizada, e dos livros de ficção O Um: a solidão e a harmonia e Pandino, o Imperador, a vingança do Um, estes dois últimos reunidos no volume único Livres ou Iguais: a vingança de Atsu Col, o Um Que é Todos, contra Pandino, o Imperador.

    Também é pesquisador, concentrando seus estudos no tema do software livre e aberto. Seus artigos podem ser encontrados na Biblioteca Digital da Sociedade Brasileira de Computação, a SBC-OpenLib (SOL).

    Prefá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 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. A segunda você poderá conhecer posteriormente em outro livro da Casa do Código, Programação Web Avançada com PHP. Calma, termine de ler este aqui antes.

    Este livro 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 de 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/laminasbooksamples. Boa sorte, e que o PHP esteja com você!

    Capítulo 1

    Introdução

    Os sistemas de computadores, na grande maioria, são difíceis de alterar. Eles assumem o que você precisa antes mesmo de começar a construí-los. – John J. Patrick

    Laminas é um framework de código aberto para o desenvolvimento de aplicações e serviços Web com PHP. Foi o primeiro projeto PHP hospedado pela Linux Foundation, uma organização que tem como membros as maiores empresas de tecnologia da informação do mundo. Laminas é usado por grandes e populares projetos PHP, como Drupal, Joomla, Laravel e Magento.

    O nome Laminas tem o mesmo significado de lâminas em português e foi adotado para enfatizar que o framework permite construir aplicações com camadas tão finas quanto lâminas, o que na prática quer dizer mais resultado com menos código escrito.

    Laminas já nasceu com 15 anos de experiência. Ele é o sucessor do Zend Framework, um produto criado por uma das maiores empresas de soluções para PHP do mundo, a Zend Technologies. Laminas manteve uma característica fundamental do Zend Framework, seguir uma filosofia de componentes use quando quiser.

    De acordo com as premissas de um framework de software, Laminas é implementado usando programação orientada a objetos, o que implica que veremos um pouco sobre isto neste livro. Mas quais as razões para usarmos Orientação a Objetos e componentes na construção de software?

    Precisamos entender o que é software. Ada Lovelace, a mãe da programação de computadores, faz uma definição de software de uma beleza tal que faz jus a seu pai, o poeta Lord Byron. Em poucas palavras, ela afirma que um software pode fazer com que um computador seja capaz de fazer qualquer coisa. Um computador é uma máquina de propósito geral. Sozinho, ele não faz nada. Porém, ele pode ser o núcleo de um sistema complexo. Ele pode controlar lavadoras, fornos, carros, enceradeiras e rádios.

    Mas o que a princípio pode parecer uma panaceia pode revelar-se uma grande armadilha. Isso porque, embora seja imaterial, o software precisa de manutenção. A manutenção é um problema recorrente para quem desenvolve software, e um dos objetivos deste livro é ajudá-lo a resolver esse problema – ou ao menos minimizá-lo, com o uso de orientação a objetos, padrões de projeto e de um framework.

    1.1 Manutenção de software

    O custo é um fator crucial na escolha por um produto. Mas às vezes consideramos apenas o custo de aquisição do bem, sendo que há um outro, proporcional ao seu tempo de consumo, que é o custo de manutenção.

    Software é um produto, ele não deixa de existir após o utilizarmos. E para que ele continue funcionando de forma satisfatória, é necessário realizar ajustes, mudanças e reparos.

    Precisamos encarar o software da mesma forma como encaramos um carro ou um móvel de nossa casa. O carro precisa de revisões periódicas, pois as peças sofrem desgaste. O móvel, como seu nome sugere, pode mudar de lugar, e para isso deve ser fácil movê-lo, desmontá-lo e remontá-lo. Se for um móvel embutido, ele não pode criar impedimentos para reparos, como a vedação de uma tomada ou do orifício por onde passa o cabo da antena.

    A motocicleta do desenho Carangos e Motocas costumava dizer: eu te disse, eu te disse. Bem, alguns autores disseram que o software já era complicado há uma década e ficaria ainda mais. Hoje, eles bem poderiam dizer: nós dissemos, nós dissemos.

    Manter software é algo similar a ser protagonista de um filme de kung-fu produzido em Hong Kong nos anos 1970: você luta sozinho com 30 caras ao mesmo tempo.

    O motivo é simples: a partir de um momento, nós perdemos o controle sobre o software. Perder o controle sobre o software não quer dizer que não sabemos mais o que ele faz, mas, sim, que não sabemos mais como ele faz. Nós deixamos de dominar o software e passamos a operá-lo, como um operário alienado que manuseia uma máquina sem saber exatamente como ela funciona.

    Temos pessoas criando software complexo e precisamos que ele seja fácil de ser mantido. É o paradoxo da programação.

    Mais código, mais problemas

    Bem, você percebeu que tem problemas, mas isso certamente você já sabia, só não queria aceitar. Porém, o primeiro passo para resolver problemas é a aceitação, reconhecer que os problemas de manutenção existem. O segundo passo é mensurá-los de forma realista, porque, imediatamente após reconhecê-los, você vai subestimá-los, dizendo ah, não é tão grave assim. Só que os problemas de manutenção de software são mais graves do que você pensa, e eles só vão piorar com o tempo.

    O programador não é comerciante de frutas e verduras, mas tem de lidar com abacaxis e pepinos com grande frequência. Não se pode evitar que eles apareçam, mas podemos trabalhar para minimizar sua ocorrência e diminuir seu impacto. Embora ninguém queira reconhecer isso – pois não é comercialmente favorável –, problemas não se resolvem completamente na realidade. Eles são reduzidos até uma condição em que seus efeitos sejam irrelevantes.

    Você pode gastar muito tempo para compreender o que o cliente ou o usuário deseja, mas o fato é que a única coisa que certamente vai aumentar entre o início e o fim do projeto é a quantidade de código-fonte. Código-fonte é como praga, erva daninha e coelhos na Austrália: a tendência é só aumentar e se espalhar.

    Desenvolver software implica gerar código-fonte. Quanto mais código-fonte tem um software, mais complexo ele é. Quanto mais complexo, mais difícil fica mantê-lo. Quanto mais difícil é manter algo funcionando, mais caro isso fica. Ou seja, se um software é difícil de manter, isso implica que qualquer mudança é demorada.

    Seria desnecessário dizer isso, mas temos de ressaltar que demorar significa que levará um tempo para ser feito. Tempo é dinheiro, como diria o Tio Patinhas, e, se você não tem tempo, logo, você não tem dinheiro. De uma forma mais clara, se você não tem tempo para fazer manutenção, a qualidade do software cairá; ele vai degradar e gerar mais problemas, e você perderá dinheiro (ou simplesmente não conseguirá ganhá-lo).

    A complexidade do software é diretamente proporcional à dificuldade de mantê-lo. Porém, nem sempre a complexidade presente em um software é necessária. Isto é, o software poderia ser mais simples do que é. No entanto, há um mito disseminado na comunidade de desenvolvedores, que não é privilégio dela, de que só coisas complicadas têm qualidade.

    Segundo Albert Einstein, qualquer tolo inteligente pode fazer coisas grandes, mais complexas e mais violentas, mas é preciso um toque de gênio – e um pouco de coragem – para se mover na direção oposta. Einstein também afirmou que a maioria das ideias fundamentais da ciência é essencialmente simples, e pode, como regra, ser expressa em uma linguagem compreensível para todos. Em consonância com Einstein, Rasmus Lerdorf, o criador do PHP, afirma que a solução mais complexa raramente é a certa.

    Às vezes, conseguimos resolver um

    Está gostando da amostra?
    Página 1 de 1