Psalm
Get started
Documentation
Paid support
Plugins
Blog
GitHub
<?php declare(strict_types=1); use Countable; use IteratorAggregate; /** * @template K of array-key * @template V * @extends IteratorAggregate<K, V> */ interface Collection extends Countable, IteratorAggregate { /** @return static<int<0, max>, K> */ public function getKeys(): static; /** * @param callable(V $value, K $key): bool $predicate * @return static<K, V> */ public function find(callable $predicate): static; /** * @template OV * @param callable(V $value, K $key): OV $mapper * @return static<K, OV> */ public function map(callable $mapper): static; /** * @template OV * @param callable(V $value, K $key): iterable<OV> $mapper * @return static<int<0, max>, OV> */ public function flatMap(callable $mapper): static; /** * @template OK of array-key * @param callable(V $value, K $key): OK $groupMapper * @return static<OK, static<K, V>> */ public function groupBy(callable $groupMapper): static; /** * @param int<1, max> $size * @return static<int<0, max>, static<K, V>> */ public function chunk(int $size): static; }
Snippet created on January 27 2025 at 11:28 UTC
Settings
Get link