소스 검색

Address #133 by reusing our own methods.

The main reason behind that code duplication was performance related
as we tried to reduce method calls when possible, even at the cost of
falling into the realm of early optimizations. Apparently we just lose
~400 req/sec on a 21000 req/sec basis ("SET foo bar") using PHP 5.5.3
(packaged by Ubuntu 13.10) on an Intel Q6600, so we will most likely
stick with this change for the sake of best practices.
Daniele Alessandri 11 년 전
부모
커밋
dd679661dd
2개의 변경된 파일4개의 추가작업 그리고 12개의 파일을 삭제
  1. 3 11
      lib/Predis/Client.php
  2. 1 1
      tests/Predis/ClientTest.php

+ 3 - 11
lib/Predis/Client.php

@@ -218,18 +218,10 @@ class Client implements ClientInterface
      */
     public function __call($method, $arguments)
     {
-        $command = $this->profile->createCommand($method, $arguments);
-        $response = $this->connection->executeCommand($command);
-
-        if ($response instanceof ResponseObjectInterface) {
-            if ($response instanceof ResponseErrorInterface) {
-                $response = $this->onResponseError($command, $response);
-            }
+        $command  = $this->createCommand($method, $arguments);
+        $response = $this->executeCommand($command);
 
-            return $response;
-        }
-
-        return $command->parseResponse($response);
+        return $response;
     }
 
     /**

+ 1 - 1
tests/Predis/ClientTest.php

@@ -402,7 +402,7 @@ class ClientTest extends StandardTestCase
                 ->will($this->returnValue($ping));
 
         $options = array('profile' => $profile);
-        $client = $this->getMock('Predis\Client', array('createCommand'), array($connection, $options));
+        $client = $this->getMock('Predis\Client', null, array($connection, $options));
 
         $this->assertTrue($client->ping());
     }