I have asked myself many times why I would create yet another PHP framework when there are so many.
After working with various PHP frameworks over many years, I have found the following shortcomings in far too many of them:
- Unnecessarily steep learning curve
- Lack of emphasis on scalability, or high performance runtime execution
- Overemphasis on elaborate design patterns
- Rigid code structure and conventions
- Built for traditional server-side PHP processing, relegating JavaScript code to only a supporting role
- Too much focus on trying to do everything rather than do what’s needed really well
- Poor integration with deployment tools and practices
- Inability to work well with large development teams building multiple related projects
- Difficulty implementing proper unit and automated testing
In a nutshell, I often find myself questioning if I should be just building a very simple project as a few PHP files, rather than use a lightweight framework. I want a very simple, lightweight framework that makes it easier for me to build quick applications and stays out of my way. The framework needs to provide the basic tools I need avoiding a need to rebuild common classes and functionality, and yet let me stay focused on the actual details of the particular app being produced. For most frameworks, I’ll spend time focused on doing things the way the framework developers think things must be done, rather than on what the app actually needs.