You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So since this came up in multiple PRs/issues, I guess I will summarize what will be done in near future.
The biggest problem is the limitation of the CollectionTrait that causes the collection methods on every class that uses it to return instance of Collection where you would prefer it to return an instance of the original class. To solve this, every collection method/function will return CollectionInterface (which the class will implement because it uses the CollectionTrait) instead of the included Collection and a mechanism will be provided by the implementor to build a new instance of the original class -- probably a factory method of sorts, where the input will be an iterable. The exact implementation is till open to discussion.
This will have to go hand in hand with introduction of Generic documentation on the collection methods to describe the return types (suggested in #61). We will still have to deal with losing type information during some operations (like filter) but it should help anyway.
Also most of the reported issues should have their fixes merged before the release of 11.0.0.
The text was updated successfully, but these errors were encountered:
Oh and if nothing unexpected happens, don't expect PHP version bump. The only reasons to bump the PHP version I see would be to introduce type annotation (which would slow the lib down) or introduce short closures (neat but not needed, you can still use them in userland).
So, most of the fixes are already in, the version will be bumped in the end to >=7.2, psalm annotation will be added to both functions and Collection Class/Interface/Trait and the use of the bundled Trait should now be more straightforward.
Don't expect big BCs, but there will probably be some. I will try to summarize after release but everything will be tested and as such you can use the test diff as BC guidelines :)
Hi @DusanKasan, have you got around implementing the outstanding issues? Do you need help with anything? I'm eagerly waiting for the problems you mentioned in this issue to be solved, and the psalm annotations as well - particularly around generics, which PHPStorm finally supports 🙂
So since this came up in multiple PRs/issues, I guess I will summarize what will be done in near future.
The biggest problem is the limitation of the CollectionTrait that causes the collection methods on every class that uses it to return instance of Collection where you would prefer it to return an instance of the original class. To solve this, every collection method/function will return CollectionInterface (which the class will implement because it uses the CollectionTrait) instead of the included Collection and a mechanism will be provided by the implementor to build a new instance of the original class -- probably a factory method of sorts, where the input will be an iterable. The exact implementation is till open to discussion.
This will have to go hand in hand with introduction of Generic documentation on the collection methods to describe the return types (suggested in #61). We will still have to deal with losing type information during some operations (like filter) but it should help anyway.
Also most of the reported issues should have their fixes merged before the release of 11.0.0.
The text was updated successfully, but these errors were encountered: