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|->формат:м/д/г
), которые могут связывать дополнительные вызовы с фрагментом данных.
Вы также можете преобразовать данные, используя замыкания или класс, реализующий предоставленный трансформируемый
интерфейс. Кроме того, этот пакет поддерживает данные вложенных массивов с использованием точечной записи, вводов с подстановочными знаками (применяет функции к ключам, соответствующим шаблону с подстановочными знаками) и т. д.
Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть исходный код на Гитхабе.