cvs: phpdoc /en/reference/soap reference.xml /en/reference/soap/functions soap-soapclient-call.xml soap-soapclient-construct.xml
soap-soapclient-dorequest.xml soap-soapclient-soapcall.xml soap-soapfault-construct.xml soap-soapheader-construct.xml soap-soapparam-construct.xml
soap-soapserver-construct.xml soap-soapvar-construct.xml

From: Date: Fri, 28 Jan 2005 14:02:11 +0000
Subject: cvs: phpdoc /en/reference/soap reference.xml /en/reference/soap/functions soap-soapclient-call.xml soap-soapclient-construct.xml
soap-soapclient-dorequest.xml soap-soapclient-soapcall.xml soap-soapfault-construct.xml soap-soapheader-construct.xml soap-soapparam-construct.xml
soap-soapserver-construct.xml soap-soapvar-construct.xml
Groups: php.doc 
Request: Send a blank email to phpdoc+get-969366219@lists.php.net to get a copy of this message
dmitry Fri Jan 28 09:02:11 2005 EDT Added files: /phpdoc/en/reference/soap/functions soap-soapclient-soapcall.xml Modified files: /phpdoc/en/reference/soap reference.xml /phpdoc/en/reference/soap/functions soap-soapclient-call.xml soap-soapclient-construct.xml soap-soapclient-dorequest.xml soap-soapfault-construct.xml soap-soapheader-construct.xml soap-soapparam-construct.xml soap-soapserver-construct.xml soap-soapvar-construct.xml Log: 1. New function SoapClient->__callSoap() is a replacement for old derecated SoapClient->__call(). 2. Description of SoapClient->__doRequest() method. 3. Description of additional options for SoapClient and SoapServer constructors.

http://cvs.php.net/diff.php/phpdoc/en/reference/soap/reference.xml?r1=1.6&r2=1.7&ty=u Index: phpdoc/en/reference/soap/reference.xml diff -u phpdoc/en/reference/soap/reference.xml:1.6 phpdoc/en/reference/soap/reference.xml:1.7 --- phpdoc/en/reference/soap/reference.xml:1.6 Thu Jan 20 13:36:04 2005 +++ phpdoc/en/reference/soap/reference.xml Fri Jan 28 09:02:10 2005 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.6 $ --> +<!-- $Revision: 1.7 $ --> <!-- Generated by xml_proto.php v2.0. Found in /scripts directory of phpdoc. --> <reference id="ref.soap"> <title>SOAP Functions</title> @@ -56,7 +56,7 @@ &reftitle.methods; <itemizedlist> <listitem> - <para><xref linkend='function.soap-soapclient-call' /> - Calls a SOAP function</para> + <para><xref linkend='function.soap-soapclient-call' /> - Calls a SOAP function (deprecated)</para> </listitem> <listitem> <para><xref linkend='function.soap-soapclient-dorequest' /> - Performs a SOAP request</para> @@ -83,6 +83,9 @@ <para><xref linkend='function.soap-soapclient-setcookie' /> - Sets the cookie that will be sent with the SOAP request</para> </listitem> + <listitem> + <para><xref linkend='function.soap-soapclient-soapcall' /> - Calls a SOAP function</para> + </listitem> </itemizedlist> </section> </section> @@ -106,7 +109,7 @@ <classname>SoapHeader</classname> is a special low-level class for passing or returning SOAP headers. It's just a data holder and it does not have any special methods except its constructor. It can be used in the <xref - linkend='function.soap-soapclient-call' /> method to pass a SOAP header or + linkend='function.soap-soapclient-soapcall' /> method to pass a SOAP header or in a SOAP header handler to return the header in a SOAP response. </para> <section id='soap.class.soapheader.constructor'> http://cvs.php.net/diff.php/phpdoc/en/reference/soap/functions/soap-soapclient-call.xml?r1=1.2&r2=1.3&ty=u Index: phpdoc/en/reference/soap/functions/soap-soapclient-call.xml diff -u phpdoc/en/reference/soap/functions/soap-soapclient-call.xml:1.2 phpdoc/en/reference/soap/functions/soap-soapclient-call.xml:1.3 --- phpdoc/en/reference/soap/functions/soap-soapclient-call.xml:1.2 Sun Jan 16 00:28:55 2005 +++ phpdoc/en/reference/soap/functions/soap-soapclient-call.xml Fri Jan 28 09:02:11 2005 @@ -1,10 +1,10 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.2 $ --> +<!-- $Revision: 1.3 $ --> <refentry id="function.soap-soapclient-call"> <refnamediv> <refname>SoapClient->__call()</refname> <refpurpose> - Calls a SOAP function + Calls a SOAP function (deprecated) </refpurpose> </refnamediv> <refsect1 role="description"> @@ -22,71 +22,8 @@ </methodsynopsis> </classsynopsis> <para> - This is a low level API function that is used to make a SOAP call. Usually, - in WSDL mode, - you can simply call SOAP functions as <classname>SoapClient</classname> - methods. This method useful in non-WSDL mode when <literal>soapaction</literal> - is unknown, <literal>uri</literal> differs from the default or when sending - and/or receiving SOAP Headers. - </para> - <para> - On error, a call to a SOAP function can cause PHP to throw exceptions or return a - <classname>SoapFault</classname> object if exceptions are disabled. - To check if the function call failed to catch the SoapFault exceptions, - check the result with <function>is_soap_fault</function>. - </para> - </refsect1> - <refsect1 role="returnvalues"> - &reftitle.returnvalues; - <para> - SOAP functions may return one, or multiple values. If only one value is returned - by the SOAP function, the return value of <literal>__call</literal> will be - a simple value (e.g. an integer, a string, etc). If multiple values are - returned, <literal>__call</literal> will return - an associative array of named output parameters. - </para> - </refsect1> - <refsect1 role="examples"> - &reftitle.examples; - <para> - <example> - <title>SoapClient->__call() Examples</title> - <programlisting role="php"> -<![CDATA[ -<?php - -$client = new SoapClient("some.wsdl"); -$client->SomeFunction($a, $b, $c); - -$client->__call("SomeFunction", array($a, $b, $c)); -$client->__call("SomeFunction", array($a, $b, $c), NULL, - new SoapHeader(), $output_headers); - - -$client = new SoapClient(null, array('location' => "http://localhost/soap.php", - 'uri' => "http://test-uri/")); -$client->SomeFunction($a, $b, $c); -$client->__call("SomeFunction", array($a, $b, $c)); -$client->__call("SomeFunction", array($a, $b, $c), - array('soapaction' => 'some_action', - 'uri' => 'some_uri')); -?> -]]> - </programlisting> - </example> - </para> - </refsect1> - <refsect1 role="seealso"> - &reftitle.seealso; - <para> - <simplelist> - <member><xref linkend="function.soap-soapclient-construct" /></member> - <member><xref linkend="function.soap-soapparam-construct" /></member> - <member><xref linkend="function.soap-soapvar-construct" /></member> - <member><xref linkend="function.soap-soapheader-construct" /></member> - <member><xref linkend="function.soap-soapfault-construct" /></member> - <member><function>is_soap_fault</function></member> - </simplelist> + This method is deprecated. Use <xref + linkend="function.soap-soapclient-soapcall" /> instead of it. </para> </refsect1> </refentry> http://cvs.php.net/diff.php/phpdoc/en/reference/soap/functions/soap-soapclient-construct.xml?r1=1.2&r2=1.3&ty=u Index: phpdoc/en/reference/soap/functions/soap-soapclient-construct.xml diff -u phpdoc/en/reference/soap/functions/soap-soapclient-construct.xml:1.2 phpdoc/en/reference/soap/functions/soap-soapclient-construct.xml:1.3 --- phpdoc/en/reference/soap/functions/soap-soapclient-construct.xml:1.2 Sun Jan 16 00:28:55 2005 +++ phpdoc/en/reference/soap/functions/soap-soapclient-construct.xml Fri Jan 28 09:02:11 2005 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.2 $ --> +<!-- $Revision: 1.3 $ --> <refentry id="function.soap-soapclient-construct"> <refnamediv> <refname>SoapClient->__construct()</refname> @@ -59,6 +59,26 @@ a proxy server, use the options <literal>proxy_host</literal>, <literal>proxy_port</literal>, <literal>proxy_login</literal> and <literal>proxy_password</literal>. + For HTTPS client certificate authentication use + <literal>local_cert</literal> and <literal>passphrase</literal> options. + </para> + <para> + The <literal>compression</literal> option allows to use compression + of HTTP SOAP requests and responses. + </para> + <para> + The <literal>encoding</literal> option defines internal character + encding. This option does not change the encofing of SOAP requests (it is + always utf-8), but converts strings into it. + </para> + <para> + The <literal>classmap</literal> option can be used to map some WSDL + types to PHP classes. This option must be an array with WSDL types + as keys and names of PHP classes as values. + </para> + <para> + The <literal>trace</literal> and <literal>exceptions</literal> options + are useful for debuging purpose. </para> </listitem> </varlistentry> @@ -89,6 +109,8 @@ 'proxy_login' => "some_name", 'proxy_password' => "some_password")); +$client = new SoapClient("some.wsdl", array('local_cert' => "cert_key.pem")); + $client = new SoapClient(null, array('location' => "http://localhost/soap.php", 'uri' => "http://test-uri/")); @@ -97,6 +119,18 @@ 'style' => SOAP_DOCUMENT, 'use' => SOAP_LITERAL)); +$client = new SoapClient("some.wsdl", + array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP)); + +$server = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1')); + +class MyBook { + public $title; + public $author; +} + +$server = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook"))); + ?> ]]> </programlisting> http://cvs.php.net/diff.php/phpdoc/en/reference/soap/functions/soap-soapclient-dorequest.xml?r1=1.1&r2=1.2&ty=u Index: phpdoc/en/reference/soap/functions/soap-soapclient-dorequest.xml diff -u phpdoc/en/reference/soap/functions/soap-soapclient-dorequest.xml:1.1 phpdoc/en/reference/soap/functions/soap-soapclient-dorequest.xml:1.2 --- phpdoc/en/reference/soap/functions/soap-soapclient-dorequest.xml:1.1 Sun Jan 9 22:02:33 2005 +++ phpdoc/en/reference/soap/functions/soap-soapclient-dorequest.xml Fri Jan 28 09:02:11 2005 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <refentry id="function.soap-soapclient-dorequest"> <refnamediv> <refname>SoapClient->__doRequest()</refname> @@ -12,20 +12,104 @@ <classsynopsis> <ooclass><classname>SoapClient</classname></ooclass> <methodsynopsis> - <type>void</type> + <type>string</type> <methodname>__doRequest</methodname> - <methodparam><type>string</type><parameter>buf</parameter></methodparam> + <methodparam><type>string</type><parameter>request</parameter></methodparam> <methodparam><type>string</type><parameter>location</parameter></methodparam> <methodparam><type>string</type><parameter>action</parameter></methodparam> <methodparam><type>int</type><parameter>version</parameter></methodparam> </methodsynopsis> </classsynopsis> - &warn.undocumented.func; + <para> + Performs SOAP request over HTTP. + </para> + <para> + This method can be overriden in subclasses to implement different transport + layers, perform additional XML processing or other purpose. + </para> + </refsect1> + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>request</parameter></term> + <listitem> + <para> + The XML SOAP request. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>location</parameter></term> + <listitem> + <para> + The URL to request. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>action</parameter></term> + <listitem> + <para> + The SOAP action. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>action</parameter></term> + <listitem> + <para> + The SOAP version. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> </refsect1> <refsect1 role="returnvalues"> &reftitle.returnvalues; <para> - &return.void; + The XML SOAP respose. + </para> + </refsect1> + <refsect1 role="examples"> + &reftitle.examples; + <para> + <example> + <title>Some examples</title> + <programlisting role="php"> +<![CDATA[ +<?php +function Add($x,$y) { + return $x+$y; +} + +class LocalSoapClient extends SoapClient { + + function __construct($wsdl, $options) { + parent::__construct($wsdl, $options); + $this->server = new SoapServer($wsdl, $options); + $this->server->addFunction('Add'); + } + + function __doRequest($request, $location, $action, $version) { + ob_start(); + $this->server->handle($request); + $response = ob_get_contents(); + ob_end_clean(); + return $response; + } + +} + +$x = new LocalSoapClient(NULL,array('location'=>'test://', + 'uri'=>'http://testuri.org')); +var_dump($x->Add(3,4)); +?> +]]> + </programlisting> + </example> </para> </refsect1> </refentry> http://cvs.php.net/diff.php/phpdoc/en/reference/soap/functions/soap-soapfault-construct.xml?r1=1.1&r2=1.2&ty=u Index: phpdoc/en/reference/soap/functions/soap-soapfault-construct.xml diff -u phpdoc/en/reference/soap/functions/soap-soapfault-construct.xml:1.1 phpdoc/en/reference/soap/functions/soap-soapfault-construct.xml:1.2 --- phpdoc/en/reference/soap/functions/soap-soapfault-construct.xml:1.1 Sun Jan 9 19:46:17 2005 +++ phpdoc/en/reference/soap/functions/soap-soapfault-construct.xml Fri Jan 28 09:02:11 2005 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <refentry id="function.soap-soapfault-construct"> <refnamediv> <refname>SoapFault->__construct()</refname> @@ -132,7 +132,7 @@ <para> <simplelist> <member><xref linkend="function.soap-soapclient-construct" /></member> - <member><xref linkend="function.soap-soapclient-call" /></member> + <member><xref linkend="function.soap-soapclient-soapcall" /></member> <member><xref linkend="function.soap-soapvar-construct" /></member> <member><xref linkend="function.soap-soapparam-construct" /></member> <member><xref linkend="function.soap-soapfault-construct" /></member> http://cvs.php.net/diff.php/phpdoc/en/reference/soap/functions/soap-soapheader-construct.xml?r1=1.1&r2=1.2&ty=u Index: phpdoc/en/reference/soap/functions/soap-soapheader-construct.xml diff -u phpdoc/en/reference/soap/functions/soap-soapheader-construct.xml:1.1 phpdoc/en/reference/soap/functions/soap-soapheader-construct.xml:1.2 --- phpdoc/en/reference/soap/functions/soap-soapheader-construct.xml:1.1 Sun Jan 9 19:46:17 2005 +++ phpdoc/en/reference/soap/functions/soap-soapheader-construct.xml Fri Jan 28 09:02:11 2005 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <refentry id="function.soap-soapheader-construct"> <refnamediv> <refname>SoapHeader->__construct()</refname> @@ -98,7 +98,7 @@ &reftitle.seealso; <para> <simplelist> - <member><xref linkend="function.soap-soapclient-call" /></member> + <member><xref linkend="function.soap-soapclient-soapcall" /></member> <member><xref linkend="function.soap-soapvar-construct" /></member> <member><xref linkend="function.soap-soapparam-construct" /></member> </simplelist> http://cvs.php.net/diff.php/phpdoc/en/reference/soap/functions/soap-soapparam-construct.xml?r1=1.1&r2=1.2&ty=u Index: phpdoc/en/reference/soap/functions/soap-soapparam-construct.xml diff -u phpdoc/en/reference/soap/functions/soap-soapparam-construct.xml:1.1 phpdoc/en/reference/soap/functions/soap-soapparam-construct.xml:1.2 --- phpdoc/en/reference/soap/functions/soap-soapparam-construct.xml:1.1 Sun Jan 9 19:46:17 2005 +++ phpdoc/en/reference/soap/functions/soap-soapparam-construct.xml Fri Jan 28 09:02:11 2005 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <refentry id="function.soap-soapparam-construct"> <refnamediv> <refname>SoapParam->__construct()</refname> @@ -69,7 +69,7 @@ &reftitle.seealso; <para> <simplelist> - <member><xref linkend="function.soap-soapclient-call" /></member> + <member><xref linkend="function.soap-soapclient-soapcall" /></member> <member><xref linkend="function.soap-soapvar-construct" /></member> </simplelist> </para> http://cvs.php.net/diff.php/phpdoc/en/reference/soap/functions/soap-soapserver-construct.xml?r1=1.1&r2=1.2&ty=u Index: phpdoc/en/reference/soap/functions/soap-soapserver-construct.xml diff -u phpdoc/en/reference/soap/functions/soap-soapserver-construct.xml:1.1 phpdoc/en/reference/soap/functions/soap-soapserver-construct.xml:1.2 --- phpdoc/en/reference/soap/functions/soap-soapserver-construct.xml:1.1 Sun Jan 9 19:46:17 2005 +++ phpdoc/en/reference/soap/functions/soap-soapserver-construct.xml Fri Jan 28 09:02:11 2005 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <refentry id="function.soap-soapserver-construct"> <refnamediv> <refname>SoapServer->__construct()</refname> @@ -40,8 +40,12 @@ <term><parameter>options</parameter></term> <listitem> <para> - Allow setting a default SOAP version (<literal>soap_version</literal>) + Allow setting a default SOAP version (<literal>soap_version</literal>), + internal character encoding (<literal>encoding</literal>), and actor URI (<literal>actor</literal>). + The <literal>classmap</literal> option can be used to map some WSDL + types to PHP classes. This option must be an array with WSDL types + as keys and names of PHP classes as values. </para> </listitem> </varlistentry> @@ -63,8 +67,17 @@ $server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C")); +$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1')); + $server = new SoapServer(null, array('uri' => "http://test-uri/")); +class MyBook { + public $title; + public $author; +} + +$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook"))); + ?> ]]> </programlisting> http://cvs.php.net/diff.php/phpdoc/en/reference/soap/functions/soap-soapvar-construct.xml?r1=1.1&r2=1.2&ty=u Index: phpdoc/en/reference/soap/functions/soap-soapvar-construct.xml diff -u phpdoc/en/reference/soap/functions/soap-soapvar-construct.xml:1.1 phpdoc/en/reference/soap/functions/soap-soapvar-construct.xml:1.2 --- phpdoc/en/reference/soap/functions/soap-soapvar-construct.xml:1.1 Sun Jan 9 19:46:17 2005 +++ phpdoc/en/reference/soap/functions/soap-soapvar-construct.xml Fri Jan 28 09:02:11 2005 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <refentry id="function.soap-soapvar-construct"> <refnamediv> <refname>SoapVar->__construct()</refname> @@ -111,7 +111,7 @@ &reftitle.seealso; <para> <simplelist> - <member><xref linkend="function.soap-soapclient-call" /></member> + <member><xref linkend="function.soap-soapclient-soapcall" /></member> <member><xref linkend="function.soap-soapparam-construct" /></member> </simplelist> </para> http://cvs.php.net/co.php/phpdoc/en/reference/soap/functions/soap-soapclient-soapcall.xml?r=1.1&p=1 Index: phpdoc/en/reference/soap/functions/soap-soapclient-soapcall.xml +++ phpdoc/en/reference/soap/functions/soap-soapclient-soapcall.xml <?xml version='1.0' encoding='iso-8859-1'?> <!-- $Revision: 1.1 $ --> <refentry id="function.soap-soapclient-soapcall"> <refnamediv> <refname>SoapClient->__soapCall()</refname> <refpurpose> Calls a SOAP function </refpurpose> </refnamediv> <refsect1 role="description"> &reftitle.description; <classsynopsis> <ooclass><classname>SoapClient</classname></ooclass> <methodsynopsis> <type>mixed</type> <methodname>__soapCall</methodname> <methodparam><type>string</type><parameter>function_name</parameter></methodparam> <methodparam choice="opt"><type>array</type><parameter>arguments</parameter></methodparam> <methodparam choice="opt"><type>array</type><parameter>options</parameter></methodparam> <methodparam choice="opt"><type>array</type><parameter>input_headers</parameter></methodparam> <methodparam choice="opt"><type>array</type><parameter>output_headers</parameter></methodparam> </methodsynopsis> </classsynopsis> <para> This is a low level API function that is used to make a SOAP call. Usually, in WSDL mode, you can simply call SOAP functions as <classname>SoapClient</classname> methods. This method useful in non-WSDL mode when <literal>soapaction</literal> is unknown, <literal>uri</literal> differs from the default or when sending and/or receiving SOAP Headers. </para> <para> On error, a call to a SOAP function can cause PHP to throw exceptions or return a <classname>SoapFault</classname> object if exceptions are disabled. To check if the function call failed to catch the SoapFault exceptions, check the result with <function>is_soap_fault</function>. </para> </refsect1> <refsect1 role="returnvalues"> &reftitle.returnvalues; <para> SOAP functions may return one, or multiple values. If only one value is returned by the SOAP function, the return value of <literal>__soapCall</literal> will be a simple value (e.g. an integer, a string, etc). If multiple values are returned, <literal>__soapCall</literal> will return an associative array of named output parameters. </para> </refsect1> <refsect1 role="examples"> &reftitle.examples; <para> <example> <title>SoapClient->__soapCall() Examples</title> <programlisting role="php"> <![CDATA[ <?php $client = new SoapClient("some.wsdl"); $client->SomeFunction($a, $b, $c); $client->__soapCall("SomeFunction", array($a, $b, $c)); $client->__soapCall("SomeFunction", array($a, $b, $c), NULL, new SoapHeader(), $output_headers); $client = new SoapClient(null, array('location' => "http://localhost/soap.php", 'uri' => "http://test-uri/")); $client->SomeFunction($a, $b, $c); $client->__soapCall("SomeFunction", array($a, $b, $c)); $client->__soapCall("SomeFunction", array($a, $b, $c), array('soapaction' => 'some_action', 'uri' => 'some_uri')); ?> ]]> </programlisting> </example> </para> </refsect1> <refsect1 role="seealso"> &reftitle.seealso; <para> <simplelist> <member><xref linkend="function.soap-soapclient-construct" /></member> <member><xref linkend="function.soap-soapparam-construct" /></member> <member><xref linkend="function.soap-soapvar-construct" /></member> <member><xref linkend="function.soap-soapheader-construct" /></member> <member><xref linkend="function.soap-soapfault-construct" /></member> <member><function>is_soap_fault</function></member> </simplelist> </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
« previous php.doc (#969366219) next »