Commit Graph

1311 Commits

Author SHA1 Message Date
Daniele Alessandri f01ef33735 Merge branch 'v0.9/rename-transaction-class' 2013-11-16 16:35:07 +01:00
Daniele Alessandri aaac082324 Rename classes in Predis\Transaction. 2013-11-16 16:34:34 +01:00
Daniele Alessandri aa210aeb03 Merge branch 'v0.9/rename-cluster-classes' 2013-11-16 16:22:37 +01:00
Daniele Alessandri e6f1788e27 Rename interfaces and classes in the Predis\Cluster namespace.
A few methods were renamed accordingly for consistency
2013-11-16 16:21:27 +01:00
Daniele Alessandri c26b6763f9 Merge branch 'v0.9/rename-monitorcontext' 2013-11-16 15:43:16 +01:00
Daniele Alessandri 9d2cb975eb Rename classes in Predis\Monitor namespace. 2013-11-16 15:42:56 +01:00
Daniele Alessandri 2e6a76d83e Fix phpdocs. 2013-11-16 15:33:39 +01:00
Daniele Alessandri 046715a455 Merge branch 'v0.9/rename-pubsubcontext' 2013-11-16 15:28:54 +01:00
Daniele Alessandri c3a58dffdf Rename classes in the Predis\PubSub namespace. 2013-11-16 15:27:58 +01:00
Daniele Alessandri 7d60e995f8 Rename session handler class. 2013-11-16 15:03:05 +01:00
Daniele Alessandri f18d7103f5 [tests] Remove useless backslash in "use" directive. 2013-11-16 14:57:00 +01:00
Daniele Alessandri e42c72c043 Merge branch 'v0.9/rename-response-classes' 2013-11-16 14:04:25 +01:00
Daniele Alessandri 621c3d7fd3 Update CHANGELOG. 2013-11-16 14:03:17 +01:00
Daniele Alessandri b71c798f9b Rename classes in Predis\Response and Predis\Response\Iterator.
This change aims to make class names shorter with less redundant fully
qualified names.

Merge!
2013-11-16 14:01:11 +01:00
Daniele Alessandri 1022be6010 [tests] Fix tests. 2013-11-16 12:54:09 +01:00
Daniele Alessandri e41db42b01 Merge branch 'v0.9/response-namespace' 2013-11-16 12:50:45 +01:00
Daniele Alessandri ecd4c6281c Update CHANGELOG. 2013-11-16 12:48:37 +01:00
Daniele Alessandri 35ce43d526 Update CHANGELOG. 2013-11-16 12:44:56 +01:00
Daniele Alessandri 7f9d06bb83 Move the Predis\Iterator namespace into Predis\Response. 2013-11-16 12:07:35 +01:00
Daniele Alessandri a8edc02eb6 Create the Predis\Response namespace.
All of the response interface, classes and exceptions have been moved
into this namespace.
2013-11-16 11:59:33 +01:00
Daniele Alessandri 205ffbbd73 Update composer.json. 2013-11-16 11:27:47 +01:00
Daniele Alessandri b0f955b437 Fix phpdocs.
[ci skip]
2013-11-12 19:49:55 +01:00
Daniele Alessandri 8d15e5ec08 Do not pipeline initialization commands. 2013-11-12 18:16:54 +01:00
Daniele Alessandri 6fbc421b96 Fix URI parsing on multiple equal signs in pair value of query string. 2013-11-12 12:46:45 +01:00
Daniele Alessandri 298e7a14fa [tests] Add @medium since this could take a little bit more than 1sec. 2013-11-12 12:34:51 +01:00
Daniele Alessandri 22c2230d00 [tests] Rename just a couple of test methods. 2013-11-12 12:31:49 +01:00
Daniele Alessandri a1c7889584 Add option "aggregate" to customize multiple connections aggregation.
This option must return a callable object that is used to override how
the client aggregates connections when passing an array of parameters
to its constructor.

When specified, this option overrides both "cluster" and "replication"
as it allows to make use of your own code to aggregate multiple nodes.

This is, for example, how you can mimic the standard initialization of
a cluster that relies on client-side sharding:

  $parameters = ['tcp://127.0.0.1:6380', 'tcp://127.0.0.1:6381'];

  $options = [
    'aggregate' => function () {
      return function ($parameters, $options) {
          $connection = new Predis\Connection\PredisCluster();
          $options->connections->aggregate($connection, $parameters);

          return $connection;
      };
    },
  ];

  $client = new Predis\Client($parameters, $options);

When invoked by the client, the specified callable must always return
a Predis\Connection\ConnectionInterface instance or the client will
throw an UnexpectedValueException.
2013-11-12 12:31:45 +01:00
Daniele Alessandri 5e90e615b1 Minor optimizations for the parsing of URI parameters.
Using list() with the warning suppressor is slower than using isset()
to check the presence of the first two elements of the array returned
by explode(). This also allow us to skip incomplete query string pairs
when parsing the URI string.

We have also changed the exception being thrown on invalid URIs to a
more appropriate one.
2013-11-11 18:59:21 +01:00
Daniele Alessandri 321d2624ab Rename URI parsing method of Predis\Connection\ConnectionParameters. 2013-11-11 18:30:42 +01:00
Daniele Alessandri acd29ec076 Slightly change interface for connection factories. 2013-11-11 18:24:20 +01:00
Daniele Alessandri 3c6389f4dd Rework how connection parameters are handled.
These changes do not affect the actual functionalities of the client,
but make the code more explicit and less error-prone.
2013-11-11 18:17:09 +01:00
Daniele Alessandri 1d53f8a988 Minor code styling changes. 2013-11-11 15:59:21 +01:00
Daniele Alessandri dd679661dd 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.
2013-11-11 15:49:16 +01:00
Daniele Alessandri f36138c0b7 Minor internal change.
Check directly the private parameters array instead of passing through
method dispatching for the outer __isset() method.
2013-11-11 15:28:42 +01:00
Daniele Alessandri 31e08f0d5d Tweak phpdocs. 2013-11-11 12:29:43 +01:00
Daniele Alessandri cdb91284f1 Clean up ugly code bits. 2013-11-10 12:30:24 +01:00
Daniele Alessandri 38c7697881 Remove useless method. 2013-11-10 12:27:15 +01:00
Daniele Alessandri b45ba55f46 Switch to protected visibility for some members of Predis\Client.
The "profile" member is actually used for caching purposes as fetching
its value from the options instance would add noticeable overhead in a
part of the client where every bit of optimization matters, for this
we decided to keep it private.
2013-11-10 12:20:20 +01:00
Daniele Alessandri b50b90aa66 Rename method. 2013-11-10 12:17:58 +01:00
Daniele Alessandri 0128ecc623 Fix strict notice for undefined property during tests. 2013-11-09 20:37:30 +01:00
Daniele Alessandri bf991a24f3 Merge branch 'v0.9/protocol-processor-api' into integration 2013-11-09 20:02:21 +01:00
Daniele Alessandri bab0cd999c Rename Predis\Client::multiExec() to Predis\Client::transaction().
Method was deprecated since Predis v0.8.5.
2013-11-09 19:56:01 +01:00
Daniele Alessandri 30d81c942a Update CHANGELOG. 2013-11-09 19:32:38 +01:00
Daniele Alessandri f066356858 Slightly change the internal context factory method of Predis\Client. 2013-11-09 19:16:09 +01:00
Daniele Alessandri 7649533141 Remove some obsoleted or useless methods from Predis\Client. 2013-11-09 19:07:24 +01:00
Daniele Alessandri a4d0abc734 Minor tweaks to code.
Also removed a useless method, most likely a leftover from the past.
2013-11-09 19:02:01 +01:00
Daniele Alessandri b38f640ac9 Minor tweaks to phpdoc descriptions. 2013-11-09 18:57:35 +01:00
Daniele Alessandri d431ea6dba Change visibility of some members.
There's no actual need for these ones to be private.
2013-11-09 18:47:30 +01:00
Daniele Alessandri 715b1badcb Remove useless class constants. 2013-11-09 18:46:05 +01:00
Daniele Alessandri d79aadc38f Update CHANGELOG. 2013-11-09 18:44:22 +01:00