Hannes Van De Vreken has a new post on the madewithlove blog on why you should avoid over-abstracting:
Some time ago I started working on an existing project, so I read the documentation before diving in. At the top of the contributing.md file there was this sentence: “Abstract when possible”. Quickly I learned the project contained more abstract classes than a normal project. This leads to too highly coupled, and often unchangeable code.
This post is dedicated on explaining why “abstract when possible” isn’t good advice. Not only in PHP, but in all programming languages.