Быстрый старт
Установка
composer require looqey/speca
Пример использования
Создадим класс, наследующийся от Data
, и определим публичные свойства:
use Looqey\Speca\Data;
class User extends Data {
public string $name;
public ?string $surname = null;
public function __construct(
string $name,
public int $age
) {
$this->name = ucfirst($name);
}
}
Теперь создадим объект нашего класса на основе данных:
$data = [
'name' => 'john',
'surname' => 'Doe',
'age' => '25',
];
$user = User::from($data);
/*
* $user->name: "John"
* $user->surname: "Doe"
* $user->age: 25
*/
Speca автоматически приведет типы к нужному виду, если это возможно. Вы решаете, нужен ли конструктор в классе — если он есть, он будет вызван с необходимыми полями. Публичные поля, которые не требуют преобразований, будут заполнены оставшимися данными.