[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / en / module_specs / Zend_Service_DeveloperGarden.xml
blob9ffa5ce49de8c735029b0fa29140849c73f6f57f
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <sect1 id="zend.service.developergarden">
4     <title>Zend_Service_DeveloperGarden</title>
6     <sect2 id="zend.service.developergarden.introduction">
7         <title>Introduction to DeveloperGarden</title>
9         <para>
10             Developer Garden is the name of Deutsche Telekom’s developer community.
11             Developer Garden offers you  access to core services of Deutsche Telekom,
12             such as voice connections (Voice Call) or sending text messages (Send SMS)
13             via open interfaces (Open <acronym>API</acronym>s). You can access the Developer Garden
14             services directly via <acronym>SOAP</acronym> or <acronym>REST</acronym>.
15         </para>
17         <para>
18             The family of <classname>Zend_Service_DeveloperGarden</classname> components provides a
19             clean and simple interface to the <ulink
20                 url="http://www.developergarden.com">Developer Garden APIs</ulink> and additionally
21             offers functionality to improve handling and performance.
22         </para>
24         <itemizedlist>
25             <listitem>
26                 <para>
27                     <link
28                         linkend="zend.service.developergarden.baseuserservice">BaseUserService</link>:
29                     Class to manage <acronym>API</acronym> quota and user accounting details.
30                 </para>
31             </listitem>
33             <listitem>
34                 <para>
35                     <link linkend="zend.service.developergarden.iplocation">IPLocation</link>:
36                     Locale the given IP and returns geo coordinates. Works only with IPs allocated
37                     in the network of the Deutsche Telekom.
38                     </para>
39             </listitem>
41             <listitem>
42                 <para>
43                     <link linkend="zend.service.developergarden.localsearch">LocalSearch</link>:
44                     Allows you to search with options nearby or around a given geo coordinate or
45                     city.
46                 </para>
47             </listitem>
49             <listitem>
50                 <para>
51                     <link linkend="zend.service.developergarden.sendsms">SendSMS</link>: Send a SMS
52                     or Flash SMS to a given number.
53                 </para>
54             </listitem>
56             <listitem>
57                 <para>
58                     <link linkend="zend.service.developergarden.smsvalidation">SMSValidation</link>:
59                     You can validate a number to use it with SendSMS for also supply a back channel.
60                 </para>
61             </listitem>
63             <listitem>
64                 <para>
65                     <link linkend="zend.service.developergarden.voicecall">VoiceCall</link>:
66                     Initiates a call between two participants.
67                  </para>
68             </listitem>
70             <listitem>
71                 <para>
72                     <link
73                         linkend="zend.service.developergarden.conferencecall">ConferenceCall</link>:
74                     You can configure a whole conference room with participants for an adhoc
75                     conference or you can also schedule your conference.
76                 </para>
77             </listitem>
78         </itemizedlist>
80         <para>
81             The backend <acronym>SOAP</acronym> <acronym>API</acronym> is documented
82             <ulink url="http://www.developergarden.com/openapi/dokumentation/">here</ulink>.
83         </para>
85         <sect3 id="zend.service.developergarden.account">
86             <title>Sign Up for an Account</title>
88             <para>
89                 Before you can start using the DeveloperGarden <acronym>API</acronym>, you first
90                 have to <ulink url="http://www.developergarden.com/register">sign up</ulink> for an
91                 account.
92             </para>
93         </sect3>
95         <sect3 id="zend.service.developergarden.environment">
96             <title>The Environment</title>
98             <para>
99                 With the DeveloperGarden <acronym>API</acronym> you have the possibility to choose
100                 between 3 different development environments.
101             </para>
103             <itemizedlist>
104                 <listitem>
105                     <para>
106                         <emphasis>production</emphasis>: In Production environment there are no
107                         usage limitations. You have to pay for calls, sms and other services with
108                         costs.
109                     </para>
110                 </listitem>
112                 <listitem>
113                     <para>
114                         <emphasis>sandbox</emphasis>: In the Sandbox mode you can use the same
115                         features (with limitations) as in the production without to paying
116                         for them. This environment is suitable for testing your prototype.
117                     </para>
118                 </listitem>
120                 <listitem>
121                     <para>
122                         <emphasis>mock</emphasis>: The Mock environment allows you to build your
123                         application and have results but you do not initiate any action on the
124                         <acronym>API</acronym> side. This environment is intended for testing during
125                         development.
126                     </para>
127                 </listitem>
128             </itemizedlist>
130             <para>
131                 For every environment and service, there are some special features (options)
132                 available for testing. Please look <ulink
133                     url="http://www.developergarden.com/openapi/dokumentation/">here</ulink> for
134                 details.
135             </para>
136         </sect3>
138         <sect3 id="zend.service.developergarden.config">
139             <title>Your configuration</title>
141             <para>
142                 You can pass to all classes an array of configuration values. Possible values are:
143             </para>
145             <itemizedlist>
146                 <listitem>
147                     <para>
148                         <emphasis>username</emphasis>: Your DeveloperGarden <acronym>API</acronym>
149                         username.
150                     </para>
151                 </listitem>
153                 <listitem>
154                     <para>
155                         <emphasis>password</emphasis>: Your DeveloperGarden <acronym>API</acronym>
156                         password.
157                     </para>
158                 </listitem>
160                 <listitem>
161                     <para>
162                         <emphasis>environment</emphasis>: The environment that you selected.
163                     </para>
164                 </listitem>
165             </itemizedlist>
167             <example id="zend.service.developergarden.config.example">
168                 <title>Configuration Example</title>
170                 <programlisting language="php"><![CDATA[
171 require_once 'Zend/Service/DeveloperGarden/SendSms.php';
172 $config = array(
173     'username'    => 'yourUsername',
174     'password'    => 'yourPassword',
175     'environment' => Zend_Service_DeveloperGarden_SendSms::ENV_PRODUCTION,
177 $service = new Zend_Service_DeveloperGarden_SendSms($config);
178 ]]></programlisting>
179             </example>
180         </sect3>
181     </sect2>
183     <sect2 id="zend.service.developergarden.baseuserservice">
184         <title>BaseUserService</title>
186         <para>
187             The class can be used to set and get quota values for the services and to fetch
188             account details.
189         </para>
191         <para>
192             The <methodname>getAccountBalance()</methodname> method fetches an array
193             of account id's with the current balance status (credits).
194         </para>
196         <example id="zend.service.developergarden.baseuserservice.getaccountbalance.example">
197             <title>Get account balance example</title>
199             <programlisting language="php"><![CDATA[
200 $service = new Zend_Service_DeveloperGarden_BaseUserService($config);
201 print_r($service->getAccountBalance());
202 ]]></programlisting>
203         </example>
205         <sect3 id="zend.service.developergarden.baseuserservice.getquotainformation">
206             <title>Get quota information</title>
208             <para>
209                 You can fetch quota informations for a specific service module with the
210                 provided methods.
211             </para>
213             <example id="zend.service.developergarden.baseuserservice.getquotainformation.example">
214                 <title>Get quota information example</title>
216                 <programlisting language="php"><![CDATA[
217 $service = new Zend_Service_DeveloperGarden_BaseUserService($config);
218 $result = $service->getSmsQuotaInformation(
219     Zend_Service_DeveloperGarden_BaseUserService::ENV_PRODUCTION
221 echo 'Sms Quota:<br />';
222 echo 'Max Quota: ', $result->getMaxQuota(), '<br />';
223 echo 'Max User Quota: ', $result->getMaxUserQuota(), '<br />';
224 echo 'Quota Level: ', $result->getQuotaLevel(), '<br />';
225 ]]></programlisting>
226             </example>
228             <para>
229                 You get a <classname>result</classname> object that contains all the information
230                 you need, optional you can pass to the <methodname>QuotaInformation</methodname>
231                 method the environment constant to fetch the quota for the specific environment.
232             </para>
234             <para>
235                 Here a list of all <methodname>getQuotaInformation</methodname> methods:
236             </para>
238             <itemizedlist>
239                 <listitem>
240                     <para>
241                         <methodname>getConfernceCallQuotaInformation()</methodname>
242                     </para>
243                 </listitem>
245                 <listitem>
246                     <para>
247                         <methodname>getIPLocationQuotaInformation()</methodname>
248                     </para>
249                 </listitem>
251                 <listitem>
252                     <para>
253                         <methodname>getLocalSearchQuotaInformation()</methodname>
254                     </para>
255                 </listitem>
257                 <listitem>
258                     <para>
259                         <methodname>getSmsQuotaInformation()</methodname>
260                     </para>
261                 </listitem>
263                 <listitem>
264                     <para>
265                         <methodname>getVoiceCallQuotaInformation()</methodname>
266                     </para>
267                 </listitem>
268             </itemizedlist>
269         </sect3>
271         <sect3 id="zend.service.developergarden.baseuserservice.changequotainformation">
272             <title>Change quota information</title>
274             <para>
275                 To change the current quota use one of the <methodname>changeQuotaPool</methodname>
276                 methods. First parameter is the new pool value and the second one is the
277                 environment.
278             </para>
280             <example
281                 id="zend.service.developergarden.baseuserservice.changequotainformation.example">
282                 <title>Change quota information example</title>
284                 <programlisting language="php"><![CDATA[
285 $service = new Zend_Service_DeveloperGarden_BaseUserService($config);
286 $result = $service->changeSmsQuotaPool(
287     1000,
288     Zend_Service_DeveloperGarden_BaseUserService::ENV_PRODUCTION
290 if (!$result->hasError()) {
291     echo 'updated Quota Pool';
293 ]]></programlisting>
294             </example>
296             <para>
297                 Here a list of all <methodname>changeQuotaPool</methodname> methods:
298             </para>
300             <itemizedlist>
301                 <listitem>
302                     <para>
303                         <methodname>changeConferenceCallQuotaPool()</methodname>
304                     </para>
305                 </listitem>
307                 <listitem>
308                     <para>
309                         <methodname>changeIPLocationQuotaPool()</methodname>
310                     </para>
311                 </listitem>
313                 <listitem>
314                     <para>
315                         <methodname>changeLocalSearchQuotaPool()</methodname>
316                     </para>
317                 </listitem>
319                 <listitem>
320                     <para>
321                         <methodname>changeSmsQuotaPool()</methodname>
322                     </para>
323                 </listitem>
325                 <listitem>
326                     <para>
327                         <methodname>changeVoiceCallQuotaPool()</methodname>
328                     </para>
329                 </listitem>
330             </itemizedlist>
331         </sect3>
332     </sect2>
334     <sect2 id="zend.service.developergarden.iplocation">
335         <title>IP Location</title>
337         <para>
338             This service allows you to retrieve location information for a given IP address.
339         </para>
341         <para>
342             There are some limitations:
343         </para>
345         <itemizedlist>
346             <listitem>
347                 <para>The IP address must be in the T-Home network</para>
348             </listitem>
350             <listitem>
351                 <para>Just the next big city will be resolved</para>
352             </listitem>
354             <listitem>
355                 <para>IPv6 is not supported yet</para>
356             </listitem>
357         </itemizedlist>
359         <example id="zend.service.developergarden.iplocation.locateip.example">
360             <title>Locate a given IP</title>
362             <programlisting language="php"><![CDATA[
363 $service = new Zend_Service_DeveloperGarden_IpLocation($config);
364 $service->setEnvironment(
365     Zend_Service_DeveloperGarden_IpLocation::ENV_MOCK
367 $ip = new Zend_Service_DeveloperGarden_IpLocation_IpAddress('127.0.0.1');
368 print_r($service->locateIp($ip));
369 ]]></programlisting>
370         </example>
371     </sect2>
373     <sect2 id="zend.service.developergarden.localsearch">
374         <title>Local Search</title>
376         <para>
377             The Local Search service provides the location based search machine <ulink
378                 url="http://www.suchen.de">suchen.de</ulink> via web service interface. For
379             more details, refer to <ulink
380                 url="http://www.developergarden.com/static/docu/en/ch04s02s06.html">the
381                 documentation</ulink>.
382         </para>
384         <example id="zend.service.developergarden.localsearch.example">
385             <title>Locate a Restaurant</title>
387             <programlisting language="php"><![CDATA[
388 $service = new Zend_Service_DeveloperGarden_LocalSearch($config);
389 $search  = new Zend_Service_DeveloperGarden_LocalSearch_SearchParameters();
391  * @see http://www.developergarden.com/static/docu/en/ch04s02s06s04.html
392  */
393 $search->setWhat('pizza')
394        ->setWhere('jena');
395 print_r($service->localSearch($search));
396 ]]></programlisting>
397         </example>
398     </sect2>
400     <sect2 id="zend.service.developergarden.sendsms">
401         <title>Send SMS</title>
403         <para>
404             The Send SMS service is used to send normal and Flash SMS to any number.
405         </para>
407         <para>
408             The following restrictions apply to the use of the SMS service:
409         </para>
411         <itemizedlist>
412             <listitem>
413                 <para>
414                     An SMS or Flash SMS in the production environment must not be longer than
415                     765 characters and must not be sent to more than 10 recipients.
416                 </para>
417             </listitem>
419             <listitem>
420                 <para>
421                     An SMS or Flash SMS in the sandbox environment is shortened and enhanced by a
422                     note from the DeveloperGarden. The maximum length of the message is 160
423                     characters.
424                 </para>
425             </listitem>
427             <listitem>
428                 <para>
429                     In the sandbox environment, a maximum of 10 SMS can be sent per day.
430                 </para>
431             </listitem>
433             <listitem>
434                 <para>
435                     The following characters are counted twice:
436                     <literal>| ^ â‚¬ { } [ ] ~ \ LF</literal> (line break)
437                 </para>
438             </listitem>
440             <listitem>
441                 <para>
442                     If a SMS or Flash SMS is longer than 160 characters, one message is charged for
443                     each 153 characters (quota and credit).
444                 </para>
445             </listitem>
447             <listitem>
448                 <para>
449                     Delivery cannot be guaranteed for SMS or Flash SMS to landline numbers.
450                 </para>
451             </listitem>
453             <listitem>
454                 <para>
455                     The sender can be a maximum of 11 characters. Permitted characters are
456                     letters and numbers.
457                 </para>
458             </listitem>
460             <listitem>
461                 <para>
462                     The specification of a phone number as the sender is only permitted if the phone
463                     number has been validated. (See: <link
464                         linkend="zend.service.developergarden.smsvalidation">SMS Validation</link>)
465                 </para>
466             </listitem>
467         </itemizedlist>
469         <example id="zend.service.developergarden.sendsms.example">
470             <title>Sending an SMS</title>
472             <programlisting language="php"><![CDATA[
473 $service = new Zend_Service_DeveloperGarden_SendSms($config);
474 $sms = $service->createSms(
475     '+49-172-123456; +49-177-789012',
476     'your test message',
477     'yourname'
479 print_r($service->send($sms));]]></programlisting>
480         </example>
481     </sect2>
483     <sect2 id="zend.service.developergarden.smsvalidation">
484         <title>SMS Validation</title>
486         <para>
487             The SMS Validation service allows the validation of physical phone number to be used
488             as the sender of an SMS.
489         </para>
491         <para>
492             First, call <methodname>setValidationKeyword()</methodname> to receive an SMS
493             with a keyword.
494         </para>
496         <para>
497             After you get your keyword, you have to use the <methodname>validate()</methodname> to
498             validate your number with the keyword against the service.
499         </para>
501         <para>
502             With the method <methodname>getValidatedNumbers()</methodname>, you will get a list
503             of all already validated numbers and the status of each.
504         </para>
506         <example id="zend.service.developergarden.smsvalidation.request.example">
507             <title>Request validation keyword</title>
509             <programlisting language="php"><![CDATA[
510 $service = new Zend_Service_DeveloperGarden_SmsValidation($config);
511 print_r($service->sendValidationKeyword('+49-172-123456'));
512 ]]></programlisting>
513         </example>
515         <example id="zend.service.developergarden.smsvalidation.validate.example">
516             <title>Validate a number with a keyword</title>
518             <programlisting language="php"><![CDATA[
519 $service = new Zend_Service_DeveloperGarden_SmsValidation($config);
520 print_r($service->validate('TheKeyWord', '+49-172-123456'));
521 ]]></programlisting>
522         </example>
524         <para>
525             To invalidate a validated number, call the method <methodname>inValidate()</methodname>.
526         </para>
527     </sect2>
529     <sect2 id="zend.service.developergarden.voicecall">
530         <title>Voice Call</title>
532         <para>
533             The Voice Call service can be used to set up a voice connection between two telephone
534             connections. For specific details please read the <ulink
535                 url="http://www.developergarden.com/static/docu/en/ch04s02.html">API
536                 Documentation</ulink>.
537         </para>
539         <para>
540             Normally the Service works as followed:
541         </para>
543         <itemizedlist>
544             <listitem>
545                 <para>
546                     Call the first participant.
547                 </para>
548             </listitem>
550             <listitem>
551                 <para>
552                     If the connection is successful, call the second participant.
553                 </para>
554             </listitem>
556             <listitem>
557                 <para>
558                     If second participant connects succesfully, both participants are connected.
559                 </para>
560             </listitem>
562             <listitem>
563                 <para>
564                     The call is open until one of the participants hangs up or the expire mechanism
565                     intercepts.
566                 </para>
567             </listitem>
568         </itemizedlist>
570         <example id="zend.service.developergarden.voicecall.call.example">
571             <title>Call two numbers</title>
573             <programlisting language="php"><![CDATA[
574 $service = new Zend_Service_DeveloperGarden_VoiceCall($config);
575 $aNumber = '+49-30-000001';
576 $bNumber = '+49-30-000002';
577 $expiration  = 30;  // seconds
578 $maxDuration = 300; // 5 mins
579 $newCall = $service->newCall($aNumber, $bNumber, $expiration, $maxDuration);
580 echo $newCall->getSessionId();
581 ]]></programlisting>
582         </example>
584         <para>
585             If the call is initiated, you can ask the result object for the session ID and
586             use this session ID for an additional call to the <methodname>callStatus</methodname>
587             or <methodname>tearDownCall()</methodname> methods. The second parameter on the
588             <methodname>callStatus()</methodname> method call extends the expiration for this call.
589         </para>
591         <example id="zend.service.developergarden.voicecall.teardown.example">
592             <title>Call two numbers, ask for status, and cancel</title>
594             <programlisting language="php"><![CDATA[
595 $service = new Zend_Service_DeveloperGarden_VoiceCall($config);
596 $aNumber = '+49-30-000001';
597 $bNumber = '+49-30-000002';
598 $expiration  = 30; // seconds
599 $maxDuration = 300; // 5 mins
601 $newCall = $service->newCall($aNumber, $bNumber, $expiration, $maxDuration);
603 $sessionId = $newCall->getSessionId();
605 $service->callStatus($sessionId, true); // extend the call
607 sleep(10); // sleep 10s and then tearDown
609 $service->tearDownCall($sessionId);
610 ]]></programlisting>
611         </example>
612     </sect2>
614     <sect2 id="zend.service.developergarden.conferencecall">
615         <title>ConferenceCall</title>
617         <para>
618             Conference Call allows you to setup and start a phone conference.
619         </para>
621         <para>
622             The following features are available:
623         </para>
625         <itemizedlist>
626             <listitem>
627                 <para>
628                     Conferences with an immediate start
629                 </para>
630             </listitem>
632             <listitem>
633                 <para>
634                     Conferences with a defined start date
635                 </para>
636             </listitem>
638             <listitem>
639                 <para>
640                     Recurring conference series
641                 </para>
642             </listitem>
644             <listitem>
645                 <para>
646                     Adding, removing, and muting of participants from a conference
647                 </para>
648             </listitem>
650             <listitem>
651                 <para>
652                     Templates for conferences
653                 </para>
654             </listitem>
655         </itemizedlist>
657         <para>
658             Here is a list of currently implemented <acronym>API</acronym> methods:
659         </para>
661         <itemizedlist>
662             <listitem>
663                 <para>
664                     <methodname>createConference()</methodname> creates a new conference
665                 </para>
666             </listitem>
668             <listitem>
669                 <para>
670                     <methodname>updateConference()</methodname> updates an existing conference
671                 </para>
672             </listitem>
674             <listitem>
675                 <para>
676                     <methodname>commitConference()</methodname> saves the conference, and, if no
677                     date is configured, immediately starts the conference
678                 </para>
679             </listitem>
681             <listitem>
682                 <para>
683                     <methodname>removeConference()</methodname> removes a conference
684                 </para>
685             </listitem>
687             <listitem>
688                 <para>
689                     <methodname>getConferenceList()</methodname> returns a list of all configured
690                     conferences
691                 </para>
692             </listitem>
694             <listitem>
695                 <para>
696                     <methodname>getConferenceStatus()</methodname> displays information for an
697                     existing conference
698                 </para>
699             </listitem>
701             <listitem>
702                 <para>
703                     <methodname>getParticipantStatus()</methodname> displays status information
704                     about a conference participant
705                 </para>
706             </listitem>
708             <listitem>
709                 <para>
710                     <methodname>newParticipant()</methodname> creates a new participant
711                 </para>
712             </listitem>
714             <listitem>
715                 <para>
716                     <methodname>addParticipant()</methodname> adds a participant to a conference
717                 </para>
718             </listitem>
720             <listitem>
721                 <para>
722                     <methodname>updateParticipant()</methodname> updates a participant,
723                     usually to mute or redial the participant
724                 </para>
725             </listitem>
727             <listitem>
728                 <para>
729                     <methodname>removeParticipant()</methodname> removes a participant from a
730                     conference
731                 </para>
732             </listitem>
734             <listitem>
735                 <para>
736                     <methodname>getRunningConference()</methodname> requests the running instance of
737                     a planned conference
738                 </para>
739             </listitem>
741             <listitem>
742                 <para>
743                     <methodname>createConferenceTemplate()</methodname> creates a new conference
744                     template
745                 </para>
746             </listitem>
748             <listitem>
749                 <para>
750                     <methodname>getConferenceTemplate()</methodname> requests an existing conference
751                     template
752                 </para>
753             </listitem>
755             <listitem>
756                 <para>
757                     <methodname>updateConferenceTemplate()</methodname> updates existing conference
758                     template details
759                 </para>
760             </listitem>
762             <listitem>
763                 <para>
764                     <methodname>removeConferenceTemplate()</methodname> removes a conference
765                     template
766                 </para>
767             </listitem>
769             <listitem>
770                 <para>
771                     <methodname>getConferenceTemplateList()</methodname> requests all conference
772                     templates of an owner
773                 </para>
774             </listitem>
776             <listitem>
777                 <para>
778                     <methodname>addConferenceTemplateParticipant()</methodname> adds a conference
779                     participant to conference template
780                 </para>
781             </listitem>
783             <listitem>
784                 <para>
785                     <methodname>getConferenceTemplateParticipant()</methodname> displays details of
786                     a participant of a conference template
787                 </para>
788             </listitem>
790             <listitem>
791                 <para>
792                     <methodname>updateConferenceTemplateParticipant()</methodname> updates
793                     participant details within a conference template
794                 </para>
795             </listitem>
797             <listitem>
798                 <para>
799                     <methodname>removeConferenceTemplateParticipant()</methodname> removes
800                     a participant from a conference template
801                 </para>
802             </listitem>
803         </itemizedlist>
805         <example id="zend.service.developergarden.conferencecall.example">
806             <title>Ad-Hoc conference</title>
808             <programlisting language="php"><![CDATA[
809 $client = new Zend_Service_DeveloperGarden_ConferenceCall($config);
811 $conferenceDetails =
812     new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
813         'Zend-Conference',                    // name for the conference
814         'this is my private zend conference', // description
815         60                                    // duration in seconds
816     );
818 $conference = $client->createConference('MyName', $conferenceDetails);
820 $part1 = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
821     'Jon',
822     'Doe',
823     '+49-123-4321',
824     'your.name@example.com',
825     true
828 $client->newParticipant($conference->getConferenceId(), $part1);
829 // add a second, third ... participant
831 $client->commitConference($conference->getConferenceId());
832 ]]></programlisting>
833         </example>
834     </sect2>
836     <sect2 id="zend.service.developergarden.performance">
837         <title>Performance and Caching</title>
839         <para>
840             You can setup various caching options to improve the performance for resolving WSDL and
841             authentication tokens.
842         </para>
844         <para>
845             First of all, you can setup the internal SoapClient (PHP) caching values.
846         </para>
848         <example id="zend.service.developergarden.performance.wsdlcache.example">
849             <title>WSDL cache options</title>
851             <programlisting language="php"><![CDATA[
852 Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setWsdlCache(
853     [PHP CONSTANT]
855 ]]></programlisting>
856         </example>
858         <para>
859             The <constant>[PHP CONSTANT]</constant> can be one of the following values:
860         </para>
862         <itemizedlist>
863             <listitem>
864                 <para>
865                     <constant>WSDL_CACHE_DISC</constant>: enabled disc caching
866                 </para>
867             </listitem>
869             <listitem>
870                 <para>
871                     <constant>WSDL_CACHE_MEMORY</constant>: enabled memory caching
872                 </para>
873             </listitem>
875             <listitem>
876                 <para>
877                     <constant>WSDL_CACHE_BOTH</constant>: enabled disc and memory caching
878                 </para>
879             </listitem>
881             <listitem>
882                 <para>
883                     <constant>WSDL_CACHE_NONE</constant>: disabled both caching
884                 </para>
885             </listitem>
886         </itemizedlist>
888         <para>
889             If you also want to cache the result for calls to the SecuritTokenServer
890             you can setup a <classname>Zend_Cache</classname> instance and pass it to the
891             <methodname>setCache()</methodname>.
892         </para>
894         <example id="zend.service.developergarden.performance.cache.example">
895             <title>SecurityTokenServer cache option</title>
897             <programlisting language="php"><![CDATA[
898 $cache = Zend_Cache::factory('Core', ...);
899 Zend_Service_DeveloperGarden_SecurityTokenServer_Cache::setCache($cache);
900 ]]></programlisting>
901         </example>
902     </sect2>
903 </sect1>