Solar 0.8.0 Released
(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/Example/Class/Locale/'. * 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 class. * 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 properly) * 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 file. * 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.