{
    "href": "/post/2005/08/11/solar-070-devel-released/",
    "relId": "2005/08/11/solar-070-devel-released",
    "title": "Solar 0.7.0-devel 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-08-12 03:06:34 UTC",
    "updated": [
        "2005-08-12 03:06:34 UTC"
    ],
    "html": "<p>After too-long a hiatus, I've released <a href=\"http://solarphp.com\">Solar</a> 0.7.0; you can get it from our PEAR channel server <a href=\"http://solarphp.com/channel.php\">here</a>.  (Solar is a simple object library and application repository for PHP5; it is similar to PEAR and Horde, and might be described as a library-like framework for MVC development.)</p>\n<p>The interim was filled with lots of improvements, not the least of which are some new classes and fixes from <a href=\"http://weierophinney.net/matthew/\">Matthew Weier O'Phinney</a>.  His work on the forms portions has been helpful and enlightening; I think we may now have a true MVC contender against HTML_QuickForm when combined with the improved form plugin for <a href=\"http://phpsavant.com/yawiki/index.php?area=Savant3\">Savant3</a>.</p>\n<p>The change notes are quite long; you can read them below.</p>\n<p><!--more--></p>\n<pre>* WARNING: This is a public development release, and is not yet stable.\n\n* Added new class, Solar_Filter, to filter data.  This is a companion to\nSolar_Valid and is currently used mostly for prefiltering submitted form\nvalues.  Thanks, Matthew Weier O'Phinney.\n\n* Added new class, Solar_Form_Loader, to allow loading of form elements\nfrom external sources.  Currently has only one method, fromXml(), to load\nelements from a SimpleXML file.  Thanks, Matthew Weier O'Phinney.\n\n* Solar:\n\n  * New protected method environment() performs some standardized\n  environment setup at Solar::start() time.  Solar now\n  automatically...\n\n    * Unsets all registered global variables if 'register_globals'\n    is on.\n\n    * Unsets $_REQUEST (you should use Solar::get(), ::post(), and\n    ::cookie() for security reasons).\n\n    * Dispels magic quotes from get/post/cookie/files/server\n    superglobals if 'magic_quotes_gpc' is on; handles Sybase quotes\n    as well as slashed quotes.\n\n    * Turns off 'magic_quotes_runtime' and 'magic_quotes_sybase' so\n    that SQL sources do not quote values on retrieval.\n\n  * Solar::start() no longer sets error_reporting and display_errors.\n   Per note from Matthew Weier O'Phinney.\n\n  * Fixed bug where start() was calling __solar('start') instead of\n  solar('start') on shared objects (the latter is correct).\n\n  * Added locale strings for 'VALID_*' keys to support default\n  validation messages in Solar_Sql and Solar_Form.\n\n  * You can now specify an alternate config sources as the only\n  parameter to calling Solar::start().  Pass an array to populate\n  $config directly, an object to populate from the object properties,\n  or a string to indicate an arbitrary path to a config file.  The\n  default remains to load $config from the file defined by the\n  SOLAR_CONFIG_PATH constant.  Per discussion with Matthew Weier\n  O'Phinney.\n\n* Solar_App_*:\n\n  * View scripts now use the new Savant3 auto-escaping function\n  and the new Solar_Template plugin locale() for localized strings.\n\n* Solar_Base:\n\n  * Constructor now allows passing of a string as the $config value,\n  which is subsequently treated as a path to a php-array config file\n  (this means you can have a config file specifically for a class\n  instead of having to pass an array).\n\n* Solar_Filter:\n\n  * The alphanumeric() method is deprecated; use alnum() instead, it's\n  easier to type. The alphanumeric() method will be removed after the\n  0.7.0 release.\n\n* Solar_Form:\n\n  * BC BREAK:  Made $config protected like every other Solar class.\n  Config values are now populated through to the new $attribs\n  property, which stores attributes for the form tag itself.  If you\n  were using $config to retrive form-tag attributes, you should now\n  use $attribs instead.  Updated Solar_App_* views to reflect this\n  change.\n\n  * Added prefiltering of submitted values; use addFilter() method, or\n  add a 'filter' key to the element array when using setElement().\n  Thanks, Matthew Weier O'Phinney.\n\n  * The populate() and validate() methods now take an optional\n  paramter; if that param is an array, it is used for the $submitted\n  property.  This allows you to pick the value population source\n  instead of having to choose only from $_GET and $_POST.  Thanks,\n  Matthew Weier O'Phinney.\n\n  * Added reset() method to restore form to its originally-configured\n  state.\n\n  * Added load() method to load attributes and elements (with filters\n\n  and validations) from an external source.  Per discussions with\n  Matthew Weier O'Phinney.\n\n  * When no message is given for validation, attempt to get a default\n  validation message from Solar/Locale/en_US.php based on the method\n  used for validation (c.f. the new VALID_* translation keys).\n\n* Solar_Sql:\n\n  * In quote(), changed is_double() to is_float() to match with column\n  pseudo-type name.\n\n* Solar_Super:\n\n  * No longer uses the magicStripSlashes() filter when values are\n  fetched, because the Solar environment setup now takes care of\n  slashes at start() time.\n\n* Solar_Template:\n\n  * Updated to Savant3 alpha2 and converted all Solar_App_* view\n  scripts to use its new auto-escaping functions. See change notes at\n  http://phpsavant.com/yawiki/index.php?area=Savant3.  Of note, the\n  'form' plugin will change in the next release, and the 'scrub'\n  plugin will disappear in the next release.\n\n  * Added new 'Plugin/' directory with new 'locale' plugin to help\n  with locale transalations (you can now use $this-&gt;locale('KEY')\n  instead of Solar::locale('Solar', 'KEY')).  All Solar_App_* view\n  scripts now use this plugin.\n\n  * Adds the 'Solar/Template/Plugin/' directory to the top of the\n  configured resource_path automatically.\n\n* Solar_Valid:\n\n  * The alphanumeric() method is deprecated; use alnum() instead, it's\n  easier to type. The alphanumeric() method will be removed after the\n  0.7.0 release.</pre>\n"
}
