2016-08-08 19:06 GMT+02:00 Rasmus Schultz <ras...@mindplay.dk>:

> > If not, I don't see why we ever need to be able to autoload global
> functions
>
> Well, for consistency.
>

Not only for consistency, but also for things like polyfills, e.g.
random_compat.

Regards, Niklas


> For one, if you're refactoring a global function to a namespaced one, this
> inconsistency is going to be surprising.
>
> In general, any inconsistency in a language is surprising. Why only
> non-global functions can autoload, is going to require a longer
> explanation. And that's bad.
>
> If we support auto-loading only for namespaced functions, we're actively
> favoring (potentially micro-) performance over consistency.
>
> I use global functions. I know that's not popular, but it's a language
> feature, and I use it - for things like test-frameworks and global view
> helper-functions.
>
> Single namespace spanning multiple files is also a case for me - that's not
> a decision we should make; likely, a PSR and Composer auto-loading features
> will drive those decisions. One should have the freedom to add a new
> function to an existing namespace, and make that function auto-load, while
> packaging that function as a separate optionally-installable package.
>
> I can't see the introduction of arbitrary restrictions or limitations
> leading to anything good, language-wise.
>
> Unless there's a demonstrated, critical performance issue with auto-loading
> of global functions, please, let's not cripple this feature with
> inconsistencies from the get-go!
>
>
> On Mon, Aug 8, 2016 at 6:46 PM, Rowan Collins <rowan.coll...@gmail.com>
> wrote:
>
> > On 08/08/2016 17:00, Levi Morrison wrote:
> >
> >>     I think saying "add a backslash in front of your function names to
> >>     avoid them being slow" will just lead to lots of "lol wtf php sux".
> >>
> >>
> >> They'll say the same when function and class autoloading don't work the
> >> same way anyway. I think unifying their behavior over time is the best
> >> solution forward. Yes, I'm talking about a BC break eventually, but the
> >> suggestion to autoload only fully qualified function names could buy us
> >> the time to make that BC break less severe.
> >>
> >
> >
> > Do you mean eventually changing the name resolution rules for functions
> to
> > match those for classes? I wasn't around at the time it was discussed,
> and
> > if we were adding them now would be tempted to say the leading \ should
> > always be mandatory, just like it is for classes. But since we have what
> we
> > have, I don't see that big an advantage to changing it.
> >
> > If not, I don't see why we ever need to be able to autoload global
> > functions. "You want autoloading? Put it in a namespace." Like I say,
> that
> > leaves the very small edge case of a single namespace spanning multiple
> > files, and an autoloader implementation able to include one of them when
> a
> > function is called from another.
> >
> >
> > Regards,
> > --
> > Rowan Collins
> > [IMSoP]
> >
> > --
> > PHP Internals - PHP Runtime Development Mailing List
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>

Reply via email to