svn: /phpdoc/zh/trunk/reference/memcached/memcached/ getmulti.xml

[email protected] (Dai Jie)
Newsgroups php.doc.zh
Message-ID <[email protected]>
daijie                                   Fri, 16 Nov 2018 16:11:18 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=345992

Log:
Close #77087 [ZH] params cas_tokens is not exists in getMulti

Bug: https://bugs.php.net/77087 (Verified) [ZH] params cas_tokens is not exists  in getMulti
      
Changed paths:
    U   phpdoc/zh/trunk/reference/memcached/memcached/getmulti.xml

Modified: phpdoc/zh/trunk/reference/memcached/memcached/getmulti.xml
===================================================================
--- phpdoc/zh/trunk/reference/memcached/memcached/getmulti.xml	2018-11-16 15:53:26 UTC (rev 345991)
+++ phpdoc/zh/trunk/reference/memcached/memcached/getmulti.xml	2018-11-16 16:11:18 UTC (rev 345992)
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
+<!-- EN-Revision: 342643 Maintainer: daijie Status: ready -->

 <refentry xml:id="memcached.getmulti" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
  <refnamediv>
@@ -12,16 +13,17 @@
   <methodsynopsis>
    <modifier>public</modifier> <type>mixed</type><methodname>Memcached::getMulti</methodname>
    <methodparam><type>array</type><parameter>keys</parameter></methodparam>
-   <methodparam choice="opt"><type>array</type><parameter role="reference">cas_tokens</parameter></methodparam>
    <methodparam choice="opt"><type>int</type><parameter>flags</parameter></methodparam>
   </methodsynopsis>
   <para>
-   <function>Memcached::getMulti</function>与<methodname>Memcached::get</methodname>类似,但是这个方法用来检索
-   <parameter>keys</parameter>数组指定的多个key对应的元素。如果提供了参数<parameter>cas_tokens</parameter>,对于检索到的元素会为其添加CAS标记值。
+   <function>Memcached::getMulti</function> 与 <methodname>Memcached::get</methodname> 类似,但是这个方法用来检索
+    <parameter>keys</parameter> 数组指定的多个 key 对应的元素。
    <note>
     <para>
-     与<methodname>Memcached::get</methodname>不同的是,不能为<function>Memcached::getMulti</function>指定通读回调函数,因为memcache协议
-     不能提供多个key检索时没有查找到的key的信息。
+     在 v3.0 之前,使用的第二个参数是 <parameter role="reference">cas_tokens</parameter>。
+     它会填充进元素的 CAS token 值。
+     在本扩展里,<parameter role="reference">cas_tokens</parameter> 参数在 v3.0 中已经移除。
+     它被新的附加选项(flag) <constant>Memcached::GET_EXTENDED</constant> 代替,需要在 <parameter>flags</parameter> 值里使用。
     </para>
    </note>
   </para>
@@ -28,6 +30,7 @@
   <para>
    <parameter>flags</parameter>参数可以用做指定<function>Memcached::getMulti</function>的附加选项。
    当前,仅可以指定为<constant>Memcached::GET_PRESERVE_ORDER</constant>以保证返回的key的顺序和请求时一致。
+   <constant>Memcached::GET_EXTENDED</constant> 可以确保同时返回了 CAS token 信息。
   </para>
  </refsect1>

@@ -44,18 +47,10 @@
      </listitem>
     </varlistentry>
     <varlistentry>
-     <term><parameter>cas_tokens</parameter></term>
-     <listitem>
-      <para>
-       用来存储检索到的元素的CAS标记。
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
      <term><parameter>flags</parameter></term>
      <listitem>
       <para>
-       get操作的附加选项。
+       Get 操作的附加选项。
       </para>
      </listitem>
     </varlistentry>
@@ -75,10 +70,12 @@
   &reftitle.examples;
   <para>
    <example>
-    <title><function>Memcached::getMulti</function> 示例</title>
+    <title><function>Memcached::getMulti</function> 的 Memcached v3 示例</title>
     <programlisting role="php">
 <![CDATA[
 <?php
+// 扩展版本 v3 有效
+
 $m = new Memcached();
 $m->addServer('localhost', 11211);

@@ -88,6 +85,42 @@
     'key3' => 'value3'
 );
 $m->setMulti($items);
+$result = $m->getMulti(array('key1', 'key3', 'badkey'));
+var_dump($result);
+?>
+]]>
+    </programlisting>
+    &example.outputs.similar;
+    <screen>
+<![CDATA[
+array(2) {
+  ["key1"]=>
+  string(6) "value1"
+  ["key3"]=>
+  string(6) "value3"
+}
+]]>
+    </screen>
+   </example>
+  </para>
+
+  <para>
+   <example>
+    <title><function>Memcached::getMulti</function> 的 Memcached v1 和 v2 示例</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+// 仅在扩展版本 v1 和 v2 中有效
+
+$m = new Memcached();
+$m->addServer('localhost', 11211);
+
+$items = array(
+    'key1' => 'value1',
+    'key2' => 'value2',
+    'key3' => 'value3'
+);
+$m->setMulti($items);
 $result = $m->getMulti(array('key1', 'key3', 'badkey'), $cas);
 var_dump($result, $cas);
 ?>
@@ -112,12 +145,17 @@
     </screen>
    </example>
   </para>
+
+
+
   <para>
    <example>
-    <title><constant>Memcached::GET_PRESERVE_ORDER</constant> 示例</title>
+    <title><constant>Memcached::GET_PRESERVE_ORDER</constant> 的 Memcached v3 示例</title>
     <programlisting role="php">
 <![CDATA[
 <?php
+//  v3 扩展有效
+
 $m = new Memcached();
 $m->addServer('localhost', 11211);

@@ -131,6 +169,51 @@

 $m->setMulti($data, 3600);

+$keys = array_keys($data);
+$keys[] = 'zoo';
+$got = $m->getMulti($keys, Memcached::GET_PRESERVE_ORDER);
+
+foreach ($got as $k => $v) {
+    echo "$k $v\n";
+}
+?>
+]]>
+    </programlisting>
+    &example.outputs.similar;
+    <screen>
+<![CDATA[
+foo foo-data
+bar bar-data
+baz baz-data
+lol lol-data
+kek kek-data
+zoo
+]]>
+    </screen>
+   </example>
+  </para>
+
+  <para>
+   <example>
+    <title><constant>Memcached::GET_PRESERVE_ORDER</constant> 的 Memcached v1 和 v2 示例</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+// 在扩展版本 v1 和 v2  中有效
+
+$m = new Memcached();
+$m->addServer('localhost', 11211);
+
+$data = array(
+    'foo' => 'foo-data',
+    'bar' => 'bar-data',
+    'baz' => 'baz-data',
+    'lol' => 'lol-data',
+    'kek' => 'kek-data',
+);
+
+$m->setMulti($data, 3600);
+
 $null = null;
 $keys = array_keys($data);
 $keys[] = 'zoo';
@@ -157,6 +240,29 @@
   </para>
  </refsect1>

+ <refsect1 role="changelog">
+  &reftitle.changelog;
+  <informaltable>
+   <tgroup cols="2">
+    <thead>
+     <row>
+      <entry>&Version;</entry>
+      <entry>&Description;</entry>
+     </row>
+    </thead>
+    <tbody>
+     <row>
+      <entry>3.0.0</entry>
+      <entry>
+       移出参数 <parameter role="reference">cas_tokens</parameter>。
+       添加 <constant>Memcached::GET_EXTENDED</constant>,当需要获取 CAS token 信息时,传入 flag 中。
+      </entry>
+     </row>
+    </tbody>
+   </tgroup>
+  </informaltable>
+ </refsect1>
+
  <refsect1 role="seealso">
   &reftitle.seealso;
   <para>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.