Re: [RFC] Add Directive to Make All Namespaced Function Calls Global
On Mon, 2024-08-05 at 12:27 +0100, Derick Rethans wrote:
> On Sun, 4 Aug 2024, Nick Lockheart wrote:
>
> > https://wiki.php.net/rfc/global_function_parser_directive I
> > am
> > asking
> > that we discuss and vote on the following question:
> >
> > “Should there be some way for developers to signal to the parser at
> > compile time that all unqualified function names found in a
> > namespace
> > context are global, without a namespace lookup?”
>
> I don't beleive that we should introduce a switch for this at all,
> just
> like the conclusion was in
> https://wiki.php.net/rfc/use_global_elements
>
>
In that RFC, the proposal was:
declare(function_and_const_lookup='global');
I'm not sure the conclusion was that there shouldn't be a way to
control the NS lookup behavior. That's what I'm trying to determine
with this new RFC: whether it was the entire concept, or just the
syntax or mechanism that was disfavored.
Do people agree that there should be *some way* to use only global
functions without an NS lookup as a *concept*?
Or, did they not like the syntax of:
declare(function_and_const_lookup='global');
?
Because that RFC has four things in it:
(1) A Concept that global functions should be used without an NS lookup
(2) A Concept that global *constants* should be usable without an NS
lookup.
(3) A syntax being proposed.
(4) The idea that functions and constants should both be controlled by
the same directive.
I think that other RFC was on the right page, for the most part, but I
think the syntax could be improved.
Which is why I had suggested a new keyword as part of the namespace
declaration in some of my other posts.
Something that would look like one of these:
// Disable NS lookup; use all *global* functions unless
// a \foo\ appears before the function name:
namespace foo using global functions;
// Disable NS lookup; use all *local* functions unless
// a \ appears before the function name:
namespace foo using local functions;
// Use NS lookup. Same as today, no BC break:
namespace foo;
Thread (8 messages)