Hi Pierre, > > While there is considerable division in whether or not members of internals > > want to adopt namespaces, > > I hope that the final outcome of the poll will be accepted by members of > > internals > > as what the representative of the majority of the members of internals > > (from diverse backgrounds such as contributors/leaders of userland > > applications/frameworks/composer libraries written in PHP, > > documentation contributors, PECL authors, php-src maintainers, etc. (all of > > which I expect are also end users of php)) > > want to use as a naming choice in future datastructure additions to PHP. > > (and I hope there is a clear majority) > > > > ----- > > > > Are there any other suggestions to consider for namespaces to add to the > > straw poll? > > > > Several suggestions that have been brought up in the past are forbidden by > > the accepted policy RFC > > (https://wiki.php.net/rfc/namespaces_in_bundled_extensions > PHP: rfc:namespaces_in_bundled_extensions > Classes and functions provided by bundled PHP extensions are currently all > located in the global namespace (with one exception). There is a strong > sentiment that future additions to PHP's standard library should make use of > namespaces, to the point that otherwise unrelated proposals increasingly > degenerate into namespace-related discussions. > wiki.php.net > ) > > and can't be used in an RFC. > > > > - `Spl\`, `Core\`, and `Standard\` are forbidden: "Because these extensions > > combine a lot of unrelated or only tangentially related functionality, > > symbols should not be namespaced under the `Core`, `Standard` or `Spl` > > namespaces. > > Instead, these extensions should be considered as a collection of > > different components, and should be namespaced according to these." > > - More than one namespace component (`A\B\`) is forbidden > > - Namespace names should follow CamelCase. > Besides the namespace thing (collection is fine imho). What is the > reason to have it final?
Do you want singular Collection included as an option in addition to plural in https://wiki.php.net/rfc/deque_straw_poll ? The reasons it was a `final` class in this RFC was described in https://wiki.php.net/rfc/deque#final_class. It's easier to change a `final` class to a non-final class with final methods if needed later on. (final methods so that array access, etc. continues to be fast, easy to reason about, bug/crash-free, etc) > For collection in general, would it make sense to have a common > interface representing the minimum expected API? If possible, then > algorithm specific on top? a bit like we have with the traversable > interface and related. php-ds does this as https://www.php.net/manual/en/class.ds-collection.php and I've been considering it Still, - With union types and intersection types, it's still useful but isn't as compelling. - There's the choice of namespacing to consider for the new namespace (`Collection` vs `Collections\Collection`). - It didn't seem as useful until there were more datastructures to choose from and situations where more than one would be chosen. - It couldn't be used until support for php <= 8.1 was dropped by applications/libraries, so it'd take a while to be adopted. Thanks, Tyson -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php