(UPDATE: Fixed the broken link to Solar. Thanks, Justin Patrin.)

After *entirely* too long, I've packaged and released Solar version 0.8.0 (devel). I had wanted to release it two weeks ago, but other events demanded priority.

There are lots of changes, so be sure to read the change notes before upgrading. One thing to pay attention to in particular is that I've updated the bundled Savant3 installation to beta 2, and updated the Savant3_Plugin_Form installation to 0.2.1 (dev). You can read the various Savant3 change notes at the Savant site.

You'll find the 0.8.0 release notes for Solar below; be warned, it's quite long.

* WARNING: This is a public development release, and is not yet stable.

* Translations: Jean-Eric Laurent has contributed fr_FR locale files for
all existing classes.  Thanks, JEL!  :-)

* Documentation: added HelloWorld app to the docs/ folder per note from
James Kilbride

* Solar:

    * The environment() setup now uses an improved routine to unset
    variables set from global sources when register_globals is on (per
    Stefan Esser and Richard Heyes)

    * The environment() setup no longer unsets $_REQUEST (although you
    still shouldn't use it if you can reasonably avoid it).

* Solar_Base:

    * If a 'locale' config key is not set, auto-generate one based on
    the class name. For example, 'Solar_Example_Class' maps to

* Solar_Form:

    * Made addValidate() and addFilter() public.

    * In validate(), the 'validate' key is forced to an array; this
    allows you to use just the Solar_Valid method name, and the default
    VALID_* message will be used as the feedback text.

    * The populate() method is now free of the eval() calls copied from
    HTML_QuickForm; we now recursively populate the $submitted property
    with the _populate() method.

    * The values() method is now free of the eval() calls copied from
    HTML_QuickForm; we now recursively build the returned values using
    the _values() method.

    * In the addValidate() method, the $message parameter is now
    optional; if not present, the method uses the generic VALID_* locale
    string for the validation.

* Solar_Form_Load_Xml:

    * Applied patch from Matther Weier O'Phinney to add XML format doc
    comments inline; also fixes a bug where $this was addressed instead
    of $filter.

* Solar_Sql:

    * WARNING: This may be the last release of Solar with the current
    RDBMS API abstraction; a future release should incorporate PDO as
    the underlying abstraction layer.

    * The quote() method now recursively quotes all values in arrays.

    * Added a new select() method in anticipation of Solar_Sql_Select

* Solar_Sql_Driver_*:

    * Added new select() and limitSelect() methods in anticipation of
    new Solar_Sql_Select class. The new limitSelect() method will
    provide much better offset emulation in, e.g., MS-SQL.

* Solar_Sql_Driver_Mssql:

    * Fixed bug in createSequence() method where $start was in
    single-quotes (changed to double-quotes to interpolate the variable

* Solar_Sql_Locale:

    * Added new OP_CREATE, LABEL_OP, and VALID_WORD translation keys

    * Swapped VALID_BLANK and VALID_NOTBLANK translation strings (they
    were backwards)

* Solar_Valid:

    * Added ipv4() method to validate IPv4 addresses; also added test

    * Added locale() method to validate locale code formats; also added
    test file.

    * Added word() method to validate against word characters (regex
    "w" type); also added test file.

    * The nonZero() method now honors the $blank parameter.

* Solar_Template:

    * Updated to use most-recent releases of Savant3 (beta 2) and
    Savant3_Plugin_Form (devel 0.2.1)

    * Updated all Solar/App/*/views/* to use the new Savant3 code

* Solar_User_Auth:

    * Moved driver instantiation to start() instead of __construct();
    this should allow custom drivers better integration into the start()
    process (e.g., single sign-on systems and HTTP-based auth).  This
    eliminates the __construct() method as well.

* Solar_User_Role_Sql:

    * Fixed double-concat bug when generating the WHERE clause
Are you stuck with a legacy PHP application? You should buy my book because it gives you a step-by-step guide to improving you codebase, all while keeping it running the whole time.