Solar 0.15.0 alpha released

Yesterday, I uploaded the first non-development (!) release of Solar, version 0.15.0 alpha. I know, "alpha" is only slightly less change-prone than "devel", but it's a move forward and it makes me happy. :-)

You can see the change notes here, but the major updates are:

  • Solar_Uri has been refactored to be much easier to use, from 16 methods down to 5, with better "action" and "public" support, and it works with mod_rewrite now. (N.b.: Jeff Surgeson noted an issue earlier today with non-mod_rewrite subdirectories, but I've committed a fix and will roll 0.15.1 later today.)
  • Solar_User_Auth now calls session_regenerate_id() on all status changes, and calls to session_start() are no longer silenced.
  • Solar_Filter method names have been made consistent with each other.

Speaking of Solar_Filter, it probably bears comparison with Zend_Filter and Zend_InputFilter, seeing as they were recently reviewed at SitePoint. Solar actually has two separate classes for these functions: Solar_Valid, to check if input matches a particular format, and Solar_Filter, to force input to match a particular format. (Solar_Filter was contributed by Matthew Weier O'Phinney some months ago; thanks, Matthew.)

After Solar 0.15.1 has been out the door a couple more days, I'll be ready to start *adding* functionality instead of adjusting (and breaking, and re-fixing ;-) existing functionality. High on the list of new functions will be:

  • a Solar_User_Access class for standardized application-level access control,
  • integration of the Dojo Toolkit for animations and effects (especially on forms),
  • and a new Solar_App_Todo application (for to-do lists, obviously).

I'll be adding more narrative documentation, and perhaps start blogging about usage, as part of future efforts as well.

UPDATE (12:25 CST) -- Just released Solar 0.15.1 with the subdirectory/mod_rewrite fix.

Are you stuck with a legacy PHP application? You should buy my book because it gives you a step-by-step guide to improving your codebase, all while keeping it running the whole time.