Will do that tomorrow morning. Thanks Marco! On Thu, Dec 6, 2012 at 11:26 AM, Marco Pivetta <ocram...@gmail.com> wrote: > ok, can you open an issue with a failing test on such a test asset? > > class IShallNotGetInjections > { > public function setWhatever($whatever = true) > { > throw new InvalidArgumentException('Should not be called'); > } > } > > I can then look into it. > > Marco Pivetta > > http://twitter.com/Ocramius > > http://ocramius.github.com/ > > > > On 6 December 2012 12:22, gordon stratton <gordon.strat...@gmail.com> wrote: >> >> Works as I originally expected in 2.0.3. I'm sure you're exactly right. >> >> On Thu, Dec 6, 2012 at 11:12 AM, Marco Pivetta <ocram...@gmail.com> wrote: >> > Sorry, should have said "setter injection" :P >> > >> > I think `setStream` ( >> > >> > https://github.com/zendframework/zf2/blob/master/library/Zend/Http/Client.php#L567-L577 >> > ) is called and the default parameter is used. Can you try this one with >> > 2.0.3? I patched Zend\Di for 2.0.4~2.0.5 so that default parameters are >> > used >> > for injections. Before, it was probably injecting `null`. >> > >> > Marco Pivetta >> > >> > http://twitter.com/Ocramius >> > >> > http://ocramius.github.com/ >> > >> > >> > >> > On 6 December 2012 11:51, gordon stratton <gordon.strat...@gmail.com> >> > wrote: >> >> >> >> 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