Hello to all PHP developers!
If You are interested how we could improve SOAPClient a bit,
please, see my last comment here to understand my WHYs. :-)
https://github.com/php/php-src/pull/2121
https://github.com/php/php-src/pull/2121
This pull request is in no way complete. It is just a small start to
let us track down the exact code-path where the problem occurs.
Sadly, the example scenario (HOW to reproduce) contains a *webservice*
which only works from PCs / I.P.s *located in Czech Republic,
EU. *Hopefully,
some of You also live there... or possibly You have some testing virtual
webserver located there. :)
*I would be happy to test the new feature!* But I am still unable
to compile PHP5 from the sources on Debian 8.5 x64 because of some module
called opcache :-(
Here is the error I am getting. I am sure it is a well known error
for You ... and You certainly know the solution. Unfortunatelly, I am not
so good in linux development, yet.
Maybe You could tell me how to overcome / workaround this problem,
please?.That would be GREAT ! :-)
I already tried all the classical solutions I could *google-out¨ *and
installing all the dependencies.... did not solve this.
Thank You so much.
Filip The Overtonesinger
------------------------ ERROR compiling php 5.6.24 sources:
/bin/bash /home/bob/A_php5/php-src/libtool --silent --preserve-dup-deps
--mode=link cc -DPHP_ATOM_INC -I/home/bob/A_php5/php-src/include
-I/home/bob/A_php5/php-src/main -I/home/bob/A_php5/php-src
-I/home/bob/A_php5/php-src/ext/date/lib -I/usr/include/libxml2
-I/home/bob/A_php5/php-src/ext/sqlite3/libsqlite
-I/home/bob/A_php5/php-src/TSRM -I/home/bob/A_php5/php-src/Zend
-I/usr/include -g -O2 -fvisibility=hidden -DZEND_SIGNALS -o ext/opcache/
opcache.la -export-dynamic -avoid-version -prefer-pic -module -rpath
/home/bob/A_php5/php-src/modules ext/opcache/ZendAccelerator.lo
ext/opcache/zend_accelerator_blacklist.lo
ext/opcache/zend_accelerator_debug.lo ext/opcache/zend_accelerator_hash.lo
ext/opcache/zend_accelerator_module.lo ext/opcache/zend_persist.lo
ext/opcache/zend_persist_calc.lo ext/opcache/zend_file_cache.lo
ext/opcache/zend_shared_alloc.lo ext/opcache/zend_accelerator_util_funcs.lo
ext/opcache/shared_alloc_shm.lo ext/opcache/shared_alloc_mmap.lo
ext/opcache/shared_alloc_posix.lo ext/opcache/Optimizer/zend_optimizer.lo
ext/opcache/Optimizer/pass1_5.lo ext/opcache/Optimizer/pass2.lo
ext/opcache/Optimizer/pass3.lo ext/opcache/Optimizer/optimize_func_calls.lo
ext/opcache/Optimizer/block_pass.lo
ext/opcache/Optimizer/optimize_temp_vars_5.lo
ext/opcache/Optimizer/nop_removal.lo
ext/opcache/Optimizer/compact_literals.lo ext/opcache/Optimizer/zend_cfg.lo
ext/opcache/Optimizer/zend_dfg.lo ext/opcache/Optimizer/dfa_pass.lo
ext/opcache/Optimizer/zend_ssa.lo ext/opcache/Optimizer/zend_inference.lo
ext/opcache/Optimizer/zend_func_info.lo
ext/opcache/Optimizer/zend_call_graph.lo ext/opcache/Optimizer/zend_dump.lo
Reloading web server: apache2 failed!
Apache2 is not running ... (warning).
Makefile:870: recipe for target 'ext/opcache/opcache.la' failed
make: *** [ext/opcache/opcache.la] Error 1
I think it should not. Your pull request fixes a problem in that WSDL.
The WSDL is located at the URL https://pg.eet.cz/eet/services/EETServiceSOAP/v3?wsdl
.
It references an XML Schema file at EETXMLSchema.xsd
, which is a relative location, so it's looked for relative to the containing document, at https://pg.eet.cz/eet/services/EETServiceSOAP/EETXMLSchema.xsd
.
The correct location is https://pg.eet.cz/eet/services/EETServiceSOAP/v3/EETXMLSchema.xsd
, but that's not PHP's problem. You should contact the owner of the service and ask them to fix the issue. Not only PHP, but all other clients that adhere to the spec will be unable to load this file, so it's in their interest to get it resolved.
Failing that, you can
- use an XML catalog entry on your local system to re-define where
EETXMLSchema.xsd
is located; - load the WSDL file from the origin URL, cache it locally, and rewrite the
schemaLocation
to contain a full relative path (/eet/services/EETServiceSOAP/v3/EETXMLSchema.xsd
) or even an absolute URL. Then load that local WSDL.
You really want to do option 2 in production anyway, because otherwise, your SoapClient instantiation will fetch the remote WSDL file on each instantiation, which slows down your app, and may break things even if you don't make a SOAP call if the endpoint is down.
If you want to discuss this further, then the PR on GitHub is the right spot for discussing this.
Hello to all PHP developers!
If You are interested how we could improve SOAPClient a bit,
please, see my last comment here to understand my WHYs. :-)
https://github.com/php/php-src/pull/2121
https://github.com/php/php-src/pull/2121This pull request is in no way complete. It is just a small start to
let us track down the exact code-path where the problem occurs.
Sadly, the example scenario (HOW to reproduce) contains a *webservice*
which only works from PCs / I.P.s *located in Czech Republic,
EU. *Hopefully,
some of You also live there... or possibly You have some testing virtual
webserver located there. :)*I would be happy to test the new feature!* But I am still unable
to compile PHP5 from the sources on Debian 8.5 x64 because of some module
called opcache :-(Here is the error I am getting. I am sure it is a well known error
for You ... and You certainly know the solution. Unfortunatelly, I am not
so good in linux development, yet.
Maybe You could tell me how to overcome / workaround this problem,
please?.That would be GREAT ! :-)
I already tried all the classical solutions I could *google-out¨ *and
installing all the dependencies.... did not solve this.Thank You so much.
Filip The Overtonesinger
------------------------ ERROR compiling php 5.6.24 sources:
/bin/bash /home/bob/A_php5/php-src/libtool --silent --preserve-dup-deps
--mode=link cc -DPHP_ATOM_INC -I/home/bob/A_php5/php-src/include
-I/home/bob/A_php5/php-src/main -I/home/bob/A_php5/php-src
-I/home/bob/A_php5/php-src/ext/date/lib -I/usr/include/libxml2
-I/home/bob/A_php5/php-src/ext/sqlite3/libsqlite
-I/home/bob/A_php5/php-src/TSRM -I/home/bob/A_php5/php-src/Zend
-I/usr/include -g -O2 -fvisibility=hidden -DZEND_SIGNALS -o ext/opcache/
opcache.la -export-dynamic -avoid-version -prefer-pic -module -rpath
/home/bob/A_php5/php-src/modules ext/opcache/ZendAccelerator.lo
ext/opcache/zend_accelerator_blacklist.lo
ext/opcache/zend_accelerator_debug.lo ext/opcache/zend_accelerator_hash.lo
ext/opcache/zend_accelerator_module.lo ext/opcache/zend_persist.lo
ext/opcache/zend_persist_calc.lo ext/opcache/zend_file_cache.lo
ext/opcache/zend_shared_alloc.lo ext/opcache/zend_accelerator_util_funcs.lo
ext/opcache/shared_alloc_shm.lo ext/opcache/shared_alloc_mmap.lo
ext/opcache/shared_alloc_posix.lo ext/opcache/Optimizer/zend_optimizer.lo
ext/opcache/Optimizer/pass1_5.lo ext/opcache/Optimizer/pass2.lo
ext/opcache/Optimizer/pass3.lo ext/opcache/Optimizer/optimize_func_calls.lo
ext/opcache/Optimizer/block_pass.lo
ext/opcache/Optimizer/optimize_temp_vars_5.lo
ext/opcache/Optimizer/nop_removal.lo
ext/opcache/Optimizer/compact_literals.lo ext/opcache/Optimizer/zend_cfg.lo
ext/opcache/Optimizer/zend_dfg.lo ext/opcache/Optimizer/dfa_pass.lo
ext/opcache/Optimizer/zend_ssa.lo ext/opcache/Optimizer/zend_inference.lo
ext/opcache/Optimizer/zend_func_info.lo
ext/opcache/Optimizer/zend_call_graph.lo ext/opcache/Optimizer/zend_dump.lo
Reloading web server: apache2 failed!
Apache2 is not running ... (warning).
Makefile:870: recipe for target 'ext/opcache/opcache.la' failed
make: *** [ext/opcache/opcache.la] Error 1