
fluency
The Fluency framework is a minimalistic web framework for PHP 5.3. Its only purpose is dispatching HTTP requests and providing the developer a way to handle them following the MVC architectural pattern.
Characteristics
- Inspired by functional programming. Actions (controllers), views and action filters are all internally represented as functions. That allows for very flexible and transparent implementations of features like action filtering and rendering. For example, views can be composed like mathematical functions: compare
f(g(x))
tolayout + index
. Anonymous functions, introduced in PHP 5.3, facilitate the use of these features even more. - Supports HMVC natively. HMVC (hierarchical MVC) allows different portions of a page to be served by different controllers. So, for example, if you feel that a poll widget needs its own controller logic and views (like a separate page), you can implement it exactly like that, and then embed the widget in the rest of the page using an internal sub-request.
- Avoids reinventing the wheel. Object-relational mapping, templating, caching and other similar features are not included in Fluency. There are already lots of implementations available for all these features, so you are free to choose the one that suits your needs best. Fluency was designed to allow you to integrate such solutions without any unexpected obstacles.
- Does not trade flexibility for simplicity. Fluency favors convention over configuration, however, there are no hard-coded conventions. For example, view "templates" are implemented as simple PHP files, however, if you wish to use a real templating engine, it can be done seamlessly, by simply adjusting the view resolver, specified in the application bootstrap script — remember that internally, views are just functions.
Getting Started
You can download Fluency following the links on the right. An API reference is also provided in the Downloads section.
To get more acquainted with the framework, a GuestbookTutorial is available.
Feedback
If Fluency interested you, or if it left you some unanswered questions, you are encouraged to ask any questions or state your opinion regarding Fluency by leaving a comment on any of the wiki pages on this site or here. Thank you!
Project Information
- License: MIT License
- 6 stars
- svn-based source control
Labels:
PHP
PHP5.3
WebFramework
PHPFramework
MVCFramework
HMVC