I'm working on some code that makes SOAP calls to a web service. While making changes on the server side of things, I needed to refresh the WSDL very frequently, so I was using 'cache_wsdl' => WSDL_CACHE_NONE
in my options for the constructor. Changes on the server side have settled down and I now want to cache the WSDL. I did some quick timing on single requests to see if there was any performance increase and didn't really see any. I understand WSDL_CACHE_DISK
will save a copy of the wsdl in my /tmp directory, which saves on a request, and makes sense to me. But I'm not sure how WSDL_CACHE_MEMORY
or WSDL_CACHE_BOTH
changes behavior? Does wsdl_cache_memory
store the xml or parsed wsdl in memory... between requests... for a day? How does this differ between CLI and Web? I can not find any documentation on how these flags actually affect behavior.
Further research.. Try setting these in php.ini
soap.wsdl_cache_dir [/temp] # make sure this folder is writeable by php (if using disk cache)
# otherwise give the web server access to it
# check what webserver has for user for example _www or www-data
# Example on MAC:
# chown -R $(whoami):_www /temp
soap.wsdl_cache_ttl [seconds] # Time To Live, how long it is cached