Thanks for your reply.
1. While this extension looks similar to the DS extension, there are several notable differences: * The DS extension implements its own data structures, while this extension uses just `zend_array`. It's much cheaper when you're "converting" a PHP array into a `Collection`, and vice versa. It just increments the refcount, without having to iterate through the array and copy its elements. * This extension has much more methods(mostly ported from kotlin.collections) than the DS extension, which can minimize userland business logic operating the array. 2. See this [gist](https://gist.github.com/CismonX/0bfa2bd6f2b257e5d4a49afa635819fe) for some simple performance comparison. * If the userland implementation is doing the same thing as the extension(also uses callbacks), the performance increase is satisfactory. For `associate()`, it provides a 19% speed boost. * However, if you're not using callbacks, the userland implementation can be faster. That doesn't mean functions like `array_map()`, `array_filter()` are useless, though. * In some cases, there's no way to implement some functionalities cheaply in userland PHP, such as `sortBy()`. It provides a 500% speed boost in comparison with the `usort()` workaround. 3. Good suggestion. I'll have the `Collection` class implement the `Iterator` interface. ------------------ Original ------------------ From: "Arnold Daniels"<arn...@jasny.net>; Date: Mon, Sep 10, 2018 06:13 PM To: "CismonX"<ad...@cismon.net>; Cc: "pecl-dev"<pecl-dev@lists.php.net>; Subject: Re: [PECL-DEV] Publishing a new PHP extension to PECL Some critique, sorry... * This seems comparable to the DS extension; http://php.net/ds. Why not discuss and/or collaborate? I feel having too many similar extensions is not good.* I wonder how much this will perform than a userspace implementation for most methods, as they use callbacks. * For cases where it's not required to have ArrayAccess, but just traverse through the items, it would be preferable if the Collection is just iterable (functions similar to a Generator), so the methods form a pipeline. - Arnold On Sat, Sep 8, 2018 at 3:14 PM CismonX <ad...@cismon.net> wrote: Hello, I'm a student in Tianjin University and a part-time web developer. I'd like to publish one of my extension to PECL, so that it can help more people in their projects. https://github.com/CismonX/ext-collections This extension can serve as a faster, more scalable and object-oriented alternative of ext/standard/array.c, which supports all versions of PHP(ZTS/NTS) starting from 7.1 on any platform. See README.md for details. Now this extension is fully implemented and well-tested, and is not far from going production. I believe now is the time to publish it to PECL. Looking forward to your response! CismonX 9/8/2018 -- PECL development discussion Mailing List (http://pecl.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php