I guess this question from a point of view / paradigm is to be a beginner. As soon as a programmer has experience writing object-oriented code, you can, of course, use this architecture from the very beginning. In fact, I would say that a top-down approach can save you a tremendous amount of time on large projects.
For the bottom-up scenario that you draw, I would say that you have to feel it. Link this wikipedia article for more information on different approaches, generally speaking.
Specifically for PHP, I would say that you can use this approach for migration:
- , (..:
)
.
- . , static (singleton) .
- / , .
- OO, . : - OO , ( ) .