Специфические функции в Symfony2 - PullRequest
0 голосов
/ 24 сентября 2011

В моем проекте Symfony2 у меня есть ModelBundle, в котором хранятся мои сущности и другие пакеты для внешнего интерфейса, бэкэнда и т. Д., В которых используется этот ModelBundle.

У меня есть пара специфичных для модели функций, которые выполняют некоторые специфичные для сущности задачи. Куда мне их положить?

  1. Должен ли я создать отдельную папку 'model' рядом с моей папкой Entity, и положить все эти функции там?
  2. Создать ли в моем ModelBundle контроллер, содержащий эти функционирует как действия? Это может быть странно, так как контроллеры в моем возьми, возьми HTTP-запросы и верни HTTP-ответ, так что это не применимо в этом контексте.
  3. Разве я помещаю их в сами классы сущностей? Это приятно? И есть ли шанс, что они будут перезаписаны, когда я перегенерирую мой ORM?
  4. Я ищу нестандартные репозитории? Я могу сделать их и положить в папку «модель» или что-то в этом роде. http://www.doctrine -project.org / документы / ОРМ / 2,0 / ы / ссылки / рабочая-с objects.html # Таможней хранилища

P.S .: Я люблю Symfony2, но я буду очень счастлив, когда у каждого будет определенный набор лучших практик для фреймворка: -)

1 Ответ

1 голос
/ 24 сентября 2011

Было бы полезно узнать, какой тип специфичных для модели функций вы планируете писать.

Если функциональность предназначена для сущности, которую вы уже извлекли из базы данных, она принадлежит классу сущностей..

Если функциональность связана с поиском сущности или группы сущностей на основе определенных критериев, она относится к пользовательскому классу хранилища.

Я не фанат этой моделиклассы и классы сущностей должны быть разными.ИМХО, это ненужный уровень абстракции.

Вы правы, считая, что эта функция не принадлежит контроллеру.

Если вы используете пользовательские репозитории, я предлагаю оставить их либо в папке «Entity», либопапка "Репозиторий".Я лично держу себя в «Сущности», но это, вероятно, побочный эффект от использования Доктрины 1 так долго и привыкания к классам «Таблицы».

Надеюсь, это поможет, но если у вас есть какие-либо вопросы, пожалуйста,опубликуйте более подробную информацию о том, чего вы хотите достичь.

...