RE: [PHP-DEV] Objectified Request Parameters
| From: | Andi Gutmans | Date: | Sun, 28 Jan 2007 00:13:45 +0000 |
| Subject: | RE: [PHP-DEV] Objectified Request Parameters | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-27698@lists.php.net to get a copy of this message | ||
Thanks Sara for the additional insight. Give me a few days to look into this further and catch the
various people in person.
Unfortunately I'm going to be at a four day offsite Monday-Thursday but I'll still try my
best to touch base and try and find some
agreed upon solution.
Right now, I would lean towards something like Sara suggested in this email (overloaded object),
possibly improving some overloading
functionality on top. But I need to dive deeper into this. I have really been behind all this stuff
due to a heavy work load.
Andi
> -----Original Message-----
> From: Sara Golemon [mailto:pollita@php.net]
> Sent: Saturday, January 27, 2007 11:21 AM
> To: Andi Gutmans
> Cc: 'Pierre'; 'Andrei Zmievski'; 'Dmitry Stogov';
> internals@lists.php.net; 'Zeev Suraski'; 'Stanislav Malyshev'
> Subject: [PHP-DEV] Objectified Request Parameters
>
> > Btw, having a request object was one of the #1 requests in
> framework
> :) People actually really like encapsulating this because it
> > also makes unit testing easier down the road...
> > Just mentioning this because I don't think we should be
> too set with our ways esp. for people who need to accomplish
> more > functionality.
> >
> For the record, I *do* prefer the simplicity of
> implementation of going with a request object, and I
> *personally* don't see it as a show-stopping BC break. Then
> again, I didn't see that fgets() change as show-stopping either.
>
> So let's start back from square one. How about a fresh round
> of discussion on the request object approach, in psuedo-code:
>
> class PHPGetObject implements ArrayAccess {
> private $decoded = array();
>
> public function __offset_get($varname)
> {
> if (!isset($this->decoded[$varname])) {
> $val = http_decode_get($varname);
> $this->decoded[$varname] = $val;
> }
>
> return $this->decoded[$varname];
> }
> /* plus set,isset,unset of course */
> /* Probably need an iterator too */ }
>
>
> Pros: Fast, (mostly) clean, and cheap.
> Cons: Breaks the following BC bahaviors:
> * is_array($_GET) === false
> * is_object($_GET) === true
> * Referenceishness:
> $get = $_GET;
> $get['foo'] = 'bar';
> var_dump($_GET['foo']); /* 'bar' */
>
> My vote: +1 as I don't think the Cons are that serious.
>
> -Sara
>
> --
> PHP Internals - PHP Runtime Development Mailing List To
> unsubscribe, visit: http://www.php.net/unsub.php
>