{
    "href": "/post/2005/09/24/solar-080-released/",
    "relId": "2005/09/24/solar-080-released",
    "title": "Solar 0.8.0 Released",
    "author": "pmjones",
    "markup": "html",
    "tags": [
        {
            "href": "/tag/php/",
            "relId": "php",
            "title": "PHP",
            "author": null,
            "created": null,
            "updated": [],
            "markup": "markdown"
        },
        {
            "href": "/tag/solar/",
            "relId": "solar",
            "title": "Solar",
            "author": null,
            "created": null,
            "updated": [],
            "markup": "markdown"
        }
    ],
    "created": "2005-09-24 20:25:28 UTC",
    "updated": [
        "2005-09-24 20:25:28 UTC"
    ],
    "html": "<p>(UPDATE: Fixed the broken link to Solar.  Thanks, Justin Patrin.)</p>\n<p>After *entirely* too long, I've packaged and released <a href=\"http://solarphp.com\">Solar</a> version 0.8.0 (devel).  I had wanted to release it two weeks ago, but other events demanded priority.</p>\n<p>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 <a href=\"http://phpsavant.com/yawiki/index.php?area=Savant3\">Savant</a> site.</p>\n<p>You'll find the 0.8.0 release notes for Solar below; be warned, it's quite long.</p>\n<p><!--more--></p>\n<pre>* WARNING: This is a public development release, and is not yet stable.\n\n* Translations: Jean-Eric Laurent has contributed fr_FR locale files for\nall existing classes.  Thanks, JEL!  :-)\n\n* Documentation: added HelloWorld app to the docs/ folder per note from\nJames Kilbride\n\n* Solar:\n\n    * The environment() setup now uses an improved routine to unset\n    variables set from global sources when register_globals is on (per\n    Stefan Esser and Richard Heyes)\n\n    * The environment() setup no longer unsets $_REQUEST (although you\n    still shouldn't use it if you can reasonably avoid it).\n\n* Solar_Base:\n\n    * If a 'locale' config key is not set, auto-generate one based on\n    the class name. For example, 'Solar_Example_Class' maps to\n    'Solar/Example/Class/Locale/'.\n\n* Solar_Form:\n\n    * Made addValidate() and addFilter() public.\n\n    * In validate(), the 'validate' key is forced to an array; this\n    allows you to use just the Solar_Valid method name, and the default\n    VALID_* message will be used as the feedback text.\n\n    * The populate() method is now free of the eval() calls copied from\n    HTML_QuickForm; we now recursively populate the $submitted property\n    with the _populate() method.\n\n    * The values() method is now free of the eval() calls copied from\n    HTML_QuickForm; we now recursively build the returned values using\n    the _values() method.\n\n    * In the addValidate() method, the $message parameter is now\n    optional; if not present, the method uses the generic VALID_* locale\n    string for the validation.\n\n* Solar_Form_Load_Xml:\n\n    * Applied patch from Matther Weier O'Phinney to add XML format doc\n    comments inline; also fixes a bug where $this was addressed instead\n    of $filter.\n\n* Solar_Sql:\n\n    * WARNING: This may be the last release of Solar with the current\n    RDBMS API abstraction; a future release should incorporate PDO as\n    the underlying abstraction layer.\n\n    * The quote() method now recursively quotes all values in arrays.\n\n    * Added a new select() method in anticipation of Solar_Sql_Select\n    class.\n\n* Solar_Sql_Driver_*:\n\n    * Added new select() and limitSelect() methods in anticipation of\n    new Solar_Sql_Select class. The new limitSelect() method will\n    provide much better offset emulation in, e.g., MS-SQL.\n\n* Solar_Sql_Driver_Mssql:\n\n    * Fixed bug in createSequence() method where $start was in\n    single-quotes (changed to double-quotes to interpolate the variable\n    properly)\n\n* Solar_Sql_Locale:\n\n    * Added new OP_CREATE, LABEL_OP, and VALID_WORD translation keys\n\n    * Swapped VALID_BLANK and VALID_NOTBLANK translation strings (they\n    were backwards)\n\n* Solar_Valid:\n\n    * Added ipv4() method to validate IPv4 addresses; also added test\n    file.\n\n    * Added locale() method to validate locale code formats; also added\n    test file.\n\n    * Added word() method to validate against word characters (regex\n    \"w\" type); also added test file.\n\n    * The nonZero() method now honors the $blank parameter.\n\n* Solar_Template:\n\n    * Updated to use most-recent releases of Savant3 (beta 2) and\n    Savant3_Plugin_Form (devel 0.2.1)\n\n    * Updated all Solar/App/*/views/* to use the new Savant3 code\n\n* Solar_User_Auth:\n\n    * Moved driver instantiation to start() instead of __construct();\n    this should allow custom drivers better integration into the start()\n    process (e.g., single sign-on systems and HTTP-based auth).  This\n    eliminates the __construct() method as well.\n\n* Solar_User_Role_Sql:\n\n    * Fixed double-concat bug when generating the WHERE clause\n</pre>\n"
}
