The PHP Foundation has been announced as an entity for funding the work of developing the PHP language.
For more information regarding the structure and purpose of the foundation, please check out the blog post at: jetbrains.com.
This seems to be sparked by Nikita Popov, one of the main contributers to the language, switching focus to LLVM:
Nikita is leaving JetBrains as of December 1 and will spend significantly less time on PHP. As sad as it is to see him go, we congratulate Nikita and wish him every success in his new journey!
[...] In May 2021, right after Joe Watkins published his Avoiding Busses blog post, we started discussing the idea of a PHP Foundation. It's not something new and has been floating around for a long time.
[...] We were proceeding rather leisurely, thinking that the problem was not critical. However, Nikita's decision forced us to intensify our work on the foundation.
(Score: 0) by Anonymous Coward on Wednesday November 24 2021, @10:16PM (5 children)
"you can again take a PHP script and "compile it" so that it doesn't have to be run through a script interpreter each time"
link or explanation? are you referring to swoole and roadrunner? I can't remember how those work under the hood.
I'm in the process of moving to OpenBSD partially due to their first class PHP support. I use a PHP framework though. Any secure, performant and featured perl web frameworks you like? I'm too lazy not to use a framework.
Also, why are you using nginx instead of relayd and httpd?
(Score: 2) by bmimatt on Wednesday November 24 2021, @10:49PM (1 child)
It's been well over a decade since I wrote anything in PHP, so there may be newer and/or cooler things now. Back then there were compilers that generated machine code as their output and you could even use them for locking the code down, so it could not be run on different machines (a sort of basic 'licensing' tool). They may have built something similar into newer versions of PHP. The pre-compiled machine code ran a lot faster at scale. nginx scales better and is not as bloated as httpd aka. 'Swiss Army tool' of web servers.
See this [stackexchange.com]
(Score: 0) by Anonymous Coward on Thursday November 25 2021, @01:06AM
"nginx scales better and is not as bloated as httpd aka. 'Swiss Army tool' of web servers."
i think you think i'm referring to Apache web server in OpenBSD repos as apache-httpd, but i'm referring to OpenBSD's own web server, unfortunately also named httpd. :) i already use nginx for many years and also prefer it to apache but OpenBSD's httpd should be more secure and less bloated than nginx. :)
(Score: 0) by Anonymous Coward on Thursday November 25 2021, @08:02AM
That is just how the reference implementation used to work. Zend would compile the files into VM opcodes. By default PHP would check each file on access to see if the opcode cache was still fresh and compile as needed, but you could compile them ahead of time and usually with higher optimization settings. Current versions for PHP8 use a JIT technique for much faster results on long-running programs.
FWIW, swoole is an async framework written in PHP and roadrunner is, or was the last time I looked, a PHP to golang bridge. Also OpenBSD's httpd isn't as flexible as nginx and while it might work well in the cases it is designed for, if you get outside of that you are either out of luck or pay the price in performance.
(Score: 2) by edIII on Friday November 26 2021, @09:34PM (1 child)
It's been so long, and I wasn't the one that did it. We had a project where I was creating a rather large API library of various functions that either did work on the system locally using external scripts and schedulers, or created responsedocs for a front-end website handled by others. The API ended up becoming quite large. Instead of trying to compile thousands of lines of code each time, the sysadmin would take a production version of the API and change it to bytecode. He told me that he essentially bypassed the compile step and executing the bytecode for each API call. My memory is too fuzzy now to recall it all at this point. It was nearly 10 years ago.
Catalyst is the enterprise framework that some projects are built on. Mojolicious is kind of a like a lite version of Catalyst.
There was something NGINX provided that OpenBSD did not. Maybe it was etags? IIRC, it had something to do with caching and then maybe the secure login system we built. Either way, httpd just wasn't cutting it.
Technically, lunchtime is at any moment. It's just a wave function.
(Score: 0) by Anonymous Coward on Saturday November 27 2021, @02:46AM
Yep, that sounds exactly like precompiling and preloading for the Zend VM OPcache. [php.net] Before it was built in to the Zend engine directly, there were a number of add-on and third-party cache choices. Before the Zend engine was adopted there were other techniques that were similar that could be used for files not executed directly.