Design Patterns com PHP 7 Desenvolva com as melhores soluções
Gabriel Anhaia![Livro de Design Patterns com PHP 7 Livro de Design Patterns com PHP 7](http://www.casadocodigo.com.br/cdn/shop/products/cover_c6ca9ed4-fdfe-49f6-b690-877f448ab716_large.jpg?v=1631660939)
Prefácio
Este livro mostra a fundo o uso dos mais variados tipos de Padrões de Projeto (Design Patterns), da forma mais objetiva e clara possível. São apresentadas as melhores soluções para problemas específicos encontrados constantemente na vida de um desenvolvedor de software. Não é um guia para Orientação a Objetos, porém faz uso dos conceitos mais básicos deste paradigma.
Os Padrões de Projeto são independentes de qualquer linguagem, e, no geral, não são complexos depois que entendemos sua ideia. Com toda certeza, posso afirmar que, depois de aprender Padrões de Projeto, sua visão sobre sistemas orientados a objetos muda completamente.
Com eles, conseguimos desenvolver sistemas mais modulares, expansíveis, reutilizáveis e com mais flexibilidade. Podem até ser combinados para se tirar um proveito ainda maior. Eles também são considerados como uma skill fundamental para qualquer desenvolvedor da atualidade.
A quem se destina este livro?
Este livro é destinado a desenvolvedores de software que já tiveram contato ou têm algum conhecimento em Orientação a Objetos e a linguagem de programação PHP. Ele foi feito principalmente para quem quer aprender a implementar Padrões de Projeto em suas aplicações e, no geral, para quem quer aumentar a qualidade dos seus projetos a um outro nível.
Considera-se que o leitor já possua o conhecimento básico necessário para executar scripts e aplicações PHP em um servidor-web de sua preferência (independente do sistema operacional). Também pode ser usado como referencial teórico para outras linguagens de programação além do PHP, por se tratar de um tema mais genérico.
Como devo estudar?
No decorrer do livro, serão apresentados os mais variados Padrões de Projeto, sendo que cada padrão possui um tipo e um nível de dificuldade de implementação. Todas essas informações serão especificadas. Ao passar por cada um deles, serão apresentados descrições, problemas reais que ele se propõe a resolver, diagramas, dicas e, principalmente, uma parte prática a ser exercitada pelo leitor. Essa última parte foi elaborada para que as aplicações reais dos padrões fiquem o mais claro possível.
Ferramentas utilizadas
Nossos exemplos de implementação de código foram desenvolvidos a partir da versão 7.4 do PHP. A IDE usada para escrever os códigos foi a PHP Storm 2020. Entretanto, qualquer editor de texto já é o suficiente para executar os testes (Sublime, Notepad++, Visual Studio Code etc.). Como servidor web para a execução dos scripts, utilizei o MAMP, instalado em um MacOS Catalina.
Exemplos de código
Todos os exemplos de código descritos neste livro podem ser encontrados em um repositório que criei em meu GitHub: https://github.com/gabrielanhaia/design-patterns-php7.
Uma observação é que estou utilizando namespaces e um autoloader simples para o carregamento automático das classes. Desta forma, não é necessário ficar carregando todas manualmente com o uso de funções como o "include" ou "require".
Para usá-los, basta copiar o arquivo "autoloader.php" dentro do repositório e seguir a mesma hierarquia de pastas, conforme especificado nos capítulos seguintes do livro.
Desejo a você uma ótima leitura!
Sumário
- Parte 1 – Início
- 1 Padrões de Projeto no PHP 7.4
- 1.1 Os Padrões de Projeto de software
- 1.2 Orientação a Objetos
- 1.3 PHP 7.0, 7.1, 7.2, 7.3 e 7.4
- 1.4 Boas práticas de programação com PHP
- Parte 2 – Padrões de criação
- 2 Um ponto global de acesso com Singleton
- 2.1 O problema dos logs descontrolados
- 2.2 O padrão Singleton
- 2.3 Resolvendo o problema dos logs com instância única
- 2.4 Conclusão
- 3 Construindo objetos com Factory Method
- 3.1 O problema da startup de automóveis
- 3.2 O padrão Factory Method
- 3.3 Resolvendo o problema dos automóveis
- 3.4 Conclusão
- 4 Prototipação de objetos com Prototype
- 4.1 O problema da editora de livros
- 4.2 O padrão Prototype
- 4.3 Resolvendo o problema da impressão de livros
- 4.4 Conclusão
- 5 Objetos complexos com Builder
- 5.1 O problema da fábrica de foguetes
- 5.2 O padrão Builder
- 5.3 Resolvendo o problema dos foguetes
- 5.4 Conclusão
- Parte 3 – Padrões estruturais
- 6 Tudo se encaixa com Adapter
- 6.1 O problema das diferentes interfaces
- 6.2 O padrão Adapter
- 6.3 Resolvendo o problema do e-commerce
- 6.4 Conclusão
- 7 Descomplicando o sistema com Facade
- 7.1 O problema da alta complexidade dos subsistemas
- 7.2 O padrão Facade
- 7.3 Resolvendo o problema dos módulos altamente complexos
- 7.4 Conclusão
- 8 Agregando funcionalidades com Decorator
- 8.1 O problema dos pontos de ataque dos personagens
- 8.2 O padrão Decorator
- 8.3 Resolvendo o problema dos personagens
- 8.4 Conclusão
- Parte 4 – Padrões comportamentais
- 9 Capturando o estado atual de um objeto com Memento
- 9.1 O problema do software de edição de texto
- 9.2 O padrão Memento
- 9.3 Resolvendo o problema do editor de texto
- 9.4 Conclusão
- 10 Atualização em tempo real com Observer
- 10.1 A confusão da baixa de estoque
- 10.2 O padrão Observer
- 10.3 Resolvendo o problema da baixa de estoque
- 10.4 Conclusão
- 11 Variando partes de um algoritmo com Template Method
- 11.1 O problema do cálculo de impostos
- 11.2 O padrão Template Method
- 11.3 Resolvendo o problema do cálculo de impostos
- 11.4 Conclusão
- 12 A mudança de comportamentos em tempo de execução com Strategy
- 12.1 O problema da compressão de arquivos
- 12.2 O padrão Strategy
- 12.3 Resolvendo o problema da compressão de arquivos
- 12.4 Conclusão
- Parte 5 – Conclusão
- 13 Dicas de leitura
- 14 E agora?
- 14.1 Padrões do GOF não abordados neste livro
- 14.2 Quando aplicar cada padrão?
- 14.3 Além da qualidade na aplicação de Padrões de Projeto
- 15 Referências bibliográficas
Dados do produto
- Número de páginas:
- 194
- ISBN:
- 978-85-94188-63-2
- Data publicação:
- 05/2018. Atualizado em 08/2020.