From f4d16c3936371a93765f39bfa4e7b4c6ad42774e Mon Sep 17 00:00:00 2001 From: Andrei Zmievski Date: Fri, 6 Feb 2009 22:18:23 +0000 Subject: [PATCH] docs progress git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@275308 c90b9560-bf6c-de11-be94-00142212c4b1 --- reference/memcached/book.xml | 4 +- reference/memcached/callbacks.xml | 95 ++++++++++++++++++- reference/memcached/memcached/getmulti.xml | 4 +- .../memcached/memcached/getresultcode.xml | 35 +++---- 4 files changed, 110 insertions(+), 28 deletions(-) diff --git a/reference/memcached/book.xml b/reference/memcached/book.xml index 0a4f3e581e..be8497535c 100644 --- a/reference/memcached/book.xml +++ b/reference/memcached/book.xml @@ -1,5 +1,5 @@ - + Memcached @@ -31,9 +31,9 @@ &reference.memcached.setup; &reference.memcached.constants; - &reference.memcached.callbacks; &reference.memcached.examples; &reference.memcached.expiration; + &reference.memcached.callbacks; &reference.memcached.memcached; diff --git a/reference/memcached/callbacks.xml b/reference/memcached/callbacks.xml index b4cf848f9b..bb573c66eb 100644 --- a/reference/memcached/callbacks.xml +++ b/reference/memcached/callbacks.xml @@ -1,12 +1,101 @@ - + Callbacks -
- Placeholder +
+ Result callbacks + + Result callbacks are invoked by + Memcached::getDelayed or + Memcached::getDelayedBykey methods for each item in + the result set. The callback is passed the Memcached object and the array + with the item information. The callback does not have to return anything. + + + Result callback example + +addServer('localhost', 11211); +$items = array( + 'key1' => 'value1', + 'key2' => 'value2', + 'key3' => 'value3' +); +$m->setMulti($items); +$m->getDelayed(array('key1', 'key3'), true, 'result_cb'); + +function result_cb($memc, $item) +{ + var_dump($item); +} +?> +]]> + + &example.outputs.similar; + + + string(4) "key1" + ["value"]=> + string(6) "value1" + ["cas"]=> + float(49) +} +array(3) { + ["key"]=> + string(4) "key3" + ["value"]=> + string(6) "value3" + ["cas"]=> + float(50) +} +]]> + +
+ +
+ Read-through cache callbacks + + Read-through cache callbacks are invoked when an item cannot be retrieved + from the server. The callback is passed the Memcached object, the requested + key, and the by-reference value variable. The callback is responsible for + setting the value and returning true or false. If the callback returns true, + Memcached will store the populated value on the server and return it to the + original calling function. Only Memcached::get and + Memcached::getByKey support these callbacks, + because the memcache protocol does not provide information on which keys + were not found in the multi-key request. + + + Read-through callback example + +addServer('localhost', 11211); + +$profile_info = $m->get('user:'.$user_id, 'user_info_cb'); + +function user_info_cb($memc, $key, &$value) +{ + $user_id = substr($key, 5); + /* lookup profile info in the DB */ + ... + $value = $profile_info; + return true; +} +?> +]]> + + +
+ + @@ -26,7 +26,7 @@ Unlike Memcached::get it is not possible to specify a read-through cache callback for Memcached::getMulti, because the memcache protocol - does provide information on which keys were not found in the multi-key + does not provide information on which keys were not found in the multi-key request. diff --git a/reference/memcached/memcached/getresultcode.xml b/reference/memcached/memcached/getresultcode.xml index 651ab2cda8..528fda1f56 100644 --- a/reference/memcached/memcached/getresultcode.xml +++ b/reference/memcached/memcached/getresultcode.xml @@ -1,20 +1,22 @@ - + Memcached::getResultCode - The getResultCode purpose + Return the result code of the last operation &reftitle.description; - public voidMemcached::getResultCode + public intMemcached::getResultCode - The method description goes here. + Memcached::getResultCode returns one of the + Memcached::RES_* constants that is the result of the + last executed Memcached method. @@ -26,7 +28,7 @@ &reftitle.returnvalues; - Description... + Result code of the last Memcached operation. @@ -38,29 +40,20 @@ addServer('localhost', 11211); + +$m->add('foo', 'bar'); +if ($m->getResultCode() == Memcached::RES_NOTSTORED) { + ... +} ?> ]]> - &example.outputs.similar; - - - - - &reftitle.seealso; - - - Classname::Method - - - -