> On 3 Jul 2024, at 23:51, Matthew Weier O'Phinney <mweierophin...@gmail.com> 
> wrote:
> 
> 
> 
> On Wed, Jul 3, 2024 at 9:50 AM Stephen Reay <php-li...@koalephant.com 
> <mailto:php-li...@koalephant.com>> wrote:
>> 
>> 
>>> On 3 Jul 2024, at 21:07, Vincent de Lau <vinc...@delau.nl 
>>> <mailto:vinc...@delau.nl>> wrote:
>>> 
>>> From: Stephen Reay <php-li...@koalephant.com 
>>> <mailto:php-li...@koalephant.com>> 
>>> Sent: Wednesday, July 3, 2024 1:17 PM
>>> 
>>>> On 1 Jul 2024, at 23:33, Mike Schinkel <mailto:m...@newclarity.net 
>>>> <mailto:m...@newclarity.net>> wrote:
>>>>> Autoloading runs userland code. This means it has the potential conflict 
>>>>> between different packages with different autoloaders
>>> 
>>>> *Can* run userland code. It doesn't *have to*; FYI  spl_autoload 
>>>> (https://www.php.net/manual/en/function.spl-autoload.php) has existed 
>>>> since php5.1 and works amazingly well. 
>>>> 
>>>> That "standards" like psr-whatever can't (read: choose not to) use it says 
>>>> more about people and maintaining their little fiefdoms than anything 
>>>> else. 
>>> 
>>> As a PHP-FIG Core Committee member, I find this characterisation of people 
>>> involved in the FIG offensive. My contribution, however big or small, is 
>>> intended to help the PHP community at large.
>>> 
>> 
>> If you choose to be offended by my opinion, I can't really help that. 
> 
> No, but you also don't need to air your personal grievances on the mailing 
> list. If you don't like what FIG or any other entity in the PHP ecosystem is 
> doing, this is NOT the place to air that grievance. Internals is for 
> discussing changes to the runtime. Calling out entities like this here is 
> bound to alienate folks who want to work on the engine, and who are also 
> parts of those groups.
> 

I'm glad we're in agreement that this list is about the runtime and not about 
composer or FIG. I look forward to seeing a response from you as vivid as this 
one, the next time someone responds to a discussion about something like 
function autoloading with "X isn't really a problem because composer". 

> It also doesn't help your argument when you're stating things that are flat 
> out wrong as facts. You can absolutely use spl_autoload() alongside the PSR 
> recommendations or Composer; see more below

Please re-read what I wrote, before making ironic statements about 'facts'. I 
never said you can't use them "along side" each other. I said that the PSR's 
are incapable of using the built-in functionality provided by spl_autoload. 
That is: you can't adhere to either PSR using the builtin autoloader alone. 
That you can use them along-side each other is *unrelated* to `spl_autoload`, 
it's a function of the stack created by `spl_autoload_register`.

> .
>> 
>>> To come back to spl_autoload: That function pre-dates namespaces and is 
>>> highly opinionated on how to organise code. All lower-case filenames, class 
>>> per-file, files in include_path, full namespace in path, you name it. If 
>>> that is what projects wanted at the time, or even now, PSR-0 and the 
>>> PHP-FIG would possibly not even exist.
>>> 
>> 
>> It's less highly opinionated than either PSR, but that's my whole point: 
>> it's *someone else's opinion*, hence it's opposed by FIG.
> 
> That's a gross mischaracterization.
> 
> In point of fact, most frameworks that joined FIG in the beginning were 
> leveraging spl_autoload_register(), which provides a _stack_ of autoloaders 
> that each provide their own logic for how to map classes to where on the 
> filesystem they live. spl_autoload_register() came after spl_autoload(), and 
> was introduced *to add flexibility* to the language, as spl_autoload is 
> proscriptive and only allows a single approach to autoloading, and it wasn't 
> even one that was widely used at the time it was introduced. It's not about 
> _opinions_, it's about recognizing that different approaches might have 
> merit. (Some might give better performance, some might allow pulling items 
> out of a phar or tarball, etc.)
> 


spl_autoload, spl_autoload_register, and spl_autoload_extensions were all added 
in php5.1 (compare https://3v4l.org/H60EG#v5.0.5 vs 
https://3v4l.org/H60EG#v5.1.0).  Maybe you're thinking of __autoload, which had 
no default implementation before `spl_autoload` was added. 


> The configurable part for autoloading in the language is 
> spl_autoload_register(), full stop. 

spl_autoload is (and has been since inception) configurable via 
spl_autoload_extensions, and via the standard include path.



Reply via email to