Переключите Symfony 1.4 с Doctrine на Propel - PullRequest
6 голосов
/ 02 декабря 2009

Как правильно переключить недавно установленную платформу Symfony 1.4 с Doctrine (для которой она настроена по умолчанию) на Propel?

Ответы [ 4 ]

8 голосов
/ 03 декабря 2009

Если вы создаете новый (свежий) проект ...

symfony generate:project xxx --orm=Propel

Самая простая вещь:)

Если вы хотите изменить существующий проект - вам нужно покопаться в файле конфигурации и включить плагин propel.

Ваш файл конфигурации должен выглядеть примерно так:

// config/ProjectConfiguration.class.php
public function setup()
{
  $this->enablePlugins('sfPropelPlugin');
  ...
}

(основываясь на странице Symfony, вы должны копать ее в следующий раз, особенно Практическая Symfony )

5 голосов
/ 20 сентября 2010

Если вам нравятся вызовы метода связанных объектов, которые выглядят как операторы SQL, используйте Doctrine. Если вам нравятся реальные объекты, которые скрывают SQL, используйте Propel.

Если вам нравится создавать объекты критериев, которые затем отображаются как предложения WHERE, используйте Propel. Если вам нравится создавать предложения WHERE, подобные SQL, используйте Doctrine.

Вы можете использовать оба одновременно. Не рекомендуется, но если вы используете плагины, такие как апостроф, которые используют только Doctrine, у вас может не быть выбора.

5 голосов
/ 06 января 2010

Используйте Propel, если вам нравится объектно-ориентированный синтаксис.

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

Отвечая на вопросы авторов, которые полностью рекомендуют Doctrine: решение, на мой взгляд, не является четким. Propel теперь также поддерживает цепочечные методы запросов, поэтому, если вам нравится такой подход, оба они все еще в игре. Кроме того, команда Propel утверждает, что сгенерированный характер объектов модели делает его более быстрым в большинстве случаев, чем Doctrine.

...