実行時設定

php.ini の設定により動作が変化します。

SOAP 設定オプション
名前 デフォルト 変更可能 変更履歴
soap.wsdl_cache_enabled 1 PHP_INI_ALL
soap.wsdl_cache_dir /tmp PHP_INI_ALL
soap.wsdl_cache_ttl 86400 PHP_INI_ALL
soap.wsdl_cache 1 PHP_INI_ALL
soap.wsdl_cache_limit 5 PHP_INI_ALL

以下に設定ディレクティブに関する 簡単な説明を示します。

soap.wsdl_cache_enabled integer

WSDLキャッシュ機能有効または無効にします。

soap.wsdl_cache_dir string

SOAP 拡張モジュールがキャッシュファイルを置くディレクトリの名前を設定します。

soap.wsdl_cache_ttl integer

キャッシュされたファイルが元のファイルの代わりに使用される秒数 (有効期間)を設定します。

soap.wsdl_cache integer

soap.wsdl_cache_enabled が on の場合に、 この設定によってキャッシュ方式を決めます。 WSDL_CACHE_NONE (0)、 WSDL_CACHE_DISK (1)、 WSDL_CACHE_MEMORY (2) あるいは WSDL_CACHE_BOTH (3) のいずれかです。これは、 SoapClientSoapServer のコンストラクタにおける配列 options で設定することもできます。

soap.wsdl_cache_limit integer

WSDL ファイルのキャッシュに使用するメモリの最大数を設定します。 メモリキャッシュがいっぱいのときにさらにファイルを追加する場合は、 既存のキャッシュの中のいちばん古いファイルを削除します。

add a note add a note

User Contributed Notes 3 notes

up
11
martijn at netexpo dot nl
4 years ago
Please note that these three ini settings will also affect the behaviour of your soap server (and clients as well) :

1. default_socket_timeout default 60 secs
Large or slow requests to your soap server or long processes at your soap server will return soap fault after 60 secs like : Error Fetching http headers.

2. max_execution_time default 30 secs
This can be the next bottleneck (but only when your default_socket_timeout is larger then this setting). Your soap server will not return anything, no faults no output, just an empty string.

3. memory_limit default 128M
Will throw fatal errors when the soap server script itself has low memory or will let your services return empty strings when the data it processes puts memory usage over this limit.

Other max POST settings luckily (but a bit suprisingly to me) have _no_ effect for your soap server. Those are :

max_input_time
max_input_nesting_level
max_input_vars
post_max_size
suhosin.post.max_array_depth
suhosin.post.max_array_index_length
suhosin.post.max_name_length
suhosin.post.max_totalname_length
suhosin.post.max_vars
suhosin.post.max_value_length
up
8
hpralow at users dot sf dot net
9 years ago
If you want to dissable WSDL-caching, you can do so with
<?php
ini_set
('soap.wsdl_cache_enabled', '0');
ini_set('soap.wsdl_cache_ttl', '0');
?>
However you must do this before creating a SOAP object (soap_client or soap_server).
Changing the settings like above does not have any effect on already existing soap-objects.

[EDIT BY danbrown AT php DOT net: Typofix provided by (james AT voodoo DOT co DOT uk) on 4-FEB-09.]
up
0
no dot tehwan dot spam at com dot nospam dot gmail
3 years ago
Keep in mind if you have memory cache enabled that even if you use an updated WSDL file, it will still be using the one in memory. If you download the WSDL files yourself, avoid using memory cache as you will have no control over it, or set the TTL to a small value (default is 1 day).
To Top