On Wed, Jul 10, 2024, at 1:38 AM, Mike Schinkel wrote: >> In fact, if you use an optimized/dumped autoloader, then Composer simply >> builds an internal giant lookup table of what class maps to what file. >> PSR-4 is then *completely irrelevant* at runtime. It's already one giant >> O(1) lookup map. That can be done *today*. That *is* done today. > > Yes, it can be done today. It *is* done today. By. Developer. Managed. Apps.
> Already done. I explained how an `spl_autoload_map()` would do exactly > that above. > >> When you have a proven that it's even possible to have multiple local symbol >> tables, we can talk. Until then, please spare us. > > My one useful takeaway from your email — except that I already knew > that — was the need to figure out how PHP can handle multiple symbol > tables. Beyond that, your take your own advice and spare us (me) from > your contempt and condescension as they are not good looks on anyone. I find it amusing that several of your responses to me saying "you could do this stupid thing but no one does that" is "WordPress does that thing." I make no comment other than to observe it. But let me understand: In a thread started by Michael Morris where he explicitly said the most important thing for him is multi-version loading, you're going to insist you're talking only about moving Composer's classmap logic into core, and nothing about multi-version loading. If that's the case, then please be polite to Michael Morris and get out of his thread. Also, be aware that classmap-in-core was already discussed 3 years ago and went nowhere. https://wiki.php.net/rfc/autoload_classmap https://externals.io/message/113545 Largely because, as Sara said then, and Rowan just said on this thread, it can be done better in user-space and is already done better in user-space... by Composer. https://externals.io/message/113569 You even commented in that thread: https://externals.io/message/113554 So it's not a new idea, it's an idea that's already been greeted with a general "meh". Yes, most "developer managed apps" use Composer today to side-step the "bajillion autoloaders" problem. It's a solved problem. Nothing precludes Wordpress from doing the same. I admittedly have not looked at WP's core in a very long time, but I would be absolutely shocked if it wasn't pretty straightforward to build code into WP core that looks at the source directories of all plugins, finds the classes there, and builds a big index (stored in a cache directory or the database) that it can use in one single autoloader registered by WP itself. I know that can be done, because that's exactly how Drupal 7's autoloader worked. I know, because I wrote it. In 2008. (It was later modified by others, but the initial version was mine.) That would work even with WP's "download code and drop it on disk" model. That has been possible since PHP 5.2 at least, when I wrote exactly that for Drupal. It wasn't even that hard. Literally any "user managed app" could do the same. Why hasn't WP core done that in order to make life easier for plugin developers and avoid registering 50 separate autoloaders? I dunno, you should ask Matt Mullenweg. We have nothing to do with it. --Larry Garfield