РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
464 of 1361 menu

Класс CallbackTransformer

Класс CallbackTransformer используется в компоненте Valid для преобразования данных между различными представлениями. Он принимает две callback-функции: первую для прямого преобразования, вторую для обратного. Первый callback вызывается при преобразовании исходного значения, второй - при обратном преобразовании.

Синтаксис

<?php use Symfony\Component\Validator\CallbackTransformer; $transformer = new CallbackTransformer( $transformCallback, $reverseTransformCallback ); ?>

Пример

Давайте создадим трансформер, который переводит строку в верхний регистр и обратно:

<?php namespace App\Service; use Symfony\Component\Validator\CallbackTransformer; class TransformerService { public function transform(): string { $transformer = new CallbackTransformer( fn (string $value): string => strtoupper($value), fn (string $value): string => strtolower($value) ); return $transformer->transform('abcde'); } } ?>

Результат выполнения кода:

"ABCDE"

Пример

Давайте выполним обратное преобразование с помощью метода reverseTransform:

<?php namespace App\Service; use Symfony\Component\Validator\CallbackTransformer; class TransformerService { public function reverseTransform(): string { $transformer = new CallbackTransformer( fn (string $value): string => strtoupper($value), fn (string $value): string => strtolower($value) ); return $transformer->reverseTransform('ABCDE'); } } ?>

Результат выполнения кода:

"abcde"

Пример

Давайте применим трансформер к массиву значений с помощью функции array_map:

<?php namespace App\Service; use Symfony\Component\Validator\CallbackTransformer; class TransformerService { public function transformArray(): array { $transformer = new CallbackTransformer( fn (string $value): string => strtoupper($value), fn (string $value): string => strtolower($value) ); $res = array_map( fn (string $value): string => $transformer->transform($value), ['abcde', 'article', 'user', 'hello'] ); return $res; } } ?>

Результат выполнения кода:

["ABCDE", "ARTICLE", "USER", "HELLO"]

Смотрите также

  • класс Validator,
    который выполняет валидацию объектов
  • метод transform,
    который выполняет прямое преобразование значения
  • метод reverseTransform,
    который выполняет обратное преобразование значения
  • класс Validation,
    который предоставляет точку входа в компонент Valid
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить