[Solar-talk] Solar 0.24.0 release narrative
Paul M Jones
pmjones at solarphp.com
Tue Sep 26 07:55:03 PDT 2006
Last night, I released version 0.24.0 of Solar, the simple object
library and application repository. Solar is a PHP 5 framework for
rapid application development.
On an administrative note, Clay Loveless has set up a Trac
installation for us, so now you can report bugs and request
enhancements without having to join the Solar-Talk mailing list. You
can keep up with the Trac issues via the Solar-Trac mailing list if
you like.
You can read the change notes for a full run-down, but there are a
few changes in particular that I want to highlight.
Solar_Request
In previous releases, the Solar arch-class had a series of methods to
read from the superglobals: Solar::post(), for example, would read a
$_POST key and return it (or a default value of your choosing if the
key did not exist). Those methods and their related support methods
have been removed from the arch-class and placed in their own class,
the new Solar_Request.
For now, Solar_Request acts as a singleton, since it is tied back to
the super globals. Future releases will convert it to a true
standalone object, and classes that need access to the request
environment will receive a dependency injection of a Solar_Request
object.
Whereas you would have used Solar::post() in earlier versions of
Solar, you now create a Solar_Request object and use the $request-
>post() method. Solar_Request provides access to these superglobals
after some minimal filtering (essentially just stripping magic quotes):
get() -- $_GET
post() -- $_POST
cookie() -- $_COOKIE
env() -- $_ENV
server() -- $_SERVER
files() -- $_FILES
http() -- ...
Wait a minute, there's no "HTTP" superglobal! One of the things that
Solar_Request does for you is some basic cleaning and normalizing of
the $_SERVER['HTTP_*'] values into their own storage array, so you
can ask for the HTTP headers directly. For example, to get the value
of the "X-Requested-With" header, ask for $request->http(‘X-Requested-
With').
Solar_Request also lets you check how the current request was made:
isGet() is true if this was a GET request
isPost() is true if this was a POST request
isPut() is true if this was a PUT request
isDelete() is true if this was a DELETE request
isXml() is true if this was an XMLHTTP request (Ajax!)
Many thanks to Clay Loveless for getting Solar_Request up and running.
Solar_Session
Similar to Solar_Request, Solar_Session (here) provides an interface
to the $_SESSION superglobal. It also takes over for the previous
Solar_Flash class by providing read-once "flash" support via the
$_SESSION values.
In Solar, we aggressively segment the global name space so that
different classes don't step on each other's toes. Solar_Session
makes this segmentation easier, by providing a config key to tell the
particular instance what class name space it should be working within
the $_SESSION array.
Progressive Ajax Enhancement
It's not much, but I've added the tiniest bit of Scriptaculous
enhancement to the reference application that comes with Solar,
SolarAppBookmarks. In the "edit" view, instead of using a simple
class to indicate success or failure of a save, I've put in a pair of
effect calls:
// output a form from the "formdata" processor
echo $this->form(array('id' => 'form-bookmark'))
->auto($this->formdata)
// ...
->fetch();
// add an effect for success message lists
$this->jsScriptaculous()->effect->highlight(
"#form-bookmark ul.success",
array(
'duration' => 3,
'endcolor' => '#aaaaff',
'restorecolor' => true,
)
);
// add an effect for failure message lists
$this->jsScriptaculous()->effect->highlight(
"#form-bookmark ul.failure",
array(
'duration' => 3,
'endcolor' => '#ffaaaa',
'restorecolor' => true,
)
);
That's all it takes. Again, Clay Loveless has done wonderful work
with his JavaScript helpers for Solar.
--
Paul M. Jones <http://paul-m-jones.com>
Solar: Simple Object Library and Application Repository
for PHP5. <http://solarphp.com>
Savant: The simple, elegant, and powerful solution for
templates in PHP. <http://phpsavant.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.killersoft.com/pipermail/solar-talk/attachments/20060926/d0fef86c/attachment-0001.htm
More information about the solar-talk
mailing list