У меня есть вопрос из любопытства о внутренней работе Учения2.Я как пользователь вижу действительно чистый и надежный интерфейс, но под капотом должно быть какое-то тяжелое волшебство.
Когда я генерирую простую сущность, она выглядит примерно так:
class SimpleEntity
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string")
*/
protected $title;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set title
*
* @param string $title
*/
public function setTitle($title)
{
$this->title = $title;
}
/**
* Get title
*
* @return string
*/
public function getTitle()
{
return $this->title;
}
}
Как вы заметите, одна вещь явно отсутствует, нет способа установить идентификатор, но тем не менее фабрики доктрин возвращают сущности с установленными идентификаторами.Как это может работать?Я попытался просмотреть источник, но где-то потерял дорожку.
Как можно перезаписать защищенные значения, не входя в иерархию классов?