I have configured JMS Serializer like this:
jms_serializer:
visitors:
xml_serialization:
format_output: '%kernel.debug%'
metadata:
auto_detection: true
directories:
App:
namespace_prefix: "App\\Entity"
path: "%kernel.root_dir%/serializer"
This is how metadata config in src/serializer/SystemUser.yml looks like for entity SystemUser:
App\Entity\Api\Auth\SystemUser:
exclusion_policy: ALL
properties:
id:
expose: true
password:
expose: false
username:
expose: true
email:
expose: true
last_login:
expose: true
I specifically used .yml extension because it is mentioned in the documentation that .yml extension must be used here:
https://jmsyst.com/bundles/JMSSerializerBundle/2.x/configuration#defining-metadata
I have entity in src/Entity/Api/Auth/SystemUser.php that looks like this:
<?php
namespace App\Entity\Api\Auth;
use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class SystemUser extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
public function __construct()
{
parent::__construct();
// your own logic
}
}
But whatever property I exclude in SystemUser.yml file the output does not changes. It displays all properties.
I am using latest Symfony 4.3