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
  • Doesn’t require using the developer’s 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 community—one 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.