- Modernizing Legacy Applications in PHP
- Paul M. Jones
- 324字
- 2021-07-14 10:07:01
Legacy Frameworks
Until now, we have been discussing legacy applications as page-based, include-oriented systems. However, there is also a large base of legacy code out there using public frameworks.
Framework-based Legacy Applications
Each different public framework in PHP land is its own unique hell. Applications written in CakePHP (from different legacy issues than those written in CodeIgniter, Solar, Symfony 1, Zend Framework 1, and so on. Each of these different frameworks, and their varying work-alikes, encourage different kinds of tight-coupling in applications. Thus, the specific steps needed to refactor applications built using one of these frameworks are very different from the steps needed for a different framework.
As such, various parts of this book may be useful as a guide to refactoring different parts of a legacy application based on a public framework, but as a whole, the book is not targeted at refactoring applications based on these public frameworks.
In-house, private, or otherwise non-public frameworks under the direct control of their own architects within the organization likely to benefit from the refactorings included in this book.
Refactoring to a Framework
I sometimes hear about how developers wisely wish to avoid a complete rewrite and instead want to refactor or migrate to a public framework. This sounds like the best of both worlds, combining an iterative approach with the developers' desire to use the hottest new technology.
My experience with legacy PHP applications has been that they are almost as resistant to framework integration as they are to unit testing. If the application was already in a state where its logic could be ported to a framework, there would be little need to port it in the first place.
However, by the time we have completed the refactorings in this book, the application is very likely to be in a state that will be much more amenable to a public framework migration. Whether the developers will still want to do so is another matter.
- Visual Basic .NET程序設計(第3版)
- Maven Build Customization
- Visual Basic程序開發(學習筆記)
- Windows系統管理與服務配置
- 區塊鏈架構與實現:Cosmos詳解
- Data Analysis with IBM SPSS Statistics
- Learning Python Design Patterns
- Integrating Facebook iOS SDK with Your Application
- Learning Laravel's Eloquent
- Unity 2018 Augmented Reality Projects
- 奔跑吧 Linux內核
- SEO教程:搜索引擎優化入門與進階(第3版)
- 第五空間戰略:大國間的網絡博弈
- Game Development Patterns and Best Practices
- 邊做邊學深度強化學習:PyTorch程序設計實踐