Transformer — це PHP-пакет для дезінфекції та форматування даних на основі компонентів перевірки Laravel. Пакет використовує знайомий синтаксис, схожий на перевірку Laravel, для перетворення даних за допомогою викликаних функцій, класів тощо:
use Closure;
// example available functions at runtime:
function to_carbon($value)
{
return new Carbon\Carbon($value);
}
function only_numbers($value)
{
return preg_replace("/[^0-9]/",'',$value);
}
$input = [
'first_name' => ' jim ',
'last_name' => ' thompson',
'phone_number' => '123-456-7890',
'date_of_birth' => "1991-05-01",
];
(new DataTransformer($input, [
'first_name' => 'trim|ucfirst',
'last_name' => 'trim|ucfirst',
'phone_number' => 'only_numbers',
'date_of_birth' => 'to_carbon|->format:m/d/y',
]))->transform();
// Returns:
// [
// "first_name" => "Jim",
// "last_name" => "Thompson",
// "phone_number" => "1234567890",
// "date_of_birth" => "05/01/91",
// ]
Ті, хто знайомий з API перевірки Laravel, помітять правила трансформації на основі рядків. Крім того, як видно у фрагменті, цей пакунок має «ланцюговий» синтаксис (to_carbon|->format:m/d/y
), які можуть об’єднувати додаткові виклики для частини даних.
Ви також можете трансформувати дані за допомогою замикань або класу, що реалізує надане трансформується
інтерфейс. Крім того, цей пакет підтримує вкладені масиви даних із використанням крапкової нотації, введення символів узагальнення (застосування функцій до ключів, які відповідають шаблону узагальнення) тощо.
Ви можете дізнатися більше про цей пакет, отримати повні інструкції зі встановлення та переглянути вихідний код на GitHub.