Just like with a mature person, there is a great deal of knowledge and craft embedded in Solar, but it also still shows its roots and carries the weight of decisions from early in its life. With all that in mind, it's time to start working on Solar version two, using the formal namespaces and other features of PHP 5.3. There are some other very significant changes on the way as well.

The biggest, most obvious change in the project has been the name - Aura. The second is a structure change - Solar's classes all descended from a base class where Aura's structure is more about independent library packages (more along the lines of the Zend Framework's components) with a "system" package to tie them all together. You can find the current codebase on github.

Solar's form system is pretty powerful and you realize the full beauty when auto generating forms directly from models but by default it uses a DL/DD/DT list for formatting your labels/inputs. If your not a fan of that formatting you can do something about it.

You can define the decorator tags in your framework's installation to replace the tags used for the list, element, label and the value output of the form. One of the comments on the post also suggests using the "decorateAsDiv" method the Solar_Form object provides to force the output into a div.

A lot of cool features are being hatched in branches that should hit trunk in the near future! [...] Things to look forward to are view helpers for various services like Google Analytics and the various CDN loaders although this is still under review and might be a few releases away.

Other new features he mentions include a reworked authentication stack that will allow for more than one auth adapter to be used at one time (his example is a normal login and a Facebook login). To help, an auth module for Facebook will also be included to make this even easier.

On the Solar framework blog today there's a quick new post about a change they've made to their distribution method:

I just switched the solarphp.com PEAR server over from the old Chiara_PEAR_ServerPirum, then plan and execute the conversion and server update. The presentation is not as slick as I'd like, but it's dead-stupid simple to set up, and I can tweak the CSS etc. later.

Pirum is a simpler alternative for a PEAR channel server manager that aims to make it simpler than some of the more complex options offered in the past. You can install Pirum from its PEAR server.

In a quick new post to his blog Richard Thomastalks about a change in one of the two things there's the most complaints about when it comes to the Solar framework - documentation.

The 2 biggest complaints about Solar have been it being in "beta" and lack of good docs.. Well its been out of beta and in release for a few months now so that should no longer be a concern. As for docs you can find the new and improved manual here.

The documentation isn't 100% complete but its head and shoulders above some of the automatically generated manual pages the project has had before. They're also looking for interested parties on writing a book (collaboration anyone?) about the framework to help developers get started. You can find out how to get involved in his post.

Richard Thomas has posted another "Solar Short" to his PHPJack blog today dealing with a method for using multiple authentication methods in a single Solar framework installation.

What if you want to use multiple methods? OpenID? Facebook Connect? Saml? or one of the other dozen+ solutions that you might use.. What to do? One thing to keep in mind, Auth happens really early in the bootstrapping process so things like SQL may not be available yet unless you specifically loaded it in the config.. Then you need to load the proper auth module and call it as needed..

He includes a code example of how it would work - extending the Solar_Auth_Adapter to create a single "multi-adapter" with a switch to evaluate and load/use the correct authentication method. It uses the Solar_Config object to set the Auth Adapter when it's loaded so you can even use multiples in the same page load if you need it.

Yesterday, I announced the release of the 1.0.0 stable version of the Solar Framework for PHP on our mailing list. (I tagged the release four days ago on Monday, but wanted to time the announcement to go along with my Solar presentation at ConFoo.)

The Changelog for the release can be found here and some of the latest updates include improved CSRF features, named actions and optimized queries.

This stable release is the culmination of about five years of development effort, with important contributions from several others in the PHP community. My many thanks to everyone who helped make this release, and all the previous releases, better than I could have made it on my own.

Fabien Potencier released Symfony 2.0.0alpha1 last week, along with some benchmarks showing its performance. I am glad to see that Fabien used my benchmarking system and methodology, and am happy to see that he is paying attention to the performance of his framework. I take this as an acceptance on his part that my methodology is legitimate and valid, and that it has value when comparing framework responsiveness.

Paul points out that Fabien's reporting is a bit inaccurate and goes on to talk about how his numbers are off and what a more correct version of the benchmarks would look like. He takes the testing methodology that Fabien used in his process and reapplies it to his benchmarking process using clean Amazon EC2 instances and Siege to run some response/request testing on software running on each framework. Numbers are run for three different comparisons and results are found...but you'll have to read the rest of the post to find those out.

In this new post to his PHPJack blog today Richard Thomas has another "Solar Short" showing you a handy feature of the Solar framework. This post looks at how to send emails.

Sending email using the Solar Framework is not only extremely simple but very flexible as well. Solar splits the process of sending email into 2 logical parts, creating the message "package" and sending the "package"

He includes a code example of using the Solar_Mail package to create and send an email with a text section, a HTML component and an image attachment. There's also a few lines dedicated to the Solar_Mail_Transport component and how you can use it directly with PHP's mail function.