Modernização de Aplicações Legadas em PHP
Mantenha seu código sob controle seguindo uma série de passos pequenos e concretos.
À medida que você aplicar, em sequência, as refatorações indicadas de forma contínua — cada uma delas se baseando nas anteriores — conseguirá transformar de forma consistente sua aplicação PHP legada, saindo de uma bagunça macarrônica para torná-la uma aplicação organizada, moderna e testável.
Minimum price
$29.99
$34.99
You pay
$34.99Authors earn
$27.99About
About the Book
"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!
Author
About the Authors
Paul M. Jones
Paul M. Jones is an internationally recognized PHP expert who has worked as everything from junior developer to VP of Engineering in all kinds of organizations (corporate, military, non-profit, educational, medical, and others). Paul's latest open-source project is the Atlas Persistence Framework for PHP. Among his other accomplishments, Paul is the lead developer on Aura for PHP and Solar Framework, and the creator of the Savant template system. He has authored a series of authoritative benchmarks on dynamic framework performance, and was a founding contributor to the Zend Framework (the DB, DB_Table, and View components). Paul was a founding member of the PHP Framework Interoperability Group, where he shepherded the PSR-1 and PSR-2 recommendations, and was the primary author on the PSR-4 autoloader recommendation. He was also a member of the Zend PHP 5.3 Certification education advisory board. He blogs at paul-m-jones.com. In a previous career, Paul was an operations intelligence specialist for the US Air Force, and enjoys putting .308 holes in targets at 400 yards.

Episode 20
An Interview with Paul M. Jones
Rogerio Prado de Jesus
Developer, IT consultant and "OpenSourcer" on GitHub. Leo's father, evangelist at PHPSP community, many things at Caixa Economica Federal and creator of PradoJ.com. Technologist Degree (Bachelor) in Data Processing by São Paulo State Technological College (FATEC-SP). Maintainer of RogerioPradoJ.com blog and is co-author/translator into Brazilian Portuguese of the book Modernizing Legacy Applications in PHP. More info on https://rogeriopradoj.com/about/
---
Desenvolvedor, consultor de TI e "OpenSourcer" no GitHub. Pai do Léo, evangelista da comunidade PHPSP, muitas coisas na Caixa e criador da PradoJ.com. Tecnólogo em PD pela FATEC-SP. Mantém o blog RogerioPradoJ.com e é co-autor/tradutor do livro Modernização de Aplicações Legadas em PHP. Mais informações em https://rogeriopradoj.com/about/
Contents
Table of Contents
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
includeembutidas - O processo de substituição
- Dúvidas comuns
- Revisão e próximos passos
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
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them
Write and Publish on Leanpub
You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!
Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.
Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.