On Thu, Feb 11, 2021 at 10:48 AM Chase Peeler <chasepee...@gmail.com> wrote: > > > > On Thu, Feb 11, 2021 at 12:23 PM Levi Morrison via internals > <internals@lists.php.net> wrote: >> >> On Thu, Feb 11, 2021 at 9:57 AM Mark Randall <marand...@php.net> wrote: >> > >> > On 11/02/2021 16:39, Levi Morrison wrote: >> > > 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. >> > > >> > >> > Do you want a dumping ground? Because this is how you create a dumping >> > ground :-) >> > >> > If we're going to start putting things into namespaces (and we should) >> > then we should absolutely avoid repeating the mistakes of the past by >> > dumping completely unrelated things together. >> >> I agree, which is the point of accepting things in a narrow scope. >> Data structures and iterators go hand-in-hand, as many iterator >> implementations are directly connected to the internal implementation >> details of the related data structure. There are other iterators, and >> as long as they are general purpose they are fine too. These things >> are related, not unrelated. >> >> > If SPL\ is to exist (and personally I think SPL is so cancerous, it >> > shouldn't) then IMO it must absolutely be SPL\iterators. >> >> As mentioned in the previous point, iterators and data structures >> belong together. It does not make sense to separate the implementation >> of FixedArray and its iterator into two different namespaces; they are >> one cohesive unit. >> >> Lastly, if we don't adopt a namespace soon, what will new names be? I >> can guarantee it will be something like `SplReverseIterator`, not >> `SplIteratorReverseIterator`. It won't be >> `SplDatastructureCachedIterable`, it would be something like >> `SplCachedIterable` (or `CachedIterable`, ugh). >> >> As you see, "Spl" _is_ the namespace. Any more or any less is >> incongruent with what we have. This is why I am hopeful that >> _specifically_ using "Spl" for these specific types can reach >> agreement; all we are changing is `Spl$thing` to `Spl\$thing`. >> > > I think Spl makes sense (there might be a debate over whether it should be > Spl or SPL though). How feasible is it to create generate a deprecation > notice when the global version is used? I assume the hope is to eventually > move away from using those, and I don't think that's a horrible BC break > given that users have enough time to prepare for it.
I don't know the answer to that question. However, I don't think we should add a deprecation on the very first version that we add the aliases anyway. I think that would make for a bad upgrade experience from 8.0 to 8.1. I would leave that more for 8.3, 8.4-ish in the release cycle so there are at least a few versions for people to organically change their code without triggering any notices of any kind. >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: https://www.php.net/unsub.php >> > > > -- > Chase Peeler > chasepee...@gmail.com -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php