Какие свойства должны быть сериализованы/десериализованы в пользовательском классе Symfony 2?

Какие свойства (и почему )должны быть включены в методы serialize()и deserialize()в Symfony 2?

На данный момент у меня есть поле id, и оно просто работает, но я хотел бы знать, почему и какова цель serialize()в классе User. чтобы избежать этого сообщения:

You cannot refresh a user from the EntityUserProvider that does not contain an identifier. The user object has to be serialized with its own identifier mapped by Doctrine.

Class User implements AdvancedUserInterface, \Serializable
{
    /**
     * @return string
     */
    public function serialize()
    {
      return serialize($this->id);
    }

    /**
     * @param string $data
     */
    public function unserialize($data)
    {
      $this->id = unserialize($data);
    }
}

Хотя без реализации \Serializableи со всеми свойствами protectedя получаю:

Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken::serialize() must return a string or NULL.

6
задан Benjamin 1 September 2012 в 10:52
поделиться