The “D” Doesn’t Stand For Dependency Injection

You’ve probably heard of the acronym SOLID by now, which is an object oriented programming paradigm consisting of five basic (but interrelated principles) of object oriented development.

And you’ve probably heard once or twice that the D in SOLID stands for Dependency Injection. Actually, if you’re lucky you’ve also heard what it really stands for, which is the Dependency Inversion Principle. But, in PHP, this is often conflated with dependency injection.


Monday, August 12th, 2013 @ 7:00 am | Comment (4) | Categories: PHP, SOLID, Object-Oriented Development

Using objects doesn’t make an application object oriented

Lots of developers understand that object oriented code offers advantages over procedural programming. And so, they begin working on creating objects in their own projects, and eventually feel pretty good about what they’ve done. After all, if they’re using objects, their code must be object oriented, right?

Well, not exactly. They quickly find out just how limited their code is when they try to implement the concepts of object oriented programming, like reuse and extensibility. And they quickly find that their code is really procedural code wrapped up in classes, not the grand object oriented application they thought it was.


Monday, July 15th, 2013 @ 7:00 am | Comment (2) | Categories: Object-Oriented Development, PHP

Code complexity and clean code

Many people wonder how they can improve the overall readability and cleanliness of their code. It seems impossible to understand exactly how to rewrite code in such a way that makes it clean, easy to understand and simple to work with. But clean code is about a few simple principles, one of which is reducing overall code complexity through a series of simple steps.

I’ve been working on a new book on clean code for the last few months. While I know that I’ll never answer all the considerations regarding clean code, I believe that I can make an impact in showing people how to measure their code’s cleanliness, and know exactly what they need to fix. One metric that I’ve been focusing on for the last few weeks is code complexity.


Wednesday, May 22nd, 2013 @ 7:00 am | Comments (0) | Categories: Object-Oriented Development, PHP, Clean Code

Dealing with duplicated code

We’ve all seen it: we’re working along, and we come across code that just has a feel to it. It’s like déjà vu. You’ve seen this code before. You open another file – sure enough, there it is. The same code. Almost line for line.

In large code bases, it’s likely that there are dozens if not hundreds of similar behaviors that have to be completed more than once. And as code grows, is worked on by multiple developers, or just for the sake of speed, the same code gets copied or rewritten over and over again in different places.


Wednesday, May 15th, 2013 @ 7:00 am | Comments (0) | Categories: Best Practices, PHP 5, Object-Oriented Development, PHP

Making better object oriented design decisions

Last week I finished up the first section of The Object Oriented PHP Masterclass. The class was great, and I learned about as much from my students as they learned from me. One of the most common questions I got from my students was “how do I make decisions about how to design my object oriented applications?” This question got me thinking about object oriented design.

The syntax of object oriented PHP is relatively straightforward…


Friday, May 10th, 2013 @ 7:00 am | Comments (0) | Categories: Best Practices, PHP 5, Object-Oriented Development, PHP

Avoiding object oriented overkill

In the second live session of my object oriented design class, The Object Oriented PHP Masterclass, I show my students domain modeling, both with slides and with a live coding demonstration.

In my demonstration, I show them how I break the single model they’ve been using into three component parts: a value object, a data layer object (usually that talks to the database), and a gateway object that stands between the other two.


Wednesday, May 1st, 2013 @ 7:00 am | Comment (3) | Categories: Best Practices, PHP 5, Object-Oriented Development, Learning, PHP, Refactoring

« Older Entries Newer Entries »

Copyright © 2023 by Brandon Savage. All rights reserved.