[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Queue-Custom.xml
blobfb72902e719ab59cee18800187549f93a620a8d8
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20063 -->
4 <sect1 id="zend.queue.custom">
5     <title>Zend_Queueのカスタマイズ</title>
7     <sect2 id="zend.queue.custom.adapter">
8         <title>独自のアダプタ作成</title>
10         <para>
11             <classname>Zend_Queue</classname>は、
12             <classname>Zend_Queue_Adapter_AdapterAbstract</classname>を実装するどんなアダプタも扱います。
13             既存のアダプタ、
14             または抽象クラス<classname>Zend_Queue_Adapter_AdapterAbstract</classname>のうちの1つを拡張することにより、
15             独自のアダプタを作成できます。
16             このアダプタとして<classname>Zend_Queue_Adapter_Array</classname>を検討することが、
17             最も簡単に概念化できると提案します。
18         </para>
20         <programlisting language="php"><![CDATA[
21 class Custom_DbForUpdate extends Zend_Queue_Adapter_Db
23     /**
24      * @see tests/Zend/Queue/Custom/DbForUpdate.php のコード
25      *
26      * Custom_DbForUpdate はその行を見つけるために、SELECT ... FOR UPDATE を使います。
27      * 既存のコードよりも求められる列をもたらす可能性がよりあります。
28      *
29      * しかしながら、データベース全てに SELECT ... FOR UPDATE フィーチャがあるとは限りません。
30      *
31      * 注意: これは後でZend_Queue_Adapter_Dbのオプションに変換されました。
32      *
33      * このコードは良い例をまだ提供します。
34      */
37 $options = array(
38     'name'          => 'queue1',
39     'driverOptions' => array(
40         'host'      => '127.0.0.1',
41         'port'      => '3306',
42         'username'  => 'queue',
43         'password'  => 'queue',
44         'dbname'    => 'queue',
45         'type'      => 'pdo_mysql'
46     )
49 $adapter = new Custom_DbForUpdate($options);
50 $queue = new Zend_Queue($adapter, $options);
51 ]]></programlisting>
53         <para>
54             同様に即座にアダプタを変えることもできます。
55         </para>
57         <programlisting language="php"><![CDATA[
58 $adapter = new MyCustom_Adapter($options);
59 $queue   = new Zend_Queue($options);
60 $queue->setAdapter($adapter);
61 echo "Adapter: ", get_class($queue->getAdapter()), "\n";
62 ]]></programlisting>
64         <para>or</para>
66         <programlisting language="php"><![CDATA[
67 $options = array(
68     'name'           => 'queue1',
69     'namespace'      => 'Custom',
70     'driverOptions'  => array(
71         'host'       => '127.0.0.1',
72         'port'       => '3306',
73         'username'   => 'queue',
74         'password'   => 'queue',
75         'dbname'     => 'queue',
76         'type'       => 'pdo_mysql'
77     )
79 $queue = new Zend_Queue('DbForUpdate', $config); // Custom_DbForUpdate をロード
80 ]]></programlisting>
81     </sect2>
83     <sect2 id="zend.queue.custom.message">
84         <title>独自のメッセージクラスを作成</title>
86         <para>
87             <classname>Zend_Queue</classname>は、独自のメッセージクラスも扱います。
88             変数はアンダーラインで始めます。
89             例えば:
90         </para>
92         <programlisting language="php"><![CDATA[
93 class Zend_Queue_Message
95     protected $_data = array();
97 ]]></programlisting>
99         <para>
100             既存のメッセージクラスを拡張できます。
101             <filename>tests/Zend/Queue/Custom/Message.php</filename>でコード例をご覧下さい。
102         </para>
103     </sect2>
105     <sect2 id="zend.queue.custom-iterator">
106         <title>独自のメッセージ・イテレータクラスを作成</title>
108         <para>
109             <classname>Zend_Queue</classname>は、独自のメッセージ・イテレータ・クラスも扱います。
110             メッセージ・イテレータ・クラスは、
111             <methodname>Zend_Queue_Adapter_Abstract::recieve()</methodname>からメッセージを返すために使われます。
112             たとえメッセージが1つだけだとしても、
113             <methodname>Zend_Queue_Abstract::receive()</methodname>は、
114             <classname>Zend_Queue_Message_Iterator</classname>のようなコンテナ・クラスを常に返さなければなりません。
115         </para>
117         <para>
118             <filename>tests/Zend/Queue/Custom/Messages.php</filename>でファイル名の例をご覧ください。
119         </para>
120     </sect2>
122     <sect2 id="zend.queue.custom.queue">
123         <title>独自の待ち行列クラスを作成</title>
125         <para>
126             <classname>Zend_Queue</classname>は上書きすることも簡単にできます。
127         </para>
129         <para>
130             <filename>tests/Zend/Queue/Custom/Queue.php</filename>でファイル名の例をご覧ください。
131         </para>
132     </sect2>
133 </sect1>