Aura for PHP: Lessons Learned, and Looking Ahead

“Libraries first” is the way to go; it imposes good discipline

Extracting is detailed work, but you get testable units

DependencyInjection is awesome …

… but in-library ServiceLocators can be useful

There are still lots of PHP 5.3 users

If you have server or session vars in your HTTP request object, it’s not an HTTP request object

Some packages are still too broad in scope

From PEAR to Composer

People love ORMs

New packages: Aura.Dispatcher, Aura.Includer, Aura.Sql_Query, and others

PHP 5.3 support in some new packages

via Aura for PHP.

Aura Framework: Stable 1.0.0 System Release

The Aura “system” package, which combines a system skeleton and the Aura libraries into a full-stack framework, was released today at 1.0.0 stable. This makes it formally ready for production use (although it has been in production use informally for the past year or so).

You can now start an Aura project with a single Composer command:

composer create-project aura/system /path/to/your/project

Take a look at the installation instructions for more information.

It feels great to have both stable, decoupled, truly independent package libraries and a system that integrates them into a framework. Many, many thanks to everyone involved who helped get us to this point.

Aura for PHP.

Aura Has New Releases: Input, Sql, and View

On the heels of last week’s slew of releases, we have three followups!

The Aura.Input package got a feature-level bump to 1.1.0, with a new FormFactory. Thanks to Hari KT for championing that one.

Aura.Sql is now at 1.3.0, due to lots of work from MAXakaWIZARD to provide SQLite- and PostgreSQL-specific query objects.

Finally, the Aura.View package got a bugfix and is now at 1.2.1; it handles content-type negotiation better for those times when there is no Accept header.

Take a look at all of the Aura packages here – each of them completely decoupled from the others, ready for you to use with no additional dependencies.

via Aura for PHP.

The Devil’s Dictionary for Developers

(With apologies to Ambrose Bierce.)

bloat, bloated
One or more lines of someone else’s code that do something I don’t need right now. Used as a reason to write my own code.
Other people working on my project. “I believe strongly in collaboration; other people should be helping with my projects.”
The performance of my favored projects. (When benchmarks show otherwise, this explains why the benchmark is skewed, measures the wrong things, or doesn’t matter.)
The work that other people have to do.
good coding style
The code looks and feels just as if I wrote it myself.
The work that I have to do.
practical, pragmatism
Whatever is expedient at the moment, regardless of long-term considerations. “Your use of (good practice X) just isn’t practical in this situation.” (Note especially the appeal to absolutes instead of tradeoffs between options; as an aside: “What is ‘practical’ depends on what you want to practice.”)
The project overall is designed just as if I did it myself.
Other people using my code. “I believe strongly in reuse; stop writing your own code and use mine.”
The performance of projects other than my favored ones. (When benchmarks show otherwise, this explains why the benchmark is skewed, measures the wrong things, or doesn’t matter.)

All Aura Libraries Now Stable!

As of yesterday, the three remaining “Google Beta” libraries were marked as stable and released:

Aura.Filter provides validation and sanitizing for data objects and arrays.

Aura.Input has tools to describe and filter user inputs from an HTML form, including sub-forms/sub-fieldsets, fieldset collections, an interface for injecting custom filter systems, and CSRF protection.

Aura.Intl provides internationalization (I18N) tools, specifically package-oriented per-locale message translation.

This means all the Aura library packages are now stable, and formally ready for production use. Woohoo! /me does the happy dance

Read the rest of the entry for other news regarding Aura. Aura for PHP.

(If you like clean code, fully decoupled libraries, and truly independent packages, then the Aura project is for you. Download a single package and start using it in your project today, with no added dependencies.)