|
About
Ubar is yet another in a long line of PHP MVC frameworks. It was created primarily in response to a series of perceived failings in existing
PHP frameworks. Specifically, the coupling of urls to specific php files rather than using a dispatcher, poor internationalization support, and a focus on
templates rather than actions or components. For those of you familiar with Struts and Tiles, these concepts and implementations may be
familiar to you. Please note however that this project is in no way meant to be a port of Struts and Tiles to PHP.
The project is developed and maintained in its entirety by myself, Joshua Ganderson. There are no plans for it to tie into any revenue
stream and I am not available for contracting work or paid feature requests. However, I do welcome feedback and will try to be
responsive to bug reports. While all feature requests will be considered, this is an intentionally bare-bones framework. Unless the feature
is something I expect most developers will use, I will leave it out.
As there has not been any pressing need, this project has remained in its early stages. This website leverages the complete feature set
of the framework and there is significant unit test coverage. However, this is not a high traffic web application and issues of performance,
scalability, and unknown boundary conditions may still be present. Until it has been tested under such conditions, I am willing to work
with early adopters to iron out any issues.
The project is currently hosted at http://code.google.com/p/ubar/. Please visit the project page for bugs, discussion, downloads, etc.
Features
- Locale specific key and argument based message substitution. For example <?= getTxt("dogs.text", array('numDogs' => 5000, 'type' => 'boxers')) ?> with the property entry "dogs.text = I have {numDogs,number,integer} {numDogs,choice,1>dogs|1#dog|1<dogs} and they are all {type}." would evaluate to "I have 5,000 dogs and they are all boxers."
- Dispatcher support. Requests map to arbitrary action classes and results may be associated with views, files, json, action forwards or urls.
- True MVC framework. There is a clear distinction between the model, view and controller (referred to as actions).
- Exposure of public methods from logical layer to presentation layer. For example <?= get('foo') ?> calls a public method getFoo() in the action class.
- Basic DB Support. Configuration support for database connectivity, bootstrapping, and auto schema migration. A number of convenience methods will be added over time.
- Encapsulation of standard site principles. A variety of helper methods support concepts such as page titles, sections, sub sections.
- Template support. Any view may have an associated template. Templates may inherit from one or more parent templates.
Target Audience
The purpose of this framework is to simplify site development, targeting large and/or complex web applications. It is
recommended that you have PHP experience before trying to implement an application or site with this framework.
Current Release
Please see the Downloads section for the most recent release. Alternatively,
you may check out the read only source (svn checkout http://ubar.googlecode.com/svn/trunk/ ubar-read-only).
Getting Started
The most current setup guide is available on the project wiki on the QuickStart page. Once getting set up, it is recommended that you either continue on to the Hello World tutorial or use the sample site included in the release package to familiarize yourself with the framework.
|