Re: Autoloading functions/consts without a performance impact
| From: | Rowan Tommins | Date: | Fri, 03 Jan 2020 14:48:21 +0000 |
| Subject: | Re: Autoloading functions/consts without a performance impact | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-107974@lists.php.net to get a copy of this message | ||
On Fri, 3 Jan 2020 at 11:37, Nikita Popov <nikita.ppv@gmail.com> wrote:
> Overall though, I do tend to agree that the use of static methods is at
> this point more idiomatic than the use of free-standing functions, and it
> might make more sense to go in that direction.
>
Perhaps a way forward would be to effectively abandon namespaced functions
as a language feature:
* Implement https://wiki.php.net/rfc/use_global_elements
* Plan to eventually make "use global functions" the default
* Revive the "static class" modifier, which was rejected under
https://wiki.php.net/rfc/abstract_final_class
primarily on the grounds that
"namespaced functions should be used instead"
* Add a "use function A::foo" syntax that requires the target function to
actually be static
Namespaces containing only functions and constants could then be replaced
by autoloadable classes.
However, if we're looking at radical changes of direction, I wonder if we
should instead plan to phase out autoloading itself. With OpCache and now
pre-loading, the idea of "only include the files you need" makes much less
sense than it did ten years ago. OpCache on the command-line is probably
used much more rarely, but given how easy it is to incidentally pull in
dozens of classes from a third-party library, maybe that's something that
should change?
Regards,
--
Rowan Tommins
[IMSoP]