Re: Re: Making all Traversables an Iterator or IteratorAggregate
| From: | Derick Rethans | Date: | Tue, 12 May 2020 13:57:57 +0000 |
| Subject: | Re: Re: Making all Traversables an Iterator or IteratorAggregate | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-110141@lists.php.net to get a copy of this message | ||
On Tue, 12 May 2020, Sara Golemon wrote:
> On Tue, May 12, 2020 at 3:26 AM Nikita Popov <nikita.ppv@gmail.com> wrote:
> > // WeakMap::getIterator(): Iterator
> > ZEND_METHOD(WeakMap, getIterator)
> > {
> > if (zend_parse_parameters_none() == FAILURE) {
> > return;
> > }
> > zend_create_internal_iterator_zval(return_value, ZEND_THIS);
> > }
> >
> Given that the body of this method seems to usually (always?) be the same,
> why not define it in InternalIterator and allow it to be inherited?
>
> > There's some bikeshed potential here regarding the class name.
> >
> Not personally over-picky, but I do agree that "Internal*" is a bit
> awkward. Unfortunately there's not much that's better and appropriate for
> exposing to scripts. This might be one of those rare occasions where
> exposing "Zend" into userspace makes sense. "PHP" is overloaded into
> several meanings that are significant for userspace developers, but
> something like "ZendIterator" might convey the right level of "This has to
> do with the engine, please move along". Or maybe go verbose:
> 'IteratorForExtensionClassImplementations'. :p
I do not believe we should expose the Zend term into userland.
Let the bike shedding start: Perhaps just "EngineIterator".
cheers,
Derick
--
PHP 7.4 Release Manager
Host of PHP Internals News: https://phpinternals.news
Like Xdebug? Consider supporting me: https://xdebug.org/support
https://derickrethans.nl | https://xdebug.org | https://dram.io
twitter: @derickr and @xdebug