• Czas czytania ~1 min
  • 04.12.2022

Transformer to pakiet PHP do oczyszczania i formatowania danych obsługiwany przez komponenty walidacyjne Laravel. Pakiet wykorzystuje znajomą składnię podobną do walidacji Laravel do przekształcania danych za pomocą wywoływalnych funkcji, klas i nie tylko:

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",
// ]

Osoby zaznajomione z interfejsem API do walidacji Laravela zauważą reguły transformatora oparte na łańcuchach. Ponadto, jak widać we fragmencie, ten pakiet ma składnię „łańcuchową” (to_carbon|->format:m/d/y), które mogą łączyć dodatkowe wywołania na fragmencie danych.

Możesz także przekształcać dane za pomocą domknięć lub klasy implementującej podane przekształcalny interfejs. Ponadto ten pakiet obsługuje zagnieżdżone dane tablicowe przy użyciu notacji kropkowej, wprowadzania symboli wieloznacznych (zastosowanie funkcji na klawiszach pasujących do wzorca symboli wieloznacznych) i nie tylko.

Możesz dowiedzieć się więcej o tym pakiecie, uzyskać pełne instrukcje instalacji i wyświetlić plik kod źródłowy na GitHubie.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297