On 23 August 2024 13:04:22 BST, Mike Schinkel <m...@newclarity.net> wrote:
>
>> It wouldn't be a top-level namespace that would cause a conflict, but a
>> nested one: currently the above code resolves the function name as
>> "AcmeComponents\SplineReticulator\Utilities\Text\Text\strlen" (note the
>> "...\Text\Text\...").
>
>How often does that really occur in the wild?
Oh, I think it would be much rarer than colliding with a global namespace. I
was pointing out that your suggestion was *better* than you thought.
>And how can it occur without an explicit `use
>AcmeComponents\SplineReticulator\Utilities\Text\Text` statement, which I
>proposed would override the automatic `use`, anyway?
I'm not sure what you mean. Right now, that's the function name that would be
looked up for your example code (other than a couple of unrelated typos in your
example). So if, for some reason, someone was relying on that, their code would
break with your "automatic use".
>The only one of those that has a strong analog to existing PHP code is to "use
>the end of the current namespace" as people frequently do with explicit `use`
>statements.
True. I just don't love the context-sensitive nature of it.
>Lastly, no comment on `\\`?
Ah, yes, I forgot to say: I'm not keen on that because in other contexts it
means exactly the opposite: it refers to the absolute root in a context where a
relative name would be assumed.
For example, \\domain\username and \\server\fileshare on Windows, or
//example.com/foo in a URL
Rowan Tommins
[IMSoP]