WsdlToPhp / PackageGenerator

Generates a PHP SDK based on a WSDL, simple and powerful, WSDL to PHP
https://providr.io
MIT License
428 stars 73 forks source link

Deprecation Error - Callables of the Form #321

Open faithfulman18 opened 2 months ago

faithfulman18 commented 2 months ago

Describe the bug Hello, when running that latest .phar 4.1.13 file against our WSDL, using PHP 8.2 , we are seeing this error:

Deprecated: Callables of the form ["WsdlToPhp\WsdlHandler\Wsdl", "parent::getElementsByName"] are deprecated in vendor/wsdltophp/wsdlhandler/src/Wsdl.php on line 83

To Reproduce Steps to reproduce the behavior:

php.exe ./wsdltophp.phar generate:package --urlorpath="http://internal-vendor-website.com?singleWsdl" --destination="C:\WSDL\Package" --composer-name="company/package" --namespace="PackageName" --composer-settings="config.disable-tls:true" --force

Expected behavior Getting the following error on some WSDLs multiple times

Deprecated: Callables of the form ["WsdlToPhp\WsdlHandler\Wsdl", "parent::getElementsByName"] are deprecated in vendor/wsdltophp/wsdlhandler/src/Wsdl.php on line 83

mikaelcom commented 1 week ago

I did not look at all how it is advised to replace this type of calls. If you have any clue/tips, feel free to share it, thx

faithfulman18 commented 1 week ago

This is not the exact same error message but it appears related. Some callable syntax was marked as deprecated in PHP 8.2.

“Deprecated: Use of "self" in callables is deprecated in ... on line ...”

Possible Solution:

“The easiest way to avoid the deprecation notice is to convert all self, parent, and static keywords in the callable construction to their corresponding class names. This can be easily done with the ::class magic method, which resolves to the fully-qualified class name.”

Links: https://php.watch/versions/8.2/partially-supported-callable-deprecation https://www.php.net/manual/en/migration82.deprecated.php