Перейти к основному содержимому

Быстрый старт

Установка

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 автоматически приведет типы к нужному виду, если это возможно. Вы решаете, нужен ли конструктор в классе — если он есть, он будет вызван с необходимыми полями. Публичные поля, которые не требуют преобразований, будут заполнены оставшимися данными.