Commit Graph

863 Commits

Author SHA1 Message Date
Daniele Alessandri bd8a44101c Change some exception messages thrown by the transaction class. 2011-08-24 11:59:47 +02:00
Daniele Alessandri 71e7cb1399 Make some methods/fields of the transaction class protected instead of private. 2011-08-24 11:49:31 +02:00
Daniele Alessandri f085d2f97d Use a protected method to get all the flags of a transaction. 2011-08-24 11:46:07 +02:00
Daniele Alessandri 7241fe6419 Make the code that process EXEC replies more easy on the eyes. 2011-08-21 15:18:39 +02:00
Daniele Alessandri d01e738d59 Move the code that executes a transaction block to a separate method. 2011-08-21 15:15:39 +02:00
Daniele Alessandri 0bdcf299c2 Implement a few minor changes. 2011-08-21 14:58:39 +02:00
Daniele Alessandri 03d408ddad Use a single integer to store and check the current state of a transaction. 2011-08-21 14:31:04 +02:00
Daniele Alessandri 3733e790eb Reuse code. 2011-08-21 11:55:08 +02:00
Daniele Alessandri a9e34cabb1 Add a composer.json for Composer.
Composer is a package manager for PHP currently under development. You can find
details about Composer at the following URL http://github.com/composer/composer
2011-08-21 10:12:54 +02:00
Daniele Alessandri b30f495345 Change how the hash of a node is retrieved in the hashring-based distributor.
Now classes that extend Predis\Distribution\HashRing can override how the hash
of a node is retrieved in order to implement different kind of distribution
strategies while reusing the base algorithm.
2011-08-20 18:07:42 +02:00
Daniele Alessandri c6fa5232bc Unset multiple fields with just one unset(). 2011-08-20 18:00:58 +02:00
Daniele Alessandri 2b62b75557 Jot down planned improvements for the single-file builder script. 2011-08-20 16:36:11 +02:00
Daniele Alessandri 6151d6d53e Improve actual "namespace" and "use" directives detection (fix ISSUE #35). 2011-08-20 16:30:33 +02:00
Daniele Alessandri db51f6e0d0 Remove spurious carriage returns and trailing spaces. 2011-08-20 16:27:59 +02:00
Daniele Alessandri 62744fbb02 Merge branch 'webdis_connection' 2011-06-29 12:05:24 +02:00
Daniele Alessandri 05b111d6d2 Update comment. 2011-06-29 12:05:00 +02:00
Daniele Alessandri fc51f23ca7 Return cURL errors on HTTP response codes >= 400.
By default the cURL extension does not trigger any error when fetching a
response with an HTTP code >= 400. Changing this behaviour is also useful to
intercept the 403 error generated when executing Redis commands disallowed
on Webdis by using ACLs.
2011-06-08 23:07:23 +02:00
Daniele Alessandri b85bc00880 Add support for the 'connection_timeout' parameter with WebdisConnection. 2011-06-08 22:40:35 +02:00
Daniele Alessandri 86256f2819 Minor reorganization, nothing worth mentioning. 2011-06-08 21:56:11 +02:00
Daniele Alessandri bc040fae6f Change handling of unsupported methods in Predis\Network\WebdisConnection. 2011-06-08 21:53:54 +02:00
Daniele Alessandri e7d2717ee1 Switch from pecl_http to the cURL extension to make requests against Webdis.
The cURL extension is easily found already packaged for various Linux
distributions, it provides everything needed and it seems to have a lower
overhead compared to pecl_http.
2011-06-08 21:43:23 +02:00
Daniele Alessandri 0de4af07dd Fix wrong serialization for commands that do not have arguments. 2011-06-06 12:49:38 +02:00
Daniele Alessandri ff7812282e Slightly change how HTTP options are initialized and handled. 2011-06-06 12:18:37 +02:00
Daniele Alessandri e5a85dfce8 Add support for HTTP basic access authentication.
With Webdis it is possible to define some access control rules to allow or
disallow certain commands and one of the possible configurations is based on
plain old HTTP authentication.
2011-06-05 22:24:03 +02:00
Daniele Alessandri 4b3ba03a3e Disallow certain commands that are disabled or do not make sense with Webdis. 2011-06-05 21:43:55 +02:00
Daniele Alessandri 776501b31a Use a faster approach to serialize the POST data for HTTP requests to Webdis. 2011-06-05 21:01:15 +02:00
Daniele Alessandri 2c8d256bdc Reimport Predis\Network\WebdisConnection with updates.
I could have rebased the previous branch with master, but since it was only a
single file and its history was basically meaningless I preferred to start
from scratch.
2011-06-05 18:46:16 +02:00
Daniele Alessandri 0195a7488a Fix a bug in Predis\Network\StreamConnection::writeBytes().
When PHP's fwrite() ends up writing only a part of $buffer over the network,
this method attempts to automatically write the rest of $buffer. Due to this
bug, the data being already sent to the server was not discarded from $buffer.
Usually fwrite() writes the whole $buffer in one go, but anyway this bug would
not have passed unnoticed since it results in malformed requests and Redis
would have surely returned a -ERR reply.
2011-06-05 17:05:04 +02:00
Daniele Alessandri a8e063e855 Minor updates to README. 2011-06-05 10:19:02 +02:00
Daniele Alessandri 2cdcd297f0 Rename Predis\Client::pubSubContext() to Predis\Client::pubSub(). 2011-06-04 18:47:59 +02:00
Daniele Alessandri 65c0336d2f Use the shared initializer to initialize Pub/Sub and accept callbacks.
When a callback is specified, the client does not return a new instance
of Predis\PubSubContext but it invokes that callback on each message
received. The context can be aborted simply by returning FALSE from the
callback.
2011-06-04 18:41:38 +02:00
Daniele Alessandri 8c207f71bd Removing leftovers. 2011-06-04 17:12:24 +02:00
Daniele Alessandri 42f4663050 Move Predis\ConnectionException to Predis\Network\ConnectionException. 2011-06-04 16:00:35 +02:00
Daniele Alessandri 3801928e0d Move Predis\ProtocolException to Predis\Protocol\ProtocolException. 2011-06-04 15:53:31 +02:00
Daniele Alessandri d59556cae1 Rename the Predis\Protocols namespace to Predis\Protocol. 2011-06-04 15:45:01 +02:00
Daniele Alessandri 667ce97213 Remove a useless return statement. 2011-06-04 15:27:36 +02:00
Daniele Alessandri 101fffbabe Do not check for the existence of a UNIX domain socket file in userland.
Now Predis throws an instance of Predis\ConnectionException when trying to
connect to an instance of Redis on a non-existent UNIX domain socket file.
2011-06-04 15:19:06 +02:00
Daniele Alessandri b35dcd515b Change the code layout of private/protected fields. 2011-06-02 23:49:46 +02:00
Daniele Alessandri df0943120e Add a fire-and-forget executor for pipelines. 2011-06-02 23:44:49 +02:00
Daniele Alessandri b72b12c5cd Fix wrong exception being thrown on invalid instance types passed to 'executor'. 2011-06-02 23:41:12 +02:00
Daniele Alessandri 3f2814c254 Change the code layout of private/protected fields. 2011-06-02 18:53:53 +02:00
Daniele Alessandri 1bd4a25e36 Remove code comments in the exception classes. Descriptions will be added again later with proper documentation. 2011-06-02 18:43:52 +02:00
Daniele Alessandri 24aaa2ac23 Nothing relevant, just reorganizing some private members. 2011-06-02 17:52:22 +02:00
Daniele Alessandri ba4ebb3799 Make the specialized pipeline and transaction initializer methods of Predis\Client protected. 2011-06-02 17:37:33 +02:00
Daniele Alessandri 087b8b0b2b Pass a transaction instance as the first argument of Predis\Transaction\AbortedMultiExecException. 2011-06-02 17:34:06 +02:00
Daniele Alessandri b3910466c9 Clean up a bit the private transaction initializer method of Predis\Client. 2011-06-02 17:25:04 +02:00
Daniele Alessandri 6ad73c782a Move classes related to MULTI/EXEC abstraction to the Predis\Transaction namespace. 2011-06-02 17:20:18 +02:00
Daniele Alessandri fee3866f54 Make it possible to pipeline instances of Predis\Command\ICommand directly. 2011-06-02 16:53:16 +02:00
Daniele Alessandri dfad0d3d24 Rename private variables. 2011-06-02 16:44:52 +02:00
Daniele Alessandri 1ba1408d39 Move the handling of pipeline options inside the pipeline class. 2011-06-02 16:41:17 +02:00