Skip to content

Map ​

キーと値のペアを扱う不変のコレクションです。

名前空間 ​

php
EndouMame\PhpValueObject\Collection\Map

実装インターフェース ​

  • ICollection
  • ArrayAccess
  • Countable
  • IteratorAggregate
  • JsonSerializable

ジェネリック型 ​

php
Map<TKey, TValue>

ファクトリメソッド ​

from ​

php
public static function from(Pair ...$pairs): static

Pair から Map を作成します。

php
$map = Map::from(
    new Pair('name', 'John'),
    new Pair('age', 30)
);

make ​

php
public static function make(array $items): static

連想配列から Map を作成します。

php
$map = Map::make(['name' => 'John', 'age' => 30]);

empty ​

php
public static function empty(): static

空の Map を作成します。

tryFrom ​

php
public static function tryFrom(Pair ...$pairs): Result<static, ValueObjectError>

検証付きで Map を作成します。

tryFromResults ​

php
public static function tryFromResults(array $results): Result<static, ValueObjectError>

Result の配列から Map を作成します。

値へのアクセス ​

get ​

php
public function get(TKey $key): TValue

キーに対応する値を取得します。

php
$map = Map::make(['name' => 'John']);
$name = $map->get('name'); // 'John'

has ​

php
public function has(TKey $key): bool

キーが存在するか判定します。

配列アクセス ​

php
$map['name']; // 'John'
isset($map['name']); // true

first / last ​

php
public function first(?callable $predicate = null): Option<TValue>
public function last(?callable $predicate = null): Option<TValue>

最初 / 最後の要素を取得します。

sole ​

php
public function sole(?callable $predicate = null): TValue

条件に一致する唯一の要素を取得します。

キーと値の取得 ​

keys ​

php
public function keys(): ArrayList<TKey>

すべてのキーを ArrayList として取得します。

php
$keys = $map->keys(); // ArrayList['name', 'age']

values ​

php
public function values(): ArrayList<TValue>

すべての値を ArrayList として取得します。

php
$values = $map->values(); // ArrayList['John', 30]

追加・削除 ​

すべての操作は新しいインスタンスを返します。

put ​

php
public function put(TKey $key, TValue $value): static

キーと値を追加または更新します。

php
$updated = $map->put('email', 'john@example.com');

putAll ​

php
public function putAll(array $items): static

複数のキーと値を追加します。

forget / remove ​

php
public function forget(TKey $key): static
public function remove(TKey $key): static

キーを削除します。

変換操作 ​

map ​

php
public function map(callable $callback): static

各値を変換します。

php
$doubled = $map->map(fn($v) => $v * 2);

mapStrict ​

php
public function mapStrict(callable $callback): static

型を厳格にチェックしながら変換します。

filter ​

php
public function filter(callable $predicate): static

条件に合う要素を抽出します。

php
$filtered = $map->filter(fn($v) => is_string($v));

filterAs ​

php
public function filterAs(string $className): static

指定したクラスのインスタンスのみを抽出します。

reject ​

php
public function reject(callable $predicate): static

条件に合わない要素を抽出します。

ソート・逆順 ​

sort ​

php
public function sort(callable $comparator): static

値でソートします。

reverse ​

php
public function reverse(): static

逆順にします。

マージ ​

merge ​

php
public function merge(self $other): static

別の Map をマージします。同じキーがある場合は後から渡した Map の値で上書きされます。

その他 ​

isEmpty ​

php
public function isEmpty(): bool

空かどうか判定します。

toArray ​

php
public function toArray(): array

連想配列に変換します。

count ​

php
public function count(): int

要素数を取得します。

使用例 ​

設定値の管理 ​

php
$config = Map::make([
    'debug' => true,
    'timeout' => 30,
    'retries' => 3
]);

if ($config->get('debug')) {
    // デバッグモード
}

$updated = $config->put('timeout', 60);

関連 ​

MIT ライセンスの下で公開されています。