Re: Proposal: namespace the SPL
| From: | Levi Morrison via internals | Date: | Wed, 24 Feb 2021 16:27:13 +0000 |
| Subject: | Re: Proposal: namespace the SPL | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-113247@lists.php.net to get a copy of this message | ||
On Thu, Feb 18, 2021 at 7:48 AM Levi Morrison
<levi.morrison@datadoghq.com> wrote:
>
> On Thu, Feb 11, 2021 at 9:39 AM Levi Morrison <levim@php.net> wrote:
> >
> > Hello, everyone,
> >
> > There has been a lot of disagreement about namespacing, and people
> > seem to have different viewpoints. I am not sure how to reconcile this
> > broader discussion.
> >
> > However, there are certain names in the global namespace which I am
> > hopeful we can revolve. For instance,
SplObserver,
> > SplQueue,
> > SplFixedArray, etc all follow the
> > Spl prefix. There is already an
> > established "namespace" for these names.
> >
> > So here is my limited proposal:
> > 1. We create names in the Spl namespace that are aliases
> > to their
> > equivalent types with the Spl prefix:
> > Spl\FixedArray -> SplFixedArray
> > Spl\Queue -> SplQueue
> > a. The new names are the aliases so any code which uses
> > get_class($obj) will not have the name change on them in a
> > minor
> > release (8.1).
> > b. We may switch the direction of this alias in 9.0.
> > 2. Any new types going into ext/spl use the
> > Spl namespace. New
> > types added to ext/spl should be either related to data
> > structures
> > or iterators, which is the bulk of what the SPL is.
> > a. This rule is to help prevent the SPL from becoming the dumping
> > grounds for new types.
> > 3. We leave functions alone for now.
> >
> > Let me know what you think. I am hopeful this approach will work because:
> > 1. It is focused on a specific area which already has an established
> > "namespace", but in name-only (not technically).
> > 2. It does not try to solve the larger problem, which has a lot of
> > disagreement.
> > 3. I will be proposing new types for ext/spl soon
> > (ReverseIterator
> > and an array iterator that is more efficient than
> > \ArrayIterator),
> > and Tyson Andre has already proposed CachedIterable and
> > company
> > which is in ext/spl, so this space has active development.
> >
> > Thank you for your time.
> >
> > --
> > PHP Internals - PHP Runtime Development Mailing List
> > To unsubscribe, visit: https://www.php.net/unsub.php
> >
>
> There's been a lull in feedback, so let me steer it towards a specific
> point that was brought up: how do you feel about adding aliases from
> \Spl\Thing to \SplThing?
>
> https://strawpoll.com/22pcxh69p
It's been about a week. Current standings out of 33 total votes:
"I think they are important to the proposal." => 16 votes (~48%)
"I prefer them to not be aliased." => 11 votes (~33%)
"I don't care about them." => 6 votes (~18%)
I'll think more about the discussion so far and these results and then
either adjust or drop the proposal.