Re: [PHP-DEV] Re: Making all Traversables an Iterator orIteratorAggregate

This is only part of a thread. view whole thread
  110141
May 12, 2020 13:57 derick@php.net (Derick Rethans)
On Tue, 12 May 2020, Sara Golemon wrote:

> On Tue, May 12, 2020 at 3:26 AM Nikita Popov 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
  110142
May 12, 2020 14:02 nicolas.grekas+php@gmail.com (Nicolas Grekas)
> I do not believe we should expose the Zend term into userland. >
Dunno if it helps or not, but there is a precedent here: ReflectionZendExtension Nicolas