Компонент Сериализатор умеет преобразовывать имена свойств при сериализации объектов. Например, он может преобразовывать свойства в форме верблюда, такие как $firstName
, в значения в форме змеи, такие как first_name
.
В более сложных случаях вы можете создать преобразователи имен для произвольного сопоставления имен свойств PHP с сериализованными именами. В Symfony 4.2 мы добавили еще один более простой способ сделать это. Теперь вы можете настроить правила преобразования имен с помощью метаданных, и это работает с аннотациями PHP (@SerializedName
), конфигурацией XML (атрибут serialized-name
) и конфигурацией YAML (ключ serialized_name
).
namespace App\Entity; use Symfony\Component\Serializer\Annotation\SerializedName; class Person { /** @SerializedName("customer_name") */ private $firstName; public function __construct(string $firstName) { $this->firstName = $firstName; } // ... }
Когда этот объект сериализуется, свойство $firstName
будет называться customer_name
вместо first_name
:
$serialized = $serializer->serialize(new Person('Jane')); // {"customer_name": "Jane"}