Solar is a simple object library and application repository for PHP5. Solar stresses comprehensibility and simplicity; reusable code should be easy to understand, and that’s what I strive for in Solar. It is written with worldwide application distribution in mind, so things like localization are built in from the start.
This release includes a new and very important component: the “Solar_App” class. It takes some superficial hints from Ruby on Rails (but is definitely not comparable to RoR in any meaningful sense). Essentially, Solar_App is an application controller class; when you extend it (e.g. to Solar_App_Bugs, the proof-of-concept bug tracker for Solar) it looks for subdirectories called “controllers”, “models”, “views”, and “helpers”. (So it looks like I have started to adopt “real” MVC methodology after years of shunning it.)
It’s easy enough to define new controller actions: you put your controller scripts in “controllers”, and for each script you can call an action. For example, if you have “edit.php” in controllers/, Solar_App will call it if the “action” URL variable is “edit” (“http://example.com/index.php?action=edit”). There’s a little more to it than that, of course, but the source code is thoroughly commented and should provide a good full-up example for now (it is a proof-of-concept, after all).
One nice thing about distributing apps this way is that they never have to leave the Solar directory itself; you can just create a simple PHP file (5-6 lines) to start Solar, get the application object, and call its output() method; the entire application sits outside the web root. Pretty nifty; you can see an example in the Solar_App_Bugs package (included in the full Solar package).
The full change notes are:
* This is a public development release, and is not yet stable.
* Added Solar_Super class for retrieving superglobals, modified Solar.php to use it
* Added Solar::cookie() method for retrieving cookie values.
* Added Solar::session() method for retrieving session data.
* Added new Solar_App application controller class (with standard directory structure using an MVC architecture inspired by Ruby-on-Rails)
* Solar_User_Auth ‘action*’ keys and values renamed to ‘op*’ (Solar_App now owns the ‘action’ keyword)
* Added validation for ‘new’ and ‘edit’ forms in Solar_Cell_Bugs
* Added Solar_App_Bugs proof-of-concept application based on Solar_App
You can download this release, read the API docs, or join the mailing list — just visit http://solarphp.com.