Why I Hate PHP Frameworks, by Analogy Let's say you need to design a skyscraper. To make an effective skyscraper requires a bit of thinking. It should be made of materials that are strong enough to hold it up, but light enough that the building doesn't need to be exponentially thicker at the bottom than at the top. You'll need to take the environment into account. Your building can't blow over at the first stiff breeze, and the basement can't flood when it rain a little harder than usual. The structure will have to allow for some movement of the ground under the building due to settling and/or earthquakes. There'll need to be plumbing and electrical and information networks strung all throughout the building, and it'll all need to work perfectly 24/7. And there are dozens or hundreds of zoning laws, fire codes, and other regulations that need to be taken into account in every detail of your design. Not to mention all the things that make a skyscraper actually useful, which is a whole 'nother story. But not to worry! We have a SKYSCRAPER FRAMEWORK! "Whoop, whoop, goodie!" you say. "If I just base my skyscraper design around that provided by the framework, I won't have to think so much, as all the hard parts will have been taken care of for me!" So you read through the framework's list of features, which includes: - A protractor (which is bent) - A box of rulers (each of which is also bent in a slightly different way) - Some crayons (which crumble when you try to draw with them) - A pad of construction paper (which appears to have had coffee spilled on it a few too many times) - A pile of plywood (no two quite the same size, but all with rusty nails sticking out) - A sketch of a single-story house (with an upside-down roof) for you to base your design on As you become less enthused about this set of tools, you learn that its use is required because your own set of (straight) rulers and (sharpenable) pencils pose too much risk to the project due to the collection having been put together by yourself, rather than a third party. But you must understand: when it comes to assembling sets of tools for skyscraper development, third parties are far more trustworthy than the architect who uses them. --- All this is to say, every third party PHP framework I have ever encountered: - Solves non-problems - Solves them badly Most of the complexity of an application is in the code built on top of the framework, not in the routines that the framework provides. The design of application should incluence the design of its foundation, not the other way around. And people who don't know a good tool from a bad one shouldn't be dictating tool selection to those who actually use them every day.