🛡️
null 安全
Option モナドにより、null 参照エラーを型レベルで防止できます。Some と None を明示的に扱うことで、安全なコードを書けます。
composer require wiz-develop/php-monaduse WizDevelop\PhpMonad\Option;
// 値を Option でラップ
$value = Option\some(42); // Some<int>
$empty = Option\none(); // None
// null かもしれない値を安全に処理
$name = Option\fromValue($user['name'] ?? null);
$result = $name
->map(fn($n) => strtoupper($n)) // 値があれば変換
->filter(fn($n) => strlen($n) > 0) // 条件で絞り込み
->unwrapOr('Anonymous'); // None なら代替値use WizDevelop\PhpMonad\Result;
// 成功 / 失敗を明示的に表現
$success = Result\ok(42); // Ok<int>
$failure = Result\err('error'); // Err<string>
// 例外を Result に変換
$result = Result\fromThrowable(
fn() => json_decode($json, flags: JSON_THROW_ON_ERROR),
fn(Throwable $e) => "JSON パースエラー: {$e->getMessage()}"
);
$data = $result
->map(fn($decoded) => $decoded['key'])
->unwrapOr(null);MIT License