Парсинг, парсеры свойств
Понятие парсинга
Парсинг — это процесс преобразования входных данных в объект целевого типа, в данном случае — объект Data-класса. В процессе парсинга могут происходить преобразования типов данных, а также применение различных правил для корректного заполнения свойств объекта.
Примитивные преобразования
Примитивные преобразования выполняются автоматически для таких типов данных, как строки, числа, булевы значения, массивы и объекты.
use Looqey\Speca\Data;
enum AlbumType: string {
case EP = 'ep';
case LIVE = 'live';
case LP = 'lp';
case COMPILATION = 'compilation';
case DEMO = 'demo';
}
class Album extends Data {
public function __construct(
public string $name,
public int $tracksCount,
public AlbumType $type
) {}
}
$album = Album::from(['name' => 'Dopethrone', 'tracksCount' => '8', 'type' => 'lp']);
В этом примере поле tracksCount
автоматически преобразуется в тип int
, а поле type будет приведено к одному из значений перечисления AlbumType
.
Пользовательские преобразования
Для более сложных типов данных можно реализовать собственные правила преобразования с помощью парсеров.
Создание и использование парсера свойства
Для создания собственного парсера используются трансформеры - подробнее здесь