Looks like some injection is going on. Are you able to dump a diff of the two objects after instantiation?
Marco Pivetta http://twitter.com/Ocramius http://ocramius.github.com/ On 6 December 2012 11:26, gordon stratton <[email protected]> wrote: > I ran into some behavior which I didn't expect when testing some code > that had Zend\Http\Client injected via Zend\Di. I narrowed down the > issue I was having to the illustration I will include inline. > > The issue is that Zend\Http\Client's response class when everything is > instantiated without Zend\Di is Zend\Http\Response, but with Zend\Di > it is Zend\Http\Response\Stream. When I then go to grab the body of > the response, decoding the body fails (it appears to be trying to > inflate an already-inflated body). In my inline snippet I have chosen > to fetch http://www.cnn.com to illustrate that behavior. > > I can work around this issue by configuring Zend\Di to prefer an > instantiated Zend\Http\Client, but I don't think I should need to do > that, and I would prefer to see that instantiated lazily like the rest > of my object graph. > > I hope you can see my intent here. Can anyone let me know where I've > gone wrong in my understanding? > > Versions of important things: > > PHP 5.4.4 > Zend Framework 2.0.5 > > <?php > > // > // your autoloader here > // > > $httpClient = new \Zend\Http\Client(); > $httpClient->setUri('http://www.cnn.com'); > $response = $httpClient->send(); > > echo "Standard\n"; > echo "--------\n\n"; > echo "Response class: " . get_class($httpClient->getResponse()) . "\n"; > > $httpClient->getResponse()->getBody(); > > echo "\n\n"; > > $di = new \Zend\Di\Di(); > > $httpClient = $di->get('Zend\Http\Client'); > $httpClient->setUri('http://www.cnn.com'); > $response = $httpClient->send(); > > echo "With DI\n"; > echo "-------\n\n"; > echo "Response class: " . get_class($httpClient->getResponse()) . "\n"; > > $httpClient->getResponse()->getBody(); > > -- > List: [email protected] > Info: http://framework.zend.com/archives > Unsubscribe: [email protected] > > >
