phalcon / cphalcon

High performance, full-stack PHP framework delivered as a C extension.
https://phalcon.io
BSD 3-Clause "New" or "Revised" License
10.79k stars 1.96k forks source link

Windows DLL for Phalcon 5 + PHP 8.2 missing #16318

Closed vibonaccidtt closed 9 months ago

vibonaccidtt commented 1 year ago

Windows DLLs for Phalcon 5 + PHP 8.2 are missing.

Are these coming at a later date or was Windows support dropped?

Jeckerson commented 1 year ago

Every time it is hard to do that, as PHP core developers are not interested to support that, even in PECL it is impossible to download new .dlls any more.

I'll see what we can do, but in middle/long term I think PHP team will drop Windows support and focus only on Unix. Especially when Windows has WSL (Windows Subsystem for Linux).

hakimio commented 1 year ago

Last update from windows.php.net dated 17 Oct 2022:

Windows PECL build machine died, and the team is still working on the long term plan of building DLLs for PECL extensions with a new CI process. We're doing our best to finish that as soon as possible, and keep you up to date.

Doesn't sound very promising...

lubber-de commented 1 year ago

Inside the apachelounge.com forum, there is an awesome guy "Jan-E" who provides windows PHP builds including nearly all possible existing php extensions which dont have official windows builds since ages (most probably the ones you are waiting for to be able to compile phalcon 5.x for PHP 8.2+ (PHP 8.3 is around the corner in november as well 😉 and he already provides builds for that as well)

I posted there if he might be able to help you out getting phalcon running for windows in PHP 8.2+

https://www.apachelounge.com/viewtopic.php?p=42022#42022

Jan-E commented 1 year ago

I posted there if he might be able to help you out getting phalcon running for windows in PHP 8.2+

https://www.apachelounge.com/viewtopic.php?p=42022#42022

Done. https://www.apachelounge.com/viewtopic.php?p=42029#42029

Jan-E commented 1 year ago

Quote from UPGRADING.INTERNALS of PHP 8.3:

The fast_add_function() has been removed, use add_function() that will call the static inline add_function_fast() instead.

Fixed building for PHP 8.3

hakimio commented 1 year ago

@Jan-E thank you very much for releasing new Phalcon builds 🙂 Small request: would it be possible to also include grpc and protobuf extensions in the builds?

Jan-E commented 1 year ago

Googling around I found only 1 php_protobuf.dll. For PHP 5.6, so I thought that would not be easy. But it actually was easy, if you know how to write a config.w32 for Windows that mimics the config.m4 for *nix. grpc compiled out-of-the-box, but it took a long time and generated a massive pdb file (75 MB). I will not include the phalcon and grpc extension in my regular builds, because they take too much my laptop-resources and my own time. You can find the PHP 8.2 builds with phalcon, grpc and protobuf here: https://phpdev.toolsforresearch.com/php-8.2.7-nts-Win32-vs16-x64-grpc-protobuf.htm https://phpdev.toolsforresearch.com/php-8.2.7-nts-Win32-vs16-x64-grpc-protobuf.zip https://phpdev.toolsforresearch.com/php-8.2.7-Win32-vs16-x64-grpc-protobuf.htm https://phpdev.toolsforresearch.com/php-8.2.7-Win32-vs16-x64-grpc-protobuf.zip

hakimio commented 1 year ago

Awesome. Thank you very much :) Concerning resource usage, have you considered using some free CI/CD pipeline to do the builds? Github Actions or CircleCI?

EDIT: a couple of example workflows: https://github.com/shivammathur/php-builder-windows/blob/main/.github/workflows/php82.yml https://github.com/shivammathur/php-extensions-windows/blob/main/.github/workflows/build.yml

Jan-E commented 1 year ago

The sources of the extensions and my patches are not stable enough for something like github actions. I had to try a config.w32 for grpc twice before it worked. And the new config.w32 for protobuf something of 8 times. A real test for an extension requires building all PHP sources and then reconfigure PHP after each edit in a config.w32. And rebuild the extension a couple times until it succeeds. Manual edits and rebuilds, which you cannot script.

Jan-E commented 1 year ago

https://github.com/protocolbuffers/protobuf/pull/13097 https://github.com/grpc/grpc/pull/33478

HiralRajgor commented 1 year ago

from where i can find php_phalcon.dll file for phalcon 5+, kind of stuck now

HiralRajgor commented 1 year ago

I posted there if he might be able to help you out getting phalcon running for windows in PHP 8.2+ https://www.apachelounge.com/viewtopic.php?p=42022#42022

Done. https://www.apachelounge.com/viewtopic.php?p=42029#42029

I guess i am new to it, how can i download php_phalcon.dll file from your build and the link provided by you? please help me out

Jan-E commented 1 year ago

https://www.apachelounge.com/viewtopic.php?t=6359 Download the zip file for PHP 8.2.7 and unpack it. It is in there.

Once PHP 5.2.8 is released the links to PHP 8.2.7 will disappear (but the files still there) and I will not be automatically compile phalcon and protobuf anymore. Then you will have to use these links: https://phpdev.toolsforresearch.com/php-8.2.7-nts-Win32-vs16-x64-grpc-protobuf.htm https://phpdev.toolsforresearch.com/php-8.2.7-nts-Win32-vs16-x64-grpc-protobuf.zip https://phpdev.toolsforresearch.com/php-8.2.7-Win32-vs16-x64-grpc-protobuf.htm https://phpdev.toolsforresearch.com/php-8.2.7-Win32-vs16-x64-grpc-protobuf.zip php_phalcon.dll is in those zipfiles as well.

hakimio commented 1 year ago

@Jeckerson considering that now you have all the required extension .dlls can you release a Phalcon build for php 8.2 on next Phalcon release?

HiralRajgor commented 1 year ago

https://www.apachelounge.com/viewtopic.php?t=6359 Download the zip file for PHP 8.2.7 and unpack it. It is in there.

Once PHP 5.2.8 is released the links to PHP 8.2.7 will disappear (but the files still there) and I will not be automatically compile phalcon and protobuf anymore. Then you will have to use these links: https://phpdev.toolsforresearch.com/php-8.2.7-nts-Win32-vs16-x64-grpc-protobuf.htm https://phpdev.toolsforresearch.com/php-8.2.7-nts-Win32-vs16-x64-grpc-protobuf.zip https://phpdev.toolsforresearch.com/php-8.2.7-Win32-vs16-x64-grpc-protobuf.htm https://phpdev.toolsforresearch.com/php-8.2.7-Win32-vs16-x64-grpc-protobuf.zip php_phalcon.dll is in those zipfiles as well.

Hello @Jan-E Sir, they have solved deprecated errors in Phalcon 5.2.3 for php 8.2, can you please help us to provide PHP builds for the same, as the older version has so many deprecated errors that if we enable error reporting it just goes bad gateway.

hakimio commented 1 year ago

@HiralRajgor unfortunately they only fixed some of the deprecation warnings. Specifically self::/static callable warning is still there. You can track this bug report to know when it's fixed.

For now you can just disable error reporting for deprecation warnings:

error_reporting(E_ALL ^ E_DEPRECATED);
HiralRajgor commented 1 year ago

@hakimio Ohh okay, Thank you so much

exstreme commented 11 months ago

@Jan-E would it be possible to also include last versions of grpc and protobuf extensions with PHP 8.3 ? Thank you for your work!

blackjyn commented 10 months ago

well, at this point I understand why Phalcon 6 with 100% PHP 8.x source was considered.

Jan-E commented 10 months ago

PHP 8.3

https://phpdev.toolsforresearch.com/php-8.3.2RC1-nts-Win32-vs16-x64.htm https://phpdev.toolsforresearch.com/php-8.3.2RC1-nts-Win32-vs16-x64.zip

https://phpdev.toolsforresearch.com/php-8.3.2RC1-Win32-vs16-x64.htm https://phpdev.toolsforresearch.com/php-8.3.2RC1-Win32-vs16-x64.zip

https://phpdev.toolsforresearch.com/php-8.3.2RC1-nts-Win32-vs16-x86.htm https://phpdev.toolsforresearch.com/php-8.3.2RC1-nts-Win32-vs16-x86.zip

https://phpdev.toolsforresearch.com/php-8.3.2RC1-Win32-vs16-x86.htm https://phpdev.toolsforresearch.com/php-8.3.2RC1-Win32-vs16-x86.zip

PHP 8.2

https://phpdev.toolsforresearch.com/php-8.2.15RC1-nts-Win32-vs16-x64.htm https://phpdev.toolsforresearch.com/php-8.2.15RC1-nts-Win32-vs16-x64.zip

https://phpdev.toolsforresearch.com/php-8.2.15RC1-Win32-vs16-x64.htm https://phpdev.toolsforresearch.com/php-8.2.15RC1-Win32-vs16-x64.zip

https://phpdev.toolsforresearch.com/php-8.2.15RC1-nts-Win32-vs16-x86.htm https://phpdev.toolsforresearch.com/php-8.2.15RC1-nts-Win32-vs16-x86.zip

https://phpdev.toolsforresearch.com/php-8.2.15RC1-Win32-vs16-x86.htm https://phpdev.toolsforresearch.com/php-8.2.15RC1-Win32-vs16-x86.zip

yamin-hm commented 9 months ago

https://www.apachelounge.com/viewtopic.php?p=42022#42022

Thanks for this!

Would it be possible to compile the latest Phalcon 5.6.1 for PHP 8.3.0?

blackjyn commented 9 months ago

PHP 8.3

https://phpdev.toolsforresearch.com/php-8.3.2RC1-nts-Win32-vs16-x64.htm https://phpdev.toolsforresearch.com/php-8.3.2RC1-nts-Win32-vs16-x64.zip

https://phpdev.toolsforresearch.com/php-8.3.2RC1-Win32-vs16-x64.htm https://phpdev.toolsforresearch.com/php-8.3.2RC1-Win32-vs16-x64.zip

https://phpdev.toolsforresearch.com/php-8.3.2RC1-nts-Win32-vs16-x86.htm https://phpdev.toolsforresearch.com/php-8.3.2RC1-nts-Win32-vs16-x86.zip

https://phpdev.toolsforresearch.com/php-8.3.2RC1-Win32-vs16-x86.htm https://phpdev.toolsforresearch.com/php-8.3.2RC1-Win32-vs16-x86.zip

PHP 8.2

https://phpdev.toolsforresearch.com/php-8.2.15RC1-nts-Win32-vs16-x64.htm https://phpdev.toolsforresearch.com/php-8.2.15RC1-nts-Win32-vs16-x64.zip

https://phpdev.toolsforresearch.com/php-8.2.15RC1-Win32-vs16-x64.htm https://phpdev.toolsforresearch.com/php-8.2.15RC1-Win32-vs16-x64.zip

https://phpdev.toolsforresearch.com/php-8.2.15RC1-nts-Win32-vs16-x86.htm https://phpdev.toolsforresearch.com/php-8.2.15RC1-nts-Win32-vs16-x86.zip

https://phpdev.toolsforresearch.com/php-8.2.15RC1-Win32-vs16-x86.htm https://phpdev.toolsforresearch.com/php-8.2.15RC1-Win32-vs16-x86.zip

hi @Jan-E , are you intentionally put Phalcon windows build at the RC page: https://www.apachelounge.com/viewtopic.php?t=6617 and not at the "stable" page https://www.apachelounge.com/viewtopic.php?t=6359 ?

niden commented 9 months ago

This has been addressed with https://github.com/phalcon/cphalcon/pull/16533

Thanks to @JMoodyFWD

The DLL files for 5.6.1 have been uploaded in the release page.