Приемлемая логика сущности? - PullRequest
0 голосов
/ 18 января 2011

У меня есть две сущности: почта и почта \ версия.Я настроил его так, чтобы управление версиями автоматически осуществлялось в сущности Post, чтобы разработчику не приходилось использовать Post \ Version вручную.Он не использует EntityManager, просто немного размышлений ... это нормально?

<?php

public function setContent($content)
{
    $this->_setVersionValue('content', $content);
}

private function _setVersionValue($property, $value)
{
    // get reflection property
    $version = clone $this->getActiveVersion();
    $refl = new \ReflectionProperty($version, $property);
    $refl->setAccessible(true);

    // update value
    $version->setCreatedBy($this->getCurrentUser());
    $refl->setValue($version, $value);

    // clear ID
    $reflProp = new \ReflectionProperty($version, 'id');
    $reflProp->setAccessible(true);
    $reflProp->setValue($version, null);

    // set to new version
    $this->setActiveVersion($version);
}

В посте хранится только ссылка на последнюю версию.Версии имеют обратную ссылку на сообщение, которому они принадлежат.

Ответы [ 2 ]

1 голос
/ 20 января 2011

Полагаю, Многоразовое поведение с поддержкой версий для Doctrine2 из официального блога значительно облегчает его использованиеТакже легче приспособиться к другим объектам.

PS.И Post, и PostVersion должны находиться в одном и том же пространстве имен (например, MyProject\Entity\Blog)

0 голосов
/ 20 января 2011

Это прекрасно.Конечно, вы всегда должны найти свой собственный рабочий процесс того, как смешивать классы и экземпляры.

...