Modernização de Aplicações Legadas em PHP
Modernização de Aplicações Legadas em PHP
Mantenha seu código sob controle seguindo uma série de passos pequenos e concretos.
Sobre o Livro
"Você vai fazer seu código voar como o vento. Ele terá autoload, injeção de dependências, testes unitários, separação de camadas e usará front-controller."
Será que sua aplicação PHP legada é composta de scripts feitos página a página colocados diretamente no diretório raiz (Document Root) do seu servidor web? Esses scripts, juntamente com todas as outras classes e funções, estão misturando as responsabilidades do modelo, visão e controlador (model, view e do controller) dentro do mesmo escopo? A maioria do fluxo lógico está dentro de arquivos include e de funções globais, em vez de pertencerem à métodos de classes? Você já deve saber que o uso intenso de variáveis globais faz com que mudanças sobre um ponto gera consequências inesperadas em algum outro ponto. Estes e outros fatores tornam extremamente difíceis e custosas as implementações de novas funcionalidades e correções de bugs. Trabalhar com essa aplicação legada é semelhante a arrastar os pés na lama.
Mas isso não precisa ser assim. Este livro te mostrará como modernizar sua aplicação por meio da extração e substituição de seus artefatos legados. Vamos usar uma abordagem passo-a-passo, indo devagar e metodicamente, de forma a melhorar sua aplicação desde o início. Além do mais, você vai manter a sua aplicação rodando o tempo todo. Cada um dos passos completado no processo manterá sua base de código totalmente operacional e com um maior qualidade. Quando estiver pronto, você conseguirá entender rapidamente seu código. Ele será carregado via autoload, terá injeção de dependência, testado unitariamente, separado em camadas e terá um front-controller.
Observe que esse livro fala sobre modernização em termos de práticas e técnicas, e não em termos de ferramentas. Nós não vamos discutir sobre os últimos frameworks ou bibliotecas, nem quem é o o mais famoso. Com exceção da apresentação dos sistemas de teste como o PHPUNIT, e uma ou duas bibliotecas de terceiros, o livro não diz para você incluir nenhum código de terceiro em sua aplicação legada. A maior parte do código bem limitado que adicionamos na sua aplicação é específico do livro. Nós iremos nos aperfeiçoar como programadores ao mesmo tempo que melhoramos a qualidade da nossa aplicação legada.
Se você se sentir sobrecarregado por uma aplicação legada, "Modernizando Aplicações Legadas em PHP" é o livro para você. Se preferir uma cópia em papel, a versão em inglês está disponível em Lulu.com.
Se você ainda estiver indeciso, o vídeo "It Was Like That When I Got Here" (embutido na página mais acima) passa rapidamente pelos primeiros cápitulos, de graça, e você pode ler as avaliações do livro na página de feedback. Você também ler a avaliação de 4,5 estrelas do SitePoint.
Lembre de seguir o Twitter do livro (@mlaphp versão em inglês, para versão em português, #mlaphp_pt_br) e conte para seus amigos!
Índice
- Prefácio
- Introdução e Agradecimentos
-
Sobre a tradução
- Agradecimentos da tradução
- Dedicatória da tradução
-
Aplicações legadas
- A típica aplicação PHP
- Reescrita ou refatoração?
- Frameworks legados
- Revisão e próximos passos
-
Pré-requisitos
- Controle de versões
- A versão do PHP
- Editor/IDE
- Guia de estilo
- Suíte de testes
- Revisão e próximos passos
-
Implemente um autoloader
- PSR-0
- Um único lugar para as classes
- Adicionando o código do autoloader
- Dúvidas comuns
- Revisão e próximos passos
-
Consolide as classes e as funções
- Consolide os arquivos de classes
- Consolide funções dentro de arquivos de classe
- Dúvidas comuns
- Revisão e próximos passos
-
Substitua variáveis
global
por injeção de dependências- Dependências globais
- O processo de substituição
- Dúvidas comuns
- Revisão e próximos passos
-
Substitua
new
por injeção de dependências- Instanciação embutida
- O processo de substituição
- Dúvidas comuns
- Revisão e próximos passos
-
Escreva testes
- Lutando contra a resistência aos testes
- Configuração de uma suíte de testes
- Dúvidas comuns
- Revisão e próximos passos
-
Extraia as declarações SQL para Gateways
- Declarações SQL embutidas
- O processo de extração
- Dúvidas comuns
- Revisão e próximos passos
-
Extraia a lógica de domínio para Transactions
- Lógica de domínio embutida
- Padrões de lógica de domínio
- O processo de extração
- Dúvidas comuns
- Revisão e próximos passos
-
Extraia a lógica de apresentação para arquivos de view (visão)
- Lógica de apresentação embutida
- O processo de extração
- Dúvidas comuns
- Revisão e próximos passos
-
Extraia a lógica de ação para Controllers
- Lógica de ação embutida
- O processo de extração
- Dúvidas comuns
- Revisão e próximos passos
-
Substitua os includes nas classes
-
Chamadas
include
embutidas - O processo de substituição
- Dúvidas comuns
- Revisão e próximos passos
-
Chamadas
-
Separe os recursos públicos dos não-públicos
- Recursos misturados
- O processo de separação
- Dúvidas comuns
- Revisão e próximos passos
-
Desacople os caminhos das URLs dos caminhos dos arquivos
- Caminhos acoplados
- O processo de desacoplamento
- Dúvidas comuns
- Revisão e próximos passos
-
Remova a lógica repetida nos scripts de página
- Lógica repetida
- O processo de remoção
- Dúvidas comuns
- Revisão e próximos passos
- Apêndice A: Script de Página Legado Típico
- Apêndice B: Código antes dos Gateways
- Apêndice C: Código depois dos Gateways
- Apêndice D: Código depois dos Transaction Scripts
- Apêndice E: Código antes de agrupar a lógica de apresentação
- Apêndice F: Código depois de agrupar a lógica de apresentação
- Apêndice G: Código depois do objeto Response e do arquivo de view
- Apêndice I: Código depois da extração do Controller
- Apêndice J: Código depois da injeção de dependências no Controller
Garantia de 60 Dias de 100% de Satisfação da Leanpub
Em até 60 dias após a compra, você pode obter um reembolso de 100% em qualquer compra da Leanpub com apenas dois cliques.
Tecnicamente, isso é arriscado para nós, já que você terá os arquivos do livro ou curso de qualquer maneira. Mas estamos tão confiantes em nossos produtos e serviços, e em nossos autores e leitores, que oferecemos com satisfação uma garantia de devolução total do dinheiro para tudo o que vendemos.
Você só pode descobrir o quanto algo é bom experimentando, e por causa da nossa garantia de 100% de devolução do dinheiro, literalmente não há risco em tentar!
Então, não há motivo para não clicar no botão Adicionar ao Carrinho, certo?
Ver termos completos...
Ganhe $8 em uma compra de $10, e $16 em uma compra de $20
Pagamos 80% de royalties em compras de $7,99 ou mais, e 80% de royalties menos uma taxa fixa de 50 centavos em compras entre $0,99 e $7,98. Você ganha $8 em uma venda de $10, e $16 em uma venda de $20. Então, se vendermos 5000 cópias não reembolsadas do seu livro por $20, você ganhará $80.000.
(Sim, alguns autores já ganharam muito mais que isso na Leanpub.)
Na verdade, os autores já ganharammais de $14 milhões escrevendo, publicando e vendendo na Leanpub.
Saiba mais sobre como escrever na Leanpub
Atualizações Gratuitas. Livre de DRM.
Ao comprar um livro da Leanpub, você recebe atualizações gratuitas enquanto o autor continuar atualizando o livro! Muitos autores usam o Leanpub para publicar seus livros em desenvolvimento, enquanto ainda estão escrevendo. Todos os leitores recebem atualizações gratuitas, independentemente de quando compraram o livro ou quanto pagaram (incluindo gratuitos).
A maioria dos livros da Leanpub está disponível em PDF (para computadores) e EPUB (para celulares, tablets e Kindle). Os formatos incluídos em um livro são mostrados no canto superior direito desta página.
Por fim, os livros da Leanpub não possuem nenhuma proteção DRM sem sentido, então você pode lê-los facilmente em qualquer dispositivo compatível.
Saiba mais sobre os formatos de ebook da Leanpub e onde lê-los