Re: [PHP-DEV] Are PECL modules preferable?

This is only part of a thread. view whole thread
  109214
March 22, 2020 23:08 rowan.collins@gmail.com (Rowan Tommins)
On 21/03/2020 22:52, Mike Schinkel wrote:
>> On Mar 21, 2020, at 5:59 PM, tyson andre<tysonandre775@hotmail.com> wrote: >> FROM: Re: [PHP-DEV] [RFC] is_literal() >> >> And if it can be implemented as a PECL module, that would be more preferable to me than a core module of php. >> If it was in core, having to support that feature may limit optimizations or implementation changes that could be done in the future. > Just wanted to address this comment which was made on another thread (I did not want to hijack that thread.) > > A large number of PHP users have no control over the platform they run on, so the option to use PECL modules is a non-starter for them.
Even if a module is "bundled", that doesn't mean it automatically becomes available to all vanilla builds of PHP. I know that a lot of Linux distributions break up their PHP packages so that pretty much every module can be installed separately; conversely, they provide pre-compiled packages for a lot of PECL and third-party extensions. So there's very little difference between installing, for example, "php-zip" (bundled) and "php-redis" (PECL). I glanced at a couple of the WordPress hosts you mentioned, and couldn't find a clear description of their PHP configurations, but I suspect it's similar - some "bundled" extensions won't be enabled (e.g. various database drivers), and some PECL extensions will be installed as standard (e.g. Redis). In practice, I think there are four types of extension, not two: A) Core, and either can't be disabled, or disabling is very rare B) Bundled, but optional; may be packaged separately; may be optional or not supported by managed hosting C) Not bundled, but widely available pre-built as well as through PECL; may be included or available in managed hosting D) Not bundled, and not widely pre-built; mostly available only via PECL Type B and C enjoy similar availability to users, but type C allows a package maintainer more freedom to maintain and evolve the extension; type B trades that for a rubber-stamp of official approval. Regards, -- Rowan Tommins (né Collins) [IMSoP]