Zend_Queue-Adapters.xml 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.queue.adapters">
  5. <title>Adapter</title>
  6. <para>
  7. <classname>Zend_Queue</classname> unterstützt alle Queues die das Interface
  8. <classname>Zend_Queue_Adapter_AdapterInterface</classname> implementieren. Die folgenden
  9. Nachrichten Queue Services werden unterstützt:
  10. </para>
  11. <itemizedlist>
  12. <listitem>
  13. <para><ulink url="http://activemq.apache.org/">Apache ActiveMQ</ulink>.</para>
  14. </listitem>
  15. <listitem>
  16. <para>Eine Datenbank verwendende Queue über <classname>Zend_Db</classname>.</para>
  17. </listitem>
  18. <listitem>
  19. <para>
  20. Eine <ulink url="http://memcachedb.org/memcacheq/">MemcacheQ</ulink> verwendende
  21. Queue über <classname>Memcache</classname>.
  22. </para>
  23. </listitem>
  24. <listitem>
  25. <para>
  26. Die Job Queue von <ulink
  27. url="http://www.zend.com/en/products/platform/">Zend Platform's</ulink>.
  28. </para>
  29. </listitem>
  30. <listitem>
  31. <para>Ein lokales Array. Nützlich für Unit Tests.</para>
  32. </listitem>
  33. </itemizedlist>
  34. <note id="zend.queue.adapters.limitations">
  35. <title>Einschränkungen</title>
  36. <para>
  37. Das Transaction Handling für Nachrichten wird nicht unterstützt.
  38. </para>
  39. </note>
  40. <sect2 id="zend.queue.adapters.configuration">
  41. <title>Spezielle Adapter - Konfigurations Optionen</title>
  42. <para>
  43. Wenn eine Standardeinstellung angezeigt wird, dann ist der Parameter optional.
  44. Wenn keine Standardeinstellung spezifiziert ist dann wird der Parameter benötigt.
  45. </para>
  46. <sect3 id="zend.queue.adapters.configuration.apachemq">
  47. <title>Apache ActiveMQ - Zend_Queue_Adapter_Activemq</title>
  48. <para>
  49. Hier aufgeführte Optionen sind bekannte Notwendigkeiten. Nicht alle Nachrichten
  50. Server benötigen username oder password.
  51. </para>
  52. <itemizedlist>
  53. <listitem>
  54. <para>
  55. <emphasis>$options['name'] = '/temp/queue1';</emphasis>
  56. </para>
  57. <para>
  58. Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
  59. </para>
  60. </listitem>
  61. <listitem>
  62. <para>
  63. <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
  64. </para>
  65. <para>
  66. <emphasis>$options['driverOptions']['host'] = '127.0.0.1';</emphasis>
  67. </para>
  68. <para>
  69. Man kann host auf eine IP Adresse oder einen Hostnamen setzen.
  70. </para>
  71. <para>
  72. Der Standardwert für host ist '127.0.0.1'.
  73. </para>
  74. </listitem>
  75. <listitem>
  76. <para>
  77. <emphasis>$options['driverOptions']['port'] = 61613;</emphasis>
  78. </para>
  79. <para>Die Standardeinstellung für port ist 61613.</para>
  80. </listitem>
  81. <listitem>
  82. <para>
  83. <emphasis>$options['driverOptions']['username'] = 'username';</emphasis>
  84. </para>
  85. <para>
  86. Optional für einige Nachrichten Server. Lesen Sie das Handbuch für Ihren
  87. Nachrichten Server.
  88. </para>
  89. </listitem>
  90. <listitem>
  91. <para>
  92. <emphasis>$options['driverOptions']['password'] = 'password';</emphasis>
  93. </para>
  94. <para>
  95. Optional für einige Nachrichten Server. Lesen Sie das Handbuch für Ihren
  96. Nachrichten Server.
  97. </para>
  98. </listitem>
  99. <listitem>
  100. <para>
  101. <emphasis>$options['driverOptions']['timeout_sec'] = 2;</emphasis>
  102. </para>
  103. <para>
  104. <emphasis>$options['driverOptions']['timeout_usec'] = 0;</emphasis>
  105. </para>
  106. <para>
  107. Das ist die Menge an Zeit die
  108. <classname>Zend_Queue_Adapter_Activemq</classname> für einen Lesezugriff
  109. auf einem Socket wartet bevor keine Nachricht zurückgegeben wird.
  110. </para>
  111. </listitem>
  112. </itemizedlist>
  113. </sect3>
  114. <sect3 id="zend.queue.adapters.configuration.Db">
  115. <title>Db - Zend_Queue_Adapter_Db</title>
  116. <para>
  117. Optionen des Treibers werden für wenige benötigte Optionen geprüft so wie
  118. <emphasis>type</emphasis>, <emphasis>host</emphasis>,
  119. <emphasis>username</emphasis>, <emphasis>password</emphasis> und
  120. <emphasis>dbname</emphasis>. Man kann zusätzliche Parameter für
  121. <methodname>Zend_DB::factory()</methodname> als Paramerter in
  122. <varname>$options['driverOptions']</varname> übergeben. Ein Beispiel für eine
  123. zusätzliche Option die hier nicht aufgeführt ist, aber übergeben werden könnte ist
  124. <emphasis>port</emphasis>.
  125. </para>
  126. <programlisting language="php"><![CDATA[
  127. $options = array(
  128. 'driverOptions' => array(
  129. 'host' => 'db1.domain.tld',
  130. 'username' => 'my_username',
  131. 'password' => 'my_password',
  132. 'dbname' => 'messaging',
  133. 'type' => 'pdo_mysql',
  134. 'port' => 3306, // Optionaler Parameter
  135. ),
  136. 'options' => array(
  137. // Verwenden von Zend_Db_Select für das Update, nicht alle Datenbanken
  138. // unterstützen dieses Feature.
  139. Zend_Db_Select::FOR_UPDATE => true
  140. )
  141. );
  142. // Eine Datenbank Queue erstellen.
  143. $queue = new Zend_Queue('Db', $options);
  144. ]]></programlisting>
  145. <itemizedlist>
  146. <listitem>
  147. <para>
  148. <emphasis>$options['name'] = 'queue1';</emphasis>
  149. </para>
  150. <para>
  151. Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
  152. </para>
  153. </listitem>
  154. <listitem>
  155. <para>
  156. <emphasis>$options['driverOptions']['type'] = 'Pdo';</emphasis>
  157. </para>
  158. <para>
  159. <emphasis>type</emphasis> ist der Adapter von dem man will das Ihn
  160. <methodname>Zend_Db::factory()</methodname> verwendet. Das ist der erste
  161. Parameter für den Aufruf der Klassenmethode
  162. <methodname>Zend_Db::factory()</methodname>
  163. </para>
  164. </listitem>
  165. <listitem>
  166. <para>
  167. <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
  168. </para>
  169. <para>
  170. <emphasis>$options['driverOptions']['host'] = '127.0.0.1';</emphasis>
  171. </para>
  172. <para>
  173. Man kann host auf eine IP Adresse oder einen Hostnamen setzen.
  174. </para>
  175. <para>
  176. Der Standardwert für host ist '127.0.0.1'.
  177. </para>
  178. </listitem>
  179. <listitem>
  180. <para>
  181. <emphasis>$options['driverOptions']['username'] = 'username';</emphasis>
  182. </para>
  183. </listitem>
  184. <listitem>
  185. <para>
  186. <emphasis>$options['driverOptions']['password'] = 'password';</emphasis>
  187. </para>
  188. </listitem>
  189. <listitem>
  190. <para>
  191. <emphasis>$options['driverOptions']['dbname'] = 'dbname';</emphasis>
  192. </para>
  193. <para>
  194. Der Name der Datenbank für die man die benötigten Tabellen erstellt hat.
  195. Siehe das unten stehende Notizen Kapitel.
  196. </para>
  197. </listitem>
  198. </itemizedlist>
  199. </sect3>
  200. <sect3 id="zend.queue.adapters.configuration.memcacheq">
  201. <title>MemcacheQ - Zend_Queue_Adapter_Memcacheq</title>
  202. <itemizedlist>
  203. <listitem>
  204. <para>
  205. <emphasis>$options['name'] = 'queue1';</emphasis>
  206. </para>
  207. <para>
  208. Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
  209. </para>
  210. </listitem>
  211. <listitem>
  212. <para>
  213. <emphasis>$options['driverOptions']['host'] =
  214. 'host.domain.tld';</emphasis>
  215. </para>
  216. <para>
  217. <emphasis>$options['driverOptions']['host'] = '127.0.0.1;'</emphasis>
  218. </para>
  219. <para>
  220. Man kann host auf eine IP Adresse oder einen Hostnamen setzen.
  221. </para>
  222. <para>
  223. Der Standardwert für host ist '127.0.0.1'.
  224. </para>
  225. </listitem>
  226. <listitem>
  227. <para>
  228. <emphasis>$options['driverOptions']['port'] = 22201;</emphasis>
  229. </para>
  230. <para>Die Standardeinstellung für port ist 22201.</para>
  231. </listitem>
  232. </itemizedlist>
  233. </sect3>
  234. <sect3 id="zend.queue.adapters.configuration.platformjq">
  235. <title>Zend Platform Job Queue - Zend_Queue_Adapter_PlatformJobQueue</title>
  236. <itemizedlist>
  237. <listitem>
  238. <para>
  239. <emphasis>$options['daemonOptions']['host'] =
  240. '127.0.0.1:10003';</emphasis>
  241. </para>
  242. <para>
  243. Hostname und Port die mit dem Daemon der Zend Platform Job Queue
  244. korrespondieren, die man verwenden will. (Benötigt)
  245. </para>
  246. </listitem>
  247. <listitem>
  248. <para>
  249. <emphasis>$options['daemonOptions']['password'] = '1234';</emphasis>
  250. </para>
  251. <para>
  252. Das Passwort welches für den Zugriff auf den Daemon der Zend Platform Job
  253. Queue benötigt wird. (Benötigt)
  254. </para>
  255. </listitem>
  256. </itemizedlist>
  257. </sect3>
  258. <sect3 id="zend.queue.adapters.configuration.array">
  259. <title>Array - Zend_Queue_Adapter_Array</title>
  260. <itemizedlist>
  261. <listitem>
  262. <para>
  263. <emphasis>$options['name'] = 'queue1';</emphasis>
  264. </para>
  265. <para>
  266. Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt)
  267. </para>
  268. </listitem>
  269. </itemizedlist>
  270. </sect3>
  271. </sect2>
  272. <sect2 id="zend.queue.adapters.notes">
  273. <title>Hinweise für spezielle Adapter</title>
  274. <para>Die folgenden Adapter haben Hinweise:</para>
  275. <sect3 id="zend.queue.adapters.notes.activemq">
  276. <title>Apache ActiveMQ</title>
  277. <para>
  278. Die Dauer der Sichtbarkeit (visibility duration) ist für
  279. <classname>Zend_Queue_Adapter_Activemq</classname> nicht vorhanden.
  280. </para>
  281. <para>
  282. Wärend Apache's ActiveMQ mehrere Einschreibungen unterstützt, wird das von
  283. <classname>Zend_Queue</classname> nicht unterstützt. Man muss ein neues
  284. <classname>Zend_Queue</classname> Objekt für jede individuelle Einschreibung
  285. erstellen.
  286. </para>
  287. <para>
  288. ActiveMQ Queue oder Topic Namen müssen mit einem der folgenden beginnen:
  289. </para>
  290. <itemizedlist>
  291. <listitem><para><filename>/queue/</filename></para></listitem>
  292. <listitem><para><filename>/topic/</filename></para></listitem>
  293. <listitem><para><filename>/temp-queue/</filename></para></listitem>
  294. <listitem><para><filename>/temp-topic/</filename></para></listitem>
  295. </itemizedlist>
  296. <para>
  297. Zum Beispiel: <filename>/queue/testing</filename>
  298. </para>
  299. <para>
  300. Die folgenden Funktionen werden nicht unterstützt:
  301. </para>
  302. <itemizedlist>
  303. <listitem>
  304. <para>
  305. <methodname>create()</methodname> - Erstellt eine Queue. Der Aufruf dieser
  306. Funktion wird eine Exception werfen.
  307. </para>
  308. </listitem>
  309. <listitem>
  310. <para>
  311. <methodname>delete()</methodname> - Löscht eine Queue. Der Aufruf dieser
  312. Funktion wird eine Exception werfen.
  313. </para>
  314. </listitem>
  315. <listitem>
  316. <para>
  317. <methodname>getQueues()</methodname> - Auflisten von Queues. Der Aufruf
  318. dieser Funktion wird eine Exception werden.
  319. </para>
  320. </listitem>
  321. </itemizedlist>
  322. </sect3>
  323. <sect3 id="zend.queue.adapters.notes.zend_db">
  324. <title>Zend_Db</title>
  325. <para>
  326. Das Datenbank <acronym>SQL</acronym> Statement
  327. <emphasis>CREATE TABLE ( ... )</emphasis> kann in
  328. <filename>Zend/Queue/Adapter/Db/mysql.sql</filename> gefunden werden.
  329. </para>
  330. </sect3>
  331. <sect3 id="zend.queue.adapters.notes.memcacheQ">
  332. <title>MemcacheQ</title>
  333. <para>
  334. Memcache kann von <ulink
  335. url="http://www.danga.com/memcached/">http://www.danga.com/memcached/</ulink>
  336. heruntergeladen werden.
  337. </para>
  338. <para>
  339. MemcacheQ kann von <ulink
  340. url="http://memcachedb.org/memcacheq/">http://memcachedb.org/memcacheq/</ulink>
  341. heruntergeladen werden.
  342. </para>
  343. <itemizedlist>
  344. <listitem>
  345. <para>
  346. <methodname>deleteMessage()</methodname> - Nachrichten werden von der Queue
  347. gelöscht nachdem Sie von der Queue empfangen werden. Der Aufruf dieser
  348. Funktion hätte keinen Effekt. Der Aufruf dieser Funktion wird keinen Fehler
  349. werfen.
  350. </para>
  351. </listitem>
  352. <listitem>
  353. <para>
  354. <methodname>count()</methodname> oder
  355. <methodname>count($adapter)</methodname> - MemcacheQ unterstützt keine
  356. Methode für das Zählen der Anzahl an Elementen in einer Queue. Der Aufruf
  357. dieser Funktion wird keinen Fehler werfen.
  358. </para>
  359. </listitem>
  360. </itemizedlist>
  361. </sect3>
  362. <sect3 id="zend.queue.adapters.notes.platformjq">
  363. <title>Zend Platform Job Queue</title>
  364. <para>
  365. Job Queue ist ein Feature das von Zend Platform's Enterprise Solution angeboten
  366. wird. Es ist keine traditionelle Nachrichten Queue, sondern erlaubt es ein Skript
  367. zu queuen um es auszuführen, zusammen mit den Parametern die man an dieses
  368. übergeben will. Man kann mehr über die Job Queue <ulink
  369. url="http://www.zend.com/en/products/platform/">auf der Webseite von
  370. zend.com</ulink> herausfinden.
  371. </para>
  372. <para>
  373. Nachfolgend ist eine Liste von Methoden bei denen sich das Verhalten dieses
  374. Adapters vom Standardverhalten unterscheidet:
  375. </para>
  376. <itemizedlist>
  377. <listitem>
  378. <para>
  379. <methodname>create()</methodname> - Zend Platform hat kein Konzept von
  380. diskreten Queues; stattdessen erlaubt es Administratoren Skripte für die
  381. Bearbeitung der Queue anzugeben. Da das hinzufügen von neuen Skripten auf
  382. das Administrations Interface begrenzt ist, wirft diese Methode einfach
  383. eine Exception um anzuzeigen das diese Aktion verboten ist.
  384. </para>
  385. </listitem>
  386. <listitem>
  387. <para>
  388. <methodname>isExists()</methodname> - Genauso wie
  389. <methodname>create()</methodname>, und da die Job Queue keine Notation für
  390. benannte Queues hat wirft diese Methode eine Exception wenn Sie aufgerufen
  391. wird.
  392. </para>
  393. </listitem>
  394. <listitem>
  395. <para>
  396. <methodname>delete()</methodname> - Ähnlich wie
  397. <methodname>create()</methodname>, ist das Löschen von JQ Skripten nicht
  398. möglich, ausser über das Admin Interface; diese Methode wirft eine
  399. Exception.
  400. </para>
  401. </listitem>
  402. <listitem>
  403. <para>
  404. <methodname>getQueues()</methodname> - Zend Platform erlaubt es nicht
  405. über die <acronym>API</acronym> die angehängten Job Handling Skripte
  406. einzusehen. Diese Methode wirft eine Exception.
  407. </para>
  408. </listitem>
  409. <listitem>
  410. <para>
  411. <methodname>count()</methodname> - Gibt die totale Anzahl an Jobs zurück
  412. die aktuell in der Job Queue aktiv sind.
  413. </para>
  414. </listitem>
  415. <listitem>
  416. <para>
  417. <methodname>send()</methodname> - Diese Methode ist möglicherweise die eine
  418. Methode welche sich am meisten von den anderen Adaptern unterscheidet.
  419. Das <varname>$message</varname> Argument kann eine von drei möglichen
  420. Typen sein und arbeitet unterschiedlich, basierend auf dem übergebenen
  421. Wert:
  422. </para>
  423. <itemizedlist>
  424. <listitem>
  425. <para>
  426. <acronym>string</acronym> - Der Name eines betroffenen Skripts das
  427. in der Job Queue registriert ist. Wenn es auf diesem Weg übergeben
  428. wird, werden keine Argumente an das Skript übergeben.
  429. </para>
  430. </listitem>
  431. <listitem>
  432. <para>
  433. <acronym>array</acronym> - Ein Array von Werte mit denen ein
  434. <classname>ZendApi_Job</classname> Objekt konfiguriert werden soll.
  435. Dieses kann folgendes enthalten:
  436. </para>
  437. <itemizedlist>
  438. <listitem>
  439. <para>
  440. <varname>script</varname> - Den Namen des betroffenen
  441. Job Queue Skripts. (Benötigt)
  442. </para>
  443. </listitem>
  444. <listitem>
  445. <para>
  446. <varname>priority</varname> - Die Priorität des Jobs die
  447. verwendet werden soll wenn er in der Queue registriert
  448. wird.
  449. </para>
  450. </listitem>
  451. <listitem>
  452. <para>
  453. <varname>name</varname> - Ein kurzer String der den Job
  454. beschreibt.
  455. </para>
  456. </listitem>
  457. <listitem>
  458. <para>
  459. <varname>predecessor</varname> - Die ID eines Jobs von der
  460. dieser abhängt, und welches aufgeführt werden muß bevor
  461. dieses anfangen kann.
  462. </para>
  463. </listitem>
  464. <listitem>
  465. <para>
  466. <varname>preserved</varname> - Ob der Job in der History
  467. der Job Queue behalten werden soll. Standardmäßig aus;
  468. wenn ein <constant>TRUE</constant> Wert übergeben wird,
  469. dann wird er behalten.
  470. </para>
  471. </listitem>
  472. <listitem>
  473. <para>
  474. <varname>user_variables</varname> - Ein Assoziatives Array
  475. aller Variablen die man während der Ausführung des Jobs im
  476. Geltungsbereich haben will (ähnlich benannten Argumenten).
  477. </para>
  478. </listitem>
  479. <listitem>
  480. <para>
  481. <varname>interval</varname> - Wie oft, in Sekunden, der Job
  482. ausgeführt werden soll. Standardmäßig ist das auf 0
  483. gesetzt, was anzeigt das er einmal, und nur einmal
  484. ausgeführt werden soll.
  485. </para>
  486. </listitem>
  487. <listitem>
  488. <para>
  489. <varname>end_time</varname> - Eine abgelaufene Zeit, nach
  490. welcher der Job nicht ausgeführt werden soll. Wenn der Job
  491. so gesetzt wurde das er nur einmal ausgeführt wird, und
  492. <varname>end_time</varname> übergeben wurde, dann wird der
  493. Job nicht ausgeführt. Wenn der Job so gesetzt wurde das er
  494. in einem Intervall ausgeführt wird, das wird er nicht mehr
  495. ausgeführt bis <varname>end_time</varname> abgelaufen ist.
  496. </para>
  497. </listitem>
  498. <listitem>
  499. <para>
  500. <varname>schedule_time</varname> - Ein
  501. <acronym>UNIX</acronym> Zeitstempel der anzeigt wann der
  502. Job ausgeführt werden soll; standardmäßig 0, was anzeigt
  503. das der Job so früh wie möglich ausgeführt werden soll.
  504. </para>
  505. </listitem>
  506. <listitem>
  507. <para>
  508. <varname>application_id</varname> - Der Identifikator der
  509. Anwendung für den Job. Standardmäßig ist er
  510. <constant>NULL</constant>, was anzeigt das automatisch
  511. einer von der Queue zugeordnet wird, wenn die Queue einer
  512. Anwendungs ID zugeordnet wird.
  513. </para>
  514. </listitem>
  515. </itemizedlist>
  516. <para>
  517. Wie erwähnt, wird nur das <varname>script</varname> Argument
  518. benötigt; alle anderen anderen nur nur einfach vorhanden um es zu
  519. erlauben feinkörnigere Details darüber zu übergeben, wie und wann
  520. ein Job ausgeführt werden soll.
  521. </para>
  522. </listitem>
  523. <listitem>
  524. <para>
  525. <classname>ZendApi_Job</classname> - Letztendlich kann einfach eine
  526. Instanz von <classname>ZendApi_Job</classname> übergeben werden und
  527. Sie wird zur Job Queue der Plattform übergeben.
  528. </para>
  529. </listitem>
  530. </itemizedlist>
  531. <para>
  532. In allen Instanzen gibt <methodname>send()</methodname> ein
  533. <classname>Zend_Queue_Message_PlatformJob</classname> Objekt zurück,
  534. welches Zugriff zum <classname>ZendApi_Job</classname> Objekt gibt und
  535. verwendet wird um mit der Job Queue zu kommunizieren.
  536. </para>
  537. </listitem>
  538. <listitem>
  539. <para>
  540. <methodname>receive()</methodname> - Empfängt eine Liste von aktiven Jobs
  541. von der Job Queue. Jeder Job im zurückgegebenen Set ist eine Instanz von
  542. <classname>Zend_Queue_Message_PlatformJob</classname>.
  543. </para>
  544. </listitem>
  545. <listitem>
  546. <para>
  547. <methodname>deleteMessage()</methodname> - Da dieser Adapter nur mit der
  548. Job Queue arbeitet, erwartet diese Methode das die übergebene
  549. <varname>$message</varname> eine Instanz von
  550. <classname>Zend_Queue_Message_PlatformJob</classname> ist, und wirft
  551. andernfalls eine Exception.
  552. </para>
  553. </listitem>
  554. </itemizedlist>
  555. </sect3>
  556. <sect3 id="zend.queue.adapters.notes.array">
  557. <title>Array (Lokal)</title>
  558. <para>
  559. Die Array Queue ist ein <acronym>PHP</acronym> <methodname>array()</methodname>
  560. im lokalen Speicher. <classname>Zend_Queue_Adapter_Array</classname> ist gut
  561. für das Unit Testen.
  562. </para>
  563. </sect3>
  564. </sect2>
  565. </sect1>