Indeed, that's what it seems like! I really didn't want to write something like "A dependency injector is injecting dependencies. Why is this?" though...
Here is a (probably mailer-mangled) diff. As you can see, the major difference is that outputstream is now true... $ diff -u without_injection with_injection --- without_injection 2012-12-06 02:44:23.761785486 -0800 +++ with_injection 2012-12-06 02:44:55.978108015 -0800 @@ -1,12 +1,12 @@ -class Zend\Http\Client#4 (11) { +class Zend\Http\Client#16 (11) { protected $response => NULL protected $request => - class Zend\Http\Request#5 (9) { + class Zend\Http\Request#17 (9) { protected $method => string(3) "GET" protected $uri => - class Zend\Uri\Http#6 (10) { + class Zend\Uri\Http#87 (10) { protected $validHostTypes => int(11) protected $user => @@ -81,7 +81,7 @@ 'keepalive' => bool(false) 'outputstream' => - bool(false) + bool(true) 'encodecookies' => bool(true) 'rfc3986strict' => On Thu, Dec 6, 2012 at 10:37 AM, Marco Pivetta <ocram...@gmail.com> wrote: > 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 <gordon.strat...@gmail.com> 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: fw-general@lists.zend.com >> Info: http://framework.zend.com/archives >> Unsubscribe: fw-general-unsubscr...@lists.zend.com >> >> > -- List: fw-general@lists.zend.com Info: http://framework.zend.com/archives Unsubscribe: fw-general-unsubscr...@lists.zend.com