Hi Rob
On Fri, Aug 2, 2024 at 7:10 PM Rob Landers <[email protected]> wrote:
>
> So, what you’re saying is that symfony and laravel can get a performance increase by simply
> adding a \ in the right places? Why don’t they do that instead of changing the language?
Nothing, of course. However, a Symfony maintainer has expressed
uninterest in prefixing all internal function calls, including
automated use statements at the top of the file. Even if they did,
most users will not.
> For functions/classes in the same exact namespace, you don’t need a use statement. But after
> this change, you do in certain cases?
>
> namespace Foo;
>
> function array_sum($bar) {}
>
> function baz($bar) {
> return array_sum($bar);
> }
>
> So, how do you use that function in the same file?
Yes. But I'm not sure how that's different from today? If there's a
local and global function declared with the same name, and you intend
to call the global one, you'll already need to disambiguate the call
with a \.
With this change, your two options would be to:
* Prefix your calls with namespace\. That's quite ugly, but is the
syntax we currently offer.
* Add a use array_sum;
to the top of the file.
An explicit use has upsides too. It makes it much more obvious that
the global function is shadowed.
> We can only see open source code when doing impact analysis. This means picking even a slightly
> “popular” name could go very poorly.
Yes, and there are many more than 10 000 composer repositories. An
impact analysis can give you an approximation for breakage, not
absolute numbers.
Ilija