You asked for a better framework. Here it is.

li₃ is the fast, flexible and most RAD development framework for PHP

li₃: The Definitive Guide
This is your handbook to building li₃ applications. It takes you through getting started, and provides an overview of all aspects of application-building that are covered by the framework.
Framework API
The framework's detailed technical API documentation.

What is li₃?

A framework of firsts

li₃ is the first and only major PHP framework built from the ground up for PHP 5.3+, and the first to break ground into major new technologies, including bridging the gap between relational and non-relational databases through a single, unified API.

Promiscuously opinionated

Some frameworks give you a solid set of classes, but little or no default project organization, leaving you to fend for yourself on each project you create, and spend time wiring up framework classes that should just work together. Others provide you with great organizational conventions, but no way to break out of those conventions if you need to, and too often, no way to override or replace core framework classes.

li₃ is the first framework to give you the best of both worlds, without compromising either. In fact, the framework's API is intentionally designed to allow you to "grow out of" the framework and into your own custom code over the course of your application's lifecycle, if your needs require.


li₃ takes full advantage of the latest PHP language features, including namespaces, late static binding and closures. li₃'s innovative method filter system makes extensive use of closures and anonymous functions to allow application developers to "wrap" framework method calls, intercepting parameters before, and return values after.

The framework also complies with PSR-4, the PHP namespacing standard, allowing you to easily integrate other PHP standard libraries and frameworks with your applications, and vice-versa.

The framework integrates the latest storage technologies, including MongoDB, CouchDB and Redis, with plugin support for Cassandra, ElasticSearch and others.


li₃ gives you full control over your application, from filters to dynamically modify framework internals, to dynamic dependencies to extend and replace core classes with application or plugin classes, to heavy use of adapter-oriented configurations, to make it seamless to move between different technologies and options.

Every component of the framework stack is replaceable through the robust plugin architecture. Swap out the default ORM / ODM implementation for Doctrine 2 or PHP ActiveRecord. Don't like the templating? Use Twig, Mustache, or roll your own.

If you don't even need to write a full application, build a micro-app in a single file using the routing system, without giving up the maintainability of the framework's structure.


Radify Atelier Disko Engine Yard


Some Context

[…] a soft, silver-white metal belonging to the alkali metal group of chemical elements. Under standard conditions it is the lightest metal and the least dense solid element. Like all alkali metals, it is highly reactive and flammable.

In October 2009, CakePHP project manager Garrett Woodworth and developer Nate Abele resigned from the project to focus on li3, a framework code base originally being developed at the CakePHP project as Cake3.

Together with Joël Perras, Alexander Morland, David Persson, Jon Adams, Mariano Iglesias, Jon Anderson and Jeff Loiselle they founded the Union of RAD. The Union of RAD is quite simply described as a community of developers dedicated to helping each other write better software.

Over the years many many more excellent contributors have joined the project, brought it further and keep it alive.

In 2012 the project gained official sponsorship from Engine Yard.

In January 2014 the project underwent a rebranding effort during which it changed its name to li3 which some pronounce [lith-ee-uh m].

Never dumb down the interface, they said. Not everything can and should be abstracted away. In li3 we allow you to access underlying objects wherever possible.

// Accessing a memcache adapter's object methods.
Cache::adapter('default')->cas('token', 'key', 'value');

// Accessing a database connections PDO object to 
// enable transactions.

In the Wild

Are you using li3? Let us know.

If you want to have your project to be listed send an email with the subject li3 - in the wild to David Persson with the following details about your project: title, year the project launched, link to the project website, name of the author, link to the author's website (optional), name of the client, link to the client's website (optional).

Both open and closed source projects are OK. We will be curating this list and thus it may be possible that your submission can not be included. We cannot include projects like libraries or plugins to li3 those are best found through the GitHub search. However we hope to include as many projects as possible and are happy about every submission.

Note: By submitting your project you give Union of RAD the permission to publish it on this site. You also confirm that you have the rights to disclose the fact that li3 was used in building the project and that you have the rights to give us permission to publish its name.