Вместо:
if (!is_string($name) || $name === '') {
throw new InvalidArgumentException(
'Name must be a non-empty string'
);
}
можно написать:
use Webmozart\Assert\Assert;
Assert::stringNotEmpty($name);
Assert::email($email);
Assert::range($age, 18, 99);
Assert::allInstanceOf(User::class, $users);
Установка:
composer require webmozart/assert
📌 В итоге вместо десятков однотипных if/throw получаем компактные и единообразные guard-условия.
Библиотека пхпшника
