{
    "href": "/post/2006/08/26/solar-0230-released/",
    "relId": "2006/08/26/solar-0230-released",
    "title": "Solar 0.23.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": "2006-08-26 16:49:02 UTC",
    "updated": [
        "2006-08-26 16:49:02 UTC"
    ],
    "html": "<p>The new release is out; you can <a href=\"http://solarphp.com/index.php/docs/Main/DownloadSolar\">download</a> it from the usual location. As always, you should read the full <a href=\"http://solarphp.com/channel.php?package=Solar&amp;release=0.23.0&amp;downloads\">change notes</a>.</p>\n<p>This release of <a href=\"http://solarphp.com/\">Solar</a> includes new Prototype and Scriptaculous (\"Protaculous\" ;-) Ajax support in the form of view helpers, ext/json compliant JSON support, and a new plugin-aware Markdown engine. Read on for more.</p>\n<p><!--more--></p>\n<h3>Breaks</h3>\n<p>There is one backwards-compatibility break in this release. Previously, the <code>Solar_View::partial()</code> method would output the results of the partial template directly. Now it just returns the results. This means that you need to change all calls from <code>$this-&gt;partial(...)</code> to <code>echo $this-&gt;partial(...)</code>. This change makes the partial() method act like all other view helpers.</p>\n<h3>Protaculous Ajax</h3>\n<p>Clay Loveless has been hard at work adding view helpers that interface to the <a href=\"http://prototype.conio.net/\">Prototype</a> and <a href=\"http://script.aculo.us/\">Script.aculo.us</a> JavaScript libraries. (I have taken to calling this popular combination \u201cProtaculous\u201d. ;-)</p>\n<p>These JavaScript packages provide all sorts of Ajaxy Web 2.0 buzzword-compliant goodness, but you generally need to access them in JavaScript directly. Clay\u2019s view helpers for the Control and Effect libraries of Scriptaculous let you access them via PHP. The helpers keep track of what effects and requests you make, and load all the necessary files for you automatically.</p>\n<p>Clay has built the helpers so they use \u201cunobtrusive JavaScript\u201d. This means that you address HTML elements using CSS selectors instead of using inline scripts on elements.</p>\n<p>To show off some of the possibilities, Clay has added a new demo app under <code>Solar_App_HelloAjax</code>.</p>\n<h3>JSON Support</h3>\n<p>Clay Loveless has also added a new Solar_Json class for encoding and decoding JavaScript object notation; this helps when passing data via Ajax requests. (The work is based on code from Michal Migurski, Matt Knapp, and Brett Stimmerman, in their <a href=\"http://mike.teczno.com/JSON/JSON.phps\">Services_JSON</a> package.)</p>\n<p>Although full JSON support will exist in a future version of PHP, this class will help users who need the functionality right now. (Clay has gone to a lot of effort to make Solar_Json behavior functionally identical to the upcoming PHP JSON extension.)</p>\n<p>Many thanks, Clay, for your continuing efforts on this portion of Solar.</p>\n<h3>Markdown</h3>\n<p><a href=\"http://daringfireball.net/projects/markdown/\">Markdown</a> is a simplifed syntax and text processor that converts structured text markup to XHTML, written by John Gruber. <a href=\"http://www.michelf.com/projects/php-markdown/\">PHP-Markdown</a> is a direct port of Gruber\u2019s original Perl code to PHP 4 (and non-strict PHP 5) by Michel Fortin. Now the same text-processing capability exists in Solar as <code>Solar_Markdown</code>.</p>\n<p>The major benefit of the Solar version over previous implementations is that it is \u201cplugin aware\u201d, much like the PEAR <a href=\"http://pear.php.net/Text_Wiki\">Text_Wiki</a> package. Each syntax rule is a separate class; you can mix and match syntax rules to fit your particular needs without having to rewrite the entire processing and rendering engine.</p>\n<p>Solar now comes with three Markdown rule sets:</p>\n<ul>\n<li>\n<p><code>Solar_Markdown</code> proper, an implementation of the original markup rules in the Perl and PHP versions. It provides for headers, lists, strong and emphasis, links and inline URIs, code examples, and much more. In general, it leaves HTML in place, so it may not be suitable for untrusted or anonymous environments.</p>\n</li>\n<li>\n<p><code>Solar_Markdown_Extra</code>, an implementation of Michel Fortin\u2019s <a href=\"http://www.michelf.com/projects/php-markdown/extra/\">PHP-Markdown Extra</a> that extends the basic Markdown syntax to support tables, definition lists, and id-able headers.</p>\n</li>\n<li>\n<p><code>Solar_Markdown_Wiki</code>, which provides Mediawiki-style page links, interwiki links, and code documentation constructs, in addition to tables and definitions lists from the <code>Solar_Markdown_Extra</code> rules. It is very aggressive about escaping HTML for output, which makes it more suitable for untrusted environments.</p>\n</li>\n</ul>\n"
}
