Компонент Сериализатор умеет преобразовывать имена свойств при сериализации объектов. Например, он может преобразовывать свойства в форме верблюда, такие как $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"}