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:[EMAIL PROTECTED] > 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 > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php