Closed insinfo closed 2 years ago
thank you for the issue; the warnings are pretty clear here.
Unreachable code
means that certain parts of code are unreachable. It can be ignored but it signalizes that some pieces of the code were eliminated by the compiler
undefined function
means the function is not known - peachpie does not implement it and the code will crash when running.
And so on. You can see the full list of warnings at https://docs.peachpie.io/php/diagnostics/
The undefined functions like openssl_get_privatekey
would be great to implement.
I reported to the maintainer of the phpseclib lib and he said what is below:
As for some of peachpie's warnings...
C:\MyCsharpProjects\fsbackup2\vendor\phpseclib\phpseclib\phpseclib\Crypt\ChaCha20.php(130,13): warning PHP5006: Call to undefined function: 'sodium_crypto_aead_
chacha20poly1305_encrypt' [C:\MyCsharpProjects\fsbackup2\fsbackup2.msbuildproj]
It shouldn't be calling those functions if the extension is unavailable.
C:\MyCsharpProjects\fsbackup2\vendor\phpseclib\phpseclib\phpseclib\Net\SSH2.php(3588,44): warning PHP5007: Undefined variable: $this [C:\MyCsharpProjects\fsback
up2\fsbackup2.msbuildproj]
Ummm.... $this in a class doesn't need to be explicitly defined?
https://github.com/phpseclib/phpseclib/issues/1772
I believe the program should run the same with this wharnings right?
right, some of those warnings are weird - $this
should be definitely allowed there.
Do you have the project available somewhere?
Seems the compiler incorrectly infers types of local variables in case, there is extract()
in the function.
It assumes the variables are null
and reports the error.
In some other cases, the compiler found a fatal error and did not allow the code to successfully compile.
I.e. in here:
https://github.com/insinfo/csharp_native_aot_test/blob/a82678f3d642d5125314a6b87af58a9a634b3f74/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php#L204
where the $key
is always null
and the program would always crash.
Seems the issue with the falsely reported errors has been fixed in 1.0.14
.
Please try updating to the latest version 1.0.20
, there should be just one error left which is an actual error that should be fixed in the php code. I'll submit a PR with the necessary update.
a simple PHP program that extracts text from a PDF and lists directory from an SFTP server, using libs written in pure PHP, this program uses phpseclib3 and PdfParser and works perfectly with the PHP interpreter
out of PHP
out of Peachpie
test project that demonstrates the problem
https://github.com/insinfo/csharp_native_aot_test
dependencies
https://phpseclib.com/docs/sftp https://github.com/smalot/pdfparser