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


Reply via email to