Given the popularity of the Singleton design pattern, how comes that some developers decry it as an “anti-pattern”? Can it really be that bad?
This article explains the rationale of why it can indeed be that bad and provides alternative approaches that should be used instead.
OOP makes use of access modifiers to control the accessibility of methods and properties. This is what allows you to use the concept of encapsulation, so that you have a public interface that consumers of your code can develop against, as well as a private implementation that needs to be treated as a black box from the outside.
Having all of your methods and properties be public generally defeats the purpose of using OOP in the first place, as most of the benefits depend on the concept of encapsulation in some form or other.Read More
What would it take for WordPress to reach a next big milestone of accounting for 51% of the web? Here’s a hypothetical long-term roadmap as a thought experiment, targeting enterprise clients as the next big audience to tackle.Read More
In a previous instalment, we identified the Config file as being a promising tool to map data reusable code to project-specific code. In this third article, we’ll examine what our Settings page example looks like if we do indeed make use of such a Config file.Read More
While the consensus is to use exceptions instead of errors, there is very little information on how to structure and manage them in a larger codebase. In this article, I want to talk about the way I currently set them up and use them in PHP, in the hopes to spark some discussion on the topic and get further feedback.Read More
Naming is a hugely important factor to consider and directly influences how effective my work is and how much I enjoy it. It forces you to think about the very nature of things. This article discusses the PHP convention of adding the suffix “Interface” to your interfaces.Read More
WordPress Philosophy seems to indicate that all design decisions are ultimately run by the user base to get a “democratic” voting of what changes to implement or reject. However, the reality is far from that. Is WordPress missing a “voting” system?Read More
While the first part of this series identified the need to separate business-specific logic from reusable code, we haven’t yet discussed how to best achieve this. Let’s try to think it through…Read More