PHP frameworks are a sub-set of web application frameworks that specifically use PHP as the programming language. Wikipedia: A web application framework (WAF) is a software framework that is designed to support the development of dynamic websites, web applications, web services and web resources. The framework aims to alleviate the overhead associated with common activities performed in web development. For example, many frameworks provide libraries for database access, templating frameworks and session management, and they often promote code reuse. http://en.wikipedia.org/wiki/Web_application_framework
Attempted features to evaluate
- How easy/hard to learn, is there good documentation, how fast/slow/efficient is the codebase
- Useful for online Rapid Application Development (RAD) and rapid prototyping
- Uses Model-View-Controller (MVC) architecture
- Current/recent versions and support
- View conventions: can write from scratch and easy templating features
- Pagination shortcuts
- CRUD (create, read, update and delete) DB features
- Can work from a sub-folder, or for multiple apps in sub-folders
- Cache management available
- User/login available
- CSRF protection and other security measures available
The following List is in order of last release date, descending (Bold items did well in my evaluation)
Note: Selected frameworks are limited to ones with recent releases of 2012 or 2013, including releases that are mainly bug fixes.
- CakePHP: moderate to learn, great docs, moderate codebase. Many suggest a high learning curve, but one of the best for easy RAD, large community support.
- Fat-Free: difficult to learn, poor docs, intricate codebase. Codebase doesn’t seem to have any advantage over full PHP.
- Fakoli Rich Data: moderate to learn, good docs, non-MVC codebase. The code base does not separate out the view or allow for easy view customizations.
- Yii: moderate to learn, good docs, overbearing codebase. Features are tied together which reduces customizations for views, lack of docs and community.
- Drupal: moderate to learn, good docs, codebase not easily accessible. Full CMS, poor customization. CMS using symphony.
- Zend: moderate/detailed to learn, good docs, large/slow codebase. Very dependent on customization, may not be as quick for rapid development, big corp. support, less community.
- AiryMVC: difficult to learn, poor docs, intricate codebase. Codebase doesn’t seem to have any advantage over full PHP.
- Kajona: learn, docs, codebase. Originally a CMS, View templates not PHP friendly.
- CodeIgniter: Current co. no longer going to support this product.
- Symfony: moderate/detailed to learn, great docs, large/slow codebase. Drupal built on Symfony. Dependent on customization details like Zend.
- FuelPHP: moderate to learn, decent docs, fast codebase. Great pagination, lack of docs and community compared to CakePHP, moderately easy RAD development.
- Hazaar MVC: moderate to learn, decent docs, codebase not easily accessible. Built for financial applications, limited cross-platform support, not community built/no Git.
- SilverStripe: Code is under development and not yet ready for production use.
- PRADO: moderate to learn, good docs, codebase not easily accessible. No pagination method.
- Seagull: moderate to learn, poor docs, layered codebase. Built on top of PEAR.
- TYPO3: A CMS, not an application building framework.
- AppFlower: For OS application development.
- Lithium: difficult to learn, poor docs. Site doesn’t provide needed info to evaluate.
- PHPixie: easy to learn, great docs, small and simple code. Very easy RAD development, CSRF protection not built in, but can be added through customization.
- Aiki Framework: No site? Made to build sites, not apps.
- Kohana: Co. support will last until November, 2013.
- eZ Publish: CMS using symphony.
- Horde: Site doesn’t provide needed info to evaluate.
- Midgard: poor docs. CMS focus.
- MODX: A CMS, not an application building framework.
- Xaraya: No site, doesn’t provide needed info to evaluate.