Ver Fonte

Merge pull request #47 from GunioRobot/clean

Daniele Alessandri há 13 anos atrás
pai
commit
ce75acf81f

+ 5 - 5
BETA

@@ -1,10 +1,10 @@
 *** PLEASE READ ***
 
-The library code in this branch is the result of a major rewrite of Predis 0.6 
-and is considered of BETA quality, which means that there should not be any 
-known outstanding bug and that the internal API is almost finalized and fixed 
+The library code in this branch is the result of a major rewrite of Predis 0.6
+and is considered of BETA quality, which means that there should not be any
+known outstanding bug and that the internal API is almost finalized and fixed
 (but it could still be subject to slight changes if needed).
 
-Feedback is obviously appreciated and even if things should just work, use it 
-at your own risk! If you need to use Predis in a production environment please 
+Feedback is obviously appreciated and even if things should just work, use it
+at your own risk! If you need to use Predis in a production environment please
 use a tagged release or checkout the version-0.6 branch from the repository.

+ 93 - 93
CHANGELOG

@@ -3,13 +3,13 @@ v0.7.0 (2010-xx-xx)
 
   * List of the methods removed in this release:
       - Predis\Client::create()
-        This method has been removed because it was considered redundant 
+        This method has been removed because it was considered redundant
         with Predis\Client::__construct() since Predis 0.6.0.
       - Predis\Client::pipelineSafe()
-        This method was deprecated in Predis 0.6.1 and now it has been finally 
+        This method was deprecated in Predis 0.6.1 and now it has been finally
         removed. Use Predis\Client::pipeline(array('safe' => true)).
       - Predis\Client::rawCommand()
-        This method was removed due to interface inconsistencies with the 
+        This method was removed due to interface inconsistencies with the
         underlying connection class used internally by the client instance.
       - Predis\Client::setProfile()
         This method is no more part of the public API and has been made private.
@@ -17,30 +17,30 @@ v0.7.0 (2010-xx-xx)
   * Predis now includes its own autoloader. To use it, include Autoloader.php
     and call Predis\Autoloader::register().
 
-  * The Predis\MultiBulkCommand class has been merged into Predis\Command and 
-    thus removed. If you have code that extends Predis\MultiBulkCommand but 
-    you can not afford to update your code, you can always implement it again 
+  * The Predis\MultiBulkCommand class has been merged into Predis\Command and
+    thus removed. If you have code that extends Predis\MultiBulkCommand but
+    you can not afford to update your code, you can always implement it again
     as an abstract class simply by extending Predis\Command.
 
-  * The Predis\IConnection interface has been splitted in two different new 
+  * The Predis\IConnection interface has been splitted in two different new
     interfaces: Predis\IConnectionSingle and Predis\IConnectionCluster.
 
-  * Developers can now register their own classes that implements the 
-    Predis\IConnectionSingle interface to handle different URI schemes such as 
-    'tcp', 'unix', 'udp' or anything else. Everything is handled by the new 
+  * Developers can now register their own classes that implements the
+    Predis\IConnectionSingle interface to handle different URI schemes such as
+    'tcp', 'unix', 'udp' or anything else. Everything is handled by the new
     Predis\ConnectionFactory class.
 
-  * Added support for UNIX domain sockets (supported by Redis 2.2) with the new 
+  * Added support for UNIX domain sockets (supported by Redis 2.2) with the new
     Predis\UnixDomainSocketConnection class and the 'unix' scheme.
 
-  * Added the new Predis\ICommand interface. The Predis\Command class now 
+  * Added the new Predis\ICommand interface. The Predis\Command class now
     implements this interface that is used in the core bits of Predis.
 
-  * Implicit extraction of arguments when the only argument passed to a 
-    multibulk command is an array is not supported anymore and must be done 
+  * Implicit extraction of arguments when the only argument passed to a
+    multibulk command is an array is not supported anymore and must be done
     explicitly inside Predis\Command::filterArguments().
 
-  * It is now possible to pass instances of Predis\ConnectionParameters and 
+  * It is now possible to pass instances of Predis\ConnectionParameters and
     Predis\IConnection as parameters of Predis\Client::__construct().
 
 v0.6.5 (2011-02-12)
@@ -49,14 +49,14 @@ v0.6.5 (2011-02-12)
     desynchronization errors (ISSUE #20).
 
 v0.6.4 (2011-02-12)
-  * Various performance improvements (15% ~ 25%) especially when dealing with 
+  * Various performance improvements (15% ~ 25%) especially when dealing with
     long multibulk replies or when using clustered connections.
 
-  * Added the "on_retry" option to Predis\MultiExecBlock that can be used to 
-    specify an external callback (or any callable object) that gets invoked 
+  * Added the "on_retry" option to Predis\MultiExecBlock that can be used to
+    specify an external callback (or any callable object) that gets invoked
     whenever a transaction is aborted by the server.
 
-  * Added inline (p)subscribtion via options when initializing an instance of 
+  * Added inline (p)subscribtion via options when initializing an instance of
     Predis\PubSubContext.
 
 v0.6.3 (2011-01-01)
@@ -64,10 +64,10 @@ v0.6.3 (2011-01-01)
       - Strings: SETRANGE, GETRANGE, SETBIT, GETBIT
       - Lists  : BRPOPLPUSH
 
-  * The abstraction for MULTI/EXEC transactions has been dramatically improved 
-    by providing support for check-and-set (CAS) operations when using Redis >= 
-    2.2. Aborted transactions can also be optionally replayed in automatic up 
-    to a user-defined number of times, after which a Predis\AbortedMultiExec 
+  * The abstraction for MULTI/EXEC transactions has been dramatically improved
+    by providing support for check-and-set (CAS) operations when using Redis >=
+    2.2. Aborted transactions can also be optionally replayed in automatic up
+    to a user-defined number of times, after which a Predis\AbortedMultiExec
     exception is thrown.
 
 v0.6.2 (2010-11-28)
@@ -79,17 +79,17 @@ v0.6.2 (2010-11-28)
       - ZSets  : ZREVRANGEBYSCORE
       - Misc.  : PERSIST
 
-  * WATCH also accepts a single array parameter with the keys that should be 
+  * WATCH also accepts a single array parameter with the keys that should be
     monitored during a transaction.
 
   * Improved the behaviour of Predis\MultiExecBlock in certain corner cases.
 
   * Improved parameters checking for the SORT command.
 
-  * FIX: the STORE parameter for the SORT command didn't work correctly when 
+  * FIX: the STORE parameter for the SORT command didn't work correctly when
     using '0' as the target key (ISSUE #13).
 
-  * FIX: the methods for UNWATCH and DISCARD do not break anymore method 
+  * FIX: the methods for UNWATCH and DISCARD do not break anymore method
     chaining with Predis\MultiExecBlock.
 
 v0.6.1 (2010-07-11)
@@ -98,147 +98,147 @@ v0.6.1 (2010-07-11)
   * New commands available in the Redis v2.2 profile (dev):
       - Misc.  : WATCH, UNWATCH
 
-  * Optional modifiers for ZRANGE, ZREVRANGE and ZRANGEBYSCORE queries are 
-    supported using an associative array passed as the last argument of their 
+  * Optional modifiers for ZRANGE, ZREVRANGE and ZRANGEBYSCORE queries are
+    supported using an associative array passed as the last argument of their
     respective methods.
 
-  * The LIMIT modifier for ZRANGEBYSCORE can be specified using either: 
+  * The LIMIT modifier for ZRANGEBYSCORE can be specified using either:
       - an indexed array: array($offset, $count)
       - an associative array: array('offset' => $offset, 'count' => $count)
 
-  * The method Predis\Client::__construct() now accepts also instances of 
+  * The method Predis\Client::__construct() now accepts also instances of
     Predis\ConnectionParameters.
 
-  * Predis\MultiExecBlock and Predis\PubSubContext now throw an exception 
-    when trying to create their instances using a profile that does not 
-    support the required Redis commands or when the client is connected to 
+  * Predis\MultiExecBlock and Predis\PubSubContext now throw an exception
+    when trying to create their instances using a profile that does not
+    support the required Redis commands or when the client is connected to
     a cluster of connections.
 
   * Various improvements to Predis\MultiExecBlock:
       - fixes and more consistent behaviour across various usage cases.
-      - support for WATCH and UNWATCH when using the current development 
+      - support for WATCH and UNWATCH when using the current development
         profile (Redis v2.2) and aborted transactions.
 
-  * New signature for Predis\Client::multiExec() which is now able to accept 
-    an array of options for the underlying instance of Predis\MultiExecBlock. 
+  * New signature for Predis\Client::multiExec() which is now able to accept
+    an array of options for the underlying instance of Predis\MultiExecBlock.
     Backwards compatibility with previous releases of Predis is ensured.
 
-  * New signature for Predis\Client::pipeline() which is now able to accept 
-    an array of options for the underlying instance of Predis\CommandPipeline. 
-    Backwards compatibility with previous releases of Predis is ensured. 
+  * New signature for Predis\Client::pipeline() which is now able to accept
+    an array of options for the underlying instance of Predis\CommandPipeline.
+    Backwards compatibility with previous releases of Predis is ensured.
     The method Predis\Client::pipelineSafe() is to be considered deprecated.
 
-  * FIX: The WEIGHT modifier for ZUNIONSTORE and ZINTERSTORE was handled 
+  * FIX: The WEIGHT modifier for ZUNIONSTORE and ZINTERSTORE was handled
     incorrectly with more than two weights specified.
 
 v0.6.0 (2010-05-24)
-  * Switched to the new multi-bulk request protocol for all of the commands 
-    in the Redis 1.2 and Redis 2.0 profiles. Inline and bulk requests are now 
+  * Switched to the new multi-bulk request protocol for all of the commands
+    in the Redis 1.2 and Redis 2.0 profiles. Inline and bulk requests are now
     deprecated as they will be removed in future releases of Redis.
 
-  * The default server profile is "2.0" (targeting Redis 2.0.x). If you are 
-    using older versions of Redis, it is highly recommended that you specify 
-    which server profile the client should use (e.g. "1.2" when connecting 
+  * The default server profile is "2.0" (targeting Redis 2.0.x). If you are
+    using older versions of Redis, it is highly recommended that you specify
+    which server profile the client should use (e.g. "1.2" when connecting
     to instances of Redis 1.2.x).
 
-  * Support for Redis 1.0 is now optional and it is provided by requiring 
+  * Support for Redis 1.0 is now optional and it is provided by requiring
     'Predis_Compatibility.php' before creating an instance of Predis\Client.
 
   * New commands added to the Redis 2.0 profile since Predis 0.5.1:
       - Strings: SETEX, APPEND, SUBSTR
       - ZSets  : ZCOUNT, ZRANK, ZUNIONSTORE, ZINTERSTORE, ZREMBYRANK, ZREVRANK
-      - Hashes : HSET, HSETNX, HMSET, HINCRBY, HGET, HMGET, HDEL, HEXISTS, 
+      - Hashes : HSET, HSETNX, HMSET, HINCRBY, HGET, HMGET, HDEL, HEXISTS,
                  HLEN, HKEYS, HVALS, HGETALL
       - PubSub : PUBLISH, SUBSCRIBE, UNSUBSCRIBE
       - Misc.  : DISCARD, CONFIG
 
-  * Introduced client-level options with the new Predis\ClientOptions class. 
-    Options can be passed to Predis\Client::__construct in its second argument 
-    as an array or an instance of Predis\ClientOptions. For brevity's sake and 
-    compatibility with older versions, the constructor of Predis\Client still 
+  * Introduced client-level options with the new Predis\ClientOptions class.
+    Options can be passed to Predis\Client::__construct in its second argument
+    as an array or an instance of Predis\ClientOptions. For brevity's sake and
+    compatibility with older versions, the constructor of Predis\Client still
     accepts an instance of Predis\RedisServerProfile in its second argument.
     The currently supported client options are:
       - profile [default: "2.0" as of Predis 0.6.0]
-        specifies which server profile to use when connecting to Redis. This 
-        option accepts an instance of Predis\RedisServerProfile or a string 
+        specifies which server profile to use when connecting to Redis. This
+        option accepts an instance of Predis\RedisServerProfile or a string
         that indicates the target version.
       - key_distribution [default: Predis\Distribution\HashRing]
-        specifies which key distribution strategy to use to distribute keys 
-        among the servers that compose a cluster. This option accepts an 
-        instance of Predis\Distribution\IDistributionStrategy so that users 
-        can implement their own key distribution strategy. Optionally, the new 
-        Predis\Distribution\KetamaPureRing class also provides a pure-PHP 
+        specifies which key distribution strategy to use to distribute keys
+        among the servers that compose a cluster. This option accepts an
+        instance of Predis\Distribution\IDistributionStrategy so that users
+        can implement their own key distribution strategy. Optionally, the new
+        Predis\Distribution\KetamaPureRing class also provides a pure-PHP
         implementation of the same algorithm used by libketama.
       - throw_on_error [default: TRUE]
-        server errors can optionally be handled "silently": instead of throwing 
+        server errors can optionally be handled "silently": instead of throwing
         an exception, the client returns an error response type.
       - iterable_multibulk [EXPERIMENTAL - default: FALSE]
-        in addition to the classic way of fetching a whole multibulk reply 
-        into an array, the client can now optionally stream a multibulk reply 
-        down to the user code by using PHP iterators. It is just a little bit 
+        in addition to the classic way of fetching a whole multibulk reply
+        into an array, the client can now optionally stream a multibulk reply
+        down to the user code by using PHP iterators. It is just a little bit
         slower, but it can save a lot of memory in certain scenarios.
 
-  * New parameters for connections: 
+  * New parameters for connections:
       - alias [default: not set]
-        every connection can now be identified by an alias that is useful to 
+        every connection can now be identified by an alias that is useful to
         get a certain connection when connected to a cluster of Redis servers.
       - weight [default: not set]
-        allows the client to balance the keys asymmetrically across multiple 
-        servers. This might be useful when you have servers with different 
-        amounts of memory and you want to distribute the load of your keys 
+        allows the client to balance the keys asymmetrically across multiple
+        servers. This might be useful when you have servers with different
+        amounts of memory and you want to distribute the load of your keys
         accordingly.
       - connection_async [default: FALSE]
-        estabilish connections to servers in a non-blocking way, so that the 
-        client is not blocked while the underlying resource performs the actual 
+        estabilish connections to servers in a non-blocking way, so that the
+        client is not blocked while the underlying resource performs the actual
         connection.
       - connection_persistent [default: FALSE]
-        the underlying connection resource is left open when a script ends its 
-        lifecycle. Persistent connections can lead to unpredictable or strange 
+        the underlying connection resource is left open when a script ends its
+        lifecycle. Persistent connections can lead to unpredictable or strange
         behaviours, so they should be used with extreme care.
 
-  * Introduced the Predis\Pipeline\IPipelineExecutor interface. Classes that 
-    implements this interface are used internally by the Predis\CommandPipeline 
-    class to change the behaviour of the pipeline when writing/reading commands 
+  * Introduced the Predis\Pipeline\IPipelineExecutor interface. Classes that
+    implements this interface are used internally by the Predis\CommandPipeline
+    class to change the behaviour of the pipeline when writing/reading commands
     from one or multiple servers. Here is the list of the default executors:
       - Predis\Pipeline\StandardExecutor
-        Exceptions generated by server errors might be thrown depending on the 
-        options passed to the client (see "throw_on_error"). Instead, protocol 
-        or network errors always throw exceptions. This is the default executor 
-        for single and clustered connections and shares the same behaviour of 
+        Exceptions generated by server errors might be thrown depending on the
+        options passed to the client (see "throw_on_error"). Instead, protocol
+        or network errors always throw exceptions. This is the default executor
+        for single and clustered connections and shares the same behaviour of
         Predis 0.5.x.
       - Predis\Pipeline\SafeExecutor
-        Exceptions generated by server, protocol or network errors are not 
-        thrown, instead they are returned in the response array as instances of 
+        Exceptions generated by server, protocol or network errors are not
+        thrown, instead they are returned in the response array as instances of
         ResponseError or CommunicationException.
       - Predis\Pipeline\SafeClusterExecutor
-        This executor shares the same behaviour of Predis\Pipeline\SafeExecutor 
+        This executor shares the same behaviour of Predis\Pipeline\SafeExecutor
         but it is geared towards clustered connections.
 
-  * Support for PUBSUB is handled by the new Predis\PubSubContext class, which 
+  * Support for PUBSUB is handled by the new Predis\PubSubContext class, which
     could also be used to build a callback dispatcher for PUBSUB scenarios.
 
-  * When connected to a cluster of connections, it is now possible to get a 
-    new Predis\Client instance for a single connection of the cluster by 
+  * When connected to a cluster of connections, it is now possible to get a
+    new Predis\Client instance for a single connection of the cluster by
     passing its alias/index to the new Predis\Client::getClientFor() method.
 
-  * CommandPipeline and MultiExecBlock return their instances when invoking 
+  * CommandPipeline and MultiExecBlock return their instances when invoking
     commands, thus allowing method chaining in pipelines and multi-exec blocks.
 
   * MultiExecBlock instances can handle the new DISCARD command.
 
-  * Connections now support float values for the connection_timeout parameter 
+  * Connections now support float values for the connection_timeout parameter
     to express timeouts with a microsecond resolution.
 
-  * FIX: TCP connections now respect the read/write timeout parameter when 
-    reading the payload of server responses. Previously, stream_get_contents() 
-    was being used internally to read data from a connection but it looks like 
-    PHP does not honour the specified timeout for socket streams when inside 
+  * FIX: TCP connections now respect the read/write timeout parameter when
+    reading the payload of server responses. Previously, stream_get_contents()
+    was being used internally to read data from a connection but it looks like
+    PHP does not honour the specified timeout for socket streams when inside
     this function.
 
-  * FIX: The GET parameter for the SORT command now accepts also multiple key 
+  * FIX: The GET parameter for the SORT command now accepts also multiple key
     patterns by passing an array of strings. (ISSUE #1).
 
-  * FIX: Replies to the DEL command return the number of elements deleted by 
+  * FIX: Replies to the DEL command return the number of elements deleted by
     the server and not 0 or 1 interpreted as a boolean response. (ISSUE #4).
 
 v0.5.1 (2010-01-23)
@@ -250,7 +250,7 @@ v0.5.1 (2010-01-23)
 
   * Added missing support for BGREWRITEAOF for Redis >= 1.2.0
 
-  * Implemented a factory method for the RedisServerProfile class to ease the 
+  * Implemented a factory method for the RedisServerProfile class to ease the
     creation of new server profile instances based on a version string.
 
 v0.5.0 (2010-01-09)

+ 29 - 29
README.markdown

@@ -19,14 +19,14 @@ For a version compatible with PHP 5.2 you must use the backported version from t
 
 ## Quick examples ##
 
-See the [official wiki](http://wiki.github.com/nrk/predis) of the project for a more 
+See the [official wiki](http://wiki.github.com/nrk/predis) of the project for a more
 complete coverage of all the features available in Predis.
 
 
 ### Loading Predis
 
-Predis relies on the autoloading features of PHP and complies with the 
-[PSR-0 standard](http://groups.google.com/group/php-standards/web/psr-0-final-proposal) 
+Predis relies on the autoloading features of PHP and complies with the
+[PSR-0 standard](http://groups.google.com/group/php-standards/web/psr-0-final-proposal)
 for interoperability with most of the major frameworks and libraries.
 
 When used in a project or script without PSR-0 autoloading, Predis includes its own autoloader for you to use:
@@ -41,19 +41,19 @@ Predis\Autoloader::register();
 // requiring any additional files.
 ```
 
-You can also create a single [Phar](http://www.php.net/manual/en/intro.phar.php) archive from the repository 
-just by launching the `createPhar.php` script located in the `bin` directory. The generated Phar ships with 
-a stub that defines an autoloader function for Predis, so you just need to require the Phar archive in order 
+You can also create a single [Phar](http://www.php.net/manual/en/intro.phar.php) archive from the repository
+just by launching the `createPhar.php` script located in the `bin` directory. The generated Phar ships with
+a stub that defines an autoloader function for Predis, so you just need to require the Phar archive in order
 to be able to use the library.
 
-Alternatively you can generate a single PHP file that holds every class, just like older versions of Predis, 
-using the `createSingleFile.php` script located in the `bin` directory. In this way you can load Predis in 
+Alternatively you can generate a single PHP file that holds every class, just like older versions of Predis,
+using the `createSingleFile.php` script located in the `bin` directory. In this way you can load Predis in
 your scripts simply by using functions such as `require` and `include`, but this practice is not encouraged.
 
 
 ### Connecting to a local instance of Redis ###
 
-You don't have to specify a tcp host and port when connecting to Redis instances running on the 
+You don't have to specify a tcp host and port when connecting to Redis instances running on the
 localhost on the default port:
 
 ``` php
@@ -81,9 +81,9 @@ $redis = new Predis\Client(array(
 
 ### Pipelining multiple commands to multiple instances of Redis with client-side sharding ###
 
-Pipelining helps with performances when there is the need to issue many commands to a server 
-in one go. Furthermore, pipelining works transparently even on aggregated connections. Predis, 
-in fact, supports client-side sharding of data using consistent-hashing on keys and clustered 
+Pipelining helps with performances when there is the need to issue many commands to a server
+in one go. Furthermore, pipelining works transparently even on aggregated connections. Predis,
+in fact, supports client-side sharding of data using consistent-hashing on keys and clustered
 connections are supported natively by the client class.
 
 ``` php
@@ -104,8 +104,8 @@ $replies = $redis->pipeline(function($pipe) {
 
 ### Overriding standard connection classes with custom ones ###
 
-Predis allows developers to create new connection classes to add support for new protocols 
-or override the existing ones to provide a different implementation compared to the default 
+Predis allows developers to create new connection classes to add support for new protocols
+or override the existing ones to provide a different implementation compared to the default
 classes. This can be obtained by subclassing the `Predis\Network\IConnectionSingle` interface.
 
 ``` php
@@ -120,17 +120,17 @@ Predis\ConnectionFactory::define('tcp', 'MyConnectionClass');
 ```
 
 
-You can have a look at the `Predis\Network` namespace for some actual code that gives a better 
+You can have a look at the `Predis\Network` namespace for some actual code that gives a better
 insight about how to create new connection classes.
 
 
 ### Definition and runtime registration of new commands on the client ###
 
-Let's suppose Redis just added the support for a brand new feature associated 
-with a new command. If you want to start using the above mentioned new feature 
-right away without messing with Predis source code or waiting for it to find 
-its way into a stable Predis release, then you can start off by creating a new 
-class that matches the command type and its behaviour and then bind it to a 
+Let's suppose Redis just added the support for a brand new feature associated
+with a new command. If you want to start using the above mentioned new feature
+right away without messing with Predis source code or waiting for it to find
+its way into a stable Predis release, then you can start off by creating a new
+class that matches the command type and its behaviour and then bind it to a
 client instance at runtime. Actually, it is easier done than said:
 
 ``` php
@@ -151,19 +151,19 @@ $redis->newcmd();
 
 ## Development ##
 
-Predis is fully backed up by a test suite which tries to cover all the aspects of the 
-client library and the interaction of every single command with a Redis server. If you 
-want to work on Predis, it is highly recommended that you first run the test suite to 
+Predis is fully backed up by a test suite which tries to cover all the aspects of the
+client library and the interaction of every single command with a Redis server. If you
+want to work on Predis, it is highly recommended that you first run the test suite to
 be sure that everything is OK, and report strange behaviours or bugs.
 
-When modifying Predis please be sure that no warnings or notices are emitted by PHP 
-by running the interpreter in your development environment with the `error_reporting` 
+When modifying Predis please be sure that no warnings or notices are emitted by PHP
+by running the interpreter in your development environment with the `error_reporting`
 variable set to `E_ALL | E_STRICT`.
 
-The recommended way to contribute to Predis is to fork the project on GitHub, create 
-new topic branches on your newly created repository to fix or add features and then 
-open a new pull request with a description of the applied changes. Obviously, you can 
-use any other Git hosting provider of your preference. Diff patches will be accepted 
+The recommended way to contribute to Predis is to fork the project on GitHub, create
+new topic branches on your newly created repository to fix or add features and then
+open a new pull request with a description of the applied changes. Obviously, you can
+use any other Git hosting provider of your preference. Diff patches will be accepted
 too, even though they are not the preferred way to contribute to Predis.
 
 

+ 1 - 1
TODO

@@ -5,7 +5,7 @@
 * The internals of Predis\MultiExecContext should be refactored since the code
   has become a bit too convoluted.
 
-* Switch to smaller test units and add more granular tests that try to cover 
+* Switch to smaller test units and add more granular tests that try to cover
   every single class.
 
 * Documentation! The README is obviously not enought to show how to use Predis

+ 1 - 1
examples/DispatcherLoop.php

@@ -14,7 +14,7 @@ require 'SharedConfigurations.php';
 /*
 This is a basic example on how to use the Predis\DispatcherLoop class.
 
-To see this example in action you can just use redis-cli and publish some 
+To see this example in action you can just use redis-cli and publish some
 messages to the 'events' and 'control' channel, e.g.:
 
 ./redis-cli

+ 1 - 1
examples/MultiExecTransactionsWithCAS.php

@@ -14,7 +14,7 @@ require 'SharedConfigurations.php';
 // This is an implementation of an atomic client-side ZPOP using the support for
 // check-and-set (CAS) operations with MULTI/EXEC transactions, as described in
 // "WATCH explained" from http://redis.io/topics/transactions
-// 
+//
 // First, populate your database with a tiny sample data set:
 //
 // ./redis-cli

+ 1 - 1
examples/PipelineContext.php

@@ -39,7 +39,7 @@ Array
     [5] => 40
     [6] => Array
         (
-            [0] => 
+            [0] =>
             [1] => 40
         )
 

+ 1 - 1
lib/Predis/Commands/Processors/ProcessorChain.php

@@ -65,7 +65,7 @@ class ProcessorChain implements ICommandProcessorChain, \ArrayAccess
     /**
      * {@inheritdoc}
      */
-    public function getProcessors() 
+    public function getProcessors()
     {
         return $this->_processors;
     }

+ 3 - 3
lib/Predis/Distribution/HashRing.php

@@ -74,7 +74,7 @@ class HashRing implements IDistributionStrategy
     /**
      * Resets the distributor.
      */
-    private function reset() 
+    private function reset()
     {
         unset(
             $this->_ring,
@@ -216,9 +216,9 @@ class HashRing implements IDistributionStrategy
     /**
      * Implements a strategy to deal with wrap-around errors during binary searches.
      *
-     * @param int $upper 
+     * @param int $upper
      * @param int $lower
-     * @param int $ringKeysCount 
+     * @param int $ringKeysCount
      * @return int
      */
     protected function wrapAroundStrategy($upper, $lower, $ringKeysCount)

+ 1 - 1
lib/Predis/Pipeline/PipelineContext.php

@@ -44,7 +44,7 @@ class PipelineContext
     /**
      * Returns a pipeline executor depending on the kind of the underlying
      * connection and the passed options.
-     * 
+     *
      * @param Client Client instance used by the context.
      * @param array Options for the context initialization.
      * @return IPipelineExecutor

+ 1 - 1
lib/Predis/Protocol/ProtocolException.php

@@ -14,7 +14,7 @@ namespace Predis\Protocol;
 use Predis\CommunicationException;
 
 /**
- * Exception class that identifies errors encountered while 
+ * Exception class that identifies errors encountered while
  * handling the Redis wire protocol.
  *
  * @author Daniele Alessandri <suppakilla@gmail.com>

+ 1 - 1
lib/Predis/ResponseError.php

@@ -48,7 +48,7 @@ class ResponseError implements IRedisServerError
 
     /**
      * Converts the object to its string representation.
-     * 
+     *
      * @return string
      */
     public function __toString()

+ 1 - 1
lib/Predis/Transaction/MultiExecContext.php

@@ -262,7 +262,7 @@ class MultiExecContext
     }
 
     /**
-     * Resets a transaction by UNWATCHing the keys that are being WATCHed and 
+     * Resets a transaction by UNWATCHing the keys that are being WATCHed and
      * DISCARDing the pending commands that have been already sent to the server.
      *
      * @return MultiExecContext

+ 1 - 1
test/ClientFeaturesTest.php

@@ -495,7 +495,7 @@ class ClientFeaturesTestSuite extends PHPUnit_Framework_TestCase
         $client->flushdb();
 
         RC::testForClientException($this, 'TEST', function() use($client) {
-            $client->pipeline(function($pipe) { 
+            $client->pipeline(function($pipe) {
                 $pipe->ping();
                 $pipe->set('foo', 'bar');
                 throw new Predis\ClientException("TEST");

+ 4 - 4
test/RedisCommandsTest.php

@@ -21,7 +21,7 @@ class RedisCommandTestSuite extends PHPUnit_Framework_TestCase
     // TODO: missing test with float values for a few commands
 
     protected function setUp()
-    { 
+    {
         $this->redis = RC::getConnection();
         $this->redis->flushdb();
     }
@@ -613,7 +613,7 @@ class RedisCommandTestSuite extends PHPUnit_Framework_TestCase
         );
 
         $this->assertEquals(
-            array(), 
+            array(),
             $this->redis->lrange('keyDoesNotExist', 0, 1)
         );
 
@@ -1032,7 +1032,7 @@ class RedisCommandTestSuite extends PHPUnit_Framework_TestCase
         $setB = RC::setAddAndReturn($this->redis, 'setB', array(1, 3, 4, 6, 9, 10));
 
         $this->assertTrue(RC::sameValuesInArrays(
-            $setA, 
+            $setA,
             $this->redis->sinter('setA')
         ));
 
@@ -1423,7 +1423,7 @@ class RedisCommandTestSuite extends PHPUnit_Framework_TestCase
         $zset = RC::zsetAddAndReturn($this->redis, 'zset', RC::getZSetArray());
 
         $this->assertEquals(
-            array('a'), 
+            array('a'),
             $this->redis->zrangebyscore('zset', -10, -10)
         );