Motivations for Flourish
Before work on Flourish began, a good deal of time was spent trying to find a PHP framework or library that accomplished the following:
- Does not require use of MVC, especially the Front Controller variation
- Has good documentation that allows finding what you want with minimal effort
- Handles OS/server portability well, requiring a minimum of non-standard PHP extensions
- Encourages security best-practices and provides tools and examples to secure applications
- Provides an easy to use and consistent API so that end-user code doesn't have to handle as many edge cases
- Does not require manual definition of ORM model schemas or relationships
- Is not released in long monolithic release cycles
- Doesnt require using the developers favorite revision control software (SVN, CVS, GIT, Bazaar, etc) to get the latest code
- Allows removing extraneous code or downloading only what you want
- Provides a simplified and consistent interface to common PHP usage patterns
- Does not simply try to emulate another framework from another language
- Is released under a minimally invasive open source license, to allow for inclusion in closed source code
Research Results
Some of the frameworks and libraries that were investigated include:
PEAR
- Homepage: http://pear.php.net
- License: various
- Overview: A large collection of disjoint classes from many different maintainers, many have poor documentation and a confusing APIs
Propel
Doctrine
Code Igniter
Kohana
- Homepage: http://kohanaphp.com
- License: BSD
- Overview: Originally a fork of Code Igniter, now rebuilt in PHP5. Still strict MVC, decent documentation.
Seagull
Symfony
CakePHP
- Homepage: http://cakephp.org
- License: MIT
- Overview: PHP4/5 MVC framework with lots of communityone of the slowest available
SolarPHP
- Homepage: http://solarphp.com
- License: BSD
- Overview: A huge library/framework with a long release cycle, still in alpha
Zend Framework
Other PHP Frameworks/Libraries
The following are some other (mostly smaller) frameworks and libraries that were not fully reviewed.