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.