2009-12-02 6 views

ответ

8

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

symfony generate:project xxx --orm=Propel 

Проще всего :)

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

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

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

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

+2

BTW, если вы начинаете новый проект, я ** настоятельно рекомендую Учение. Лучше. –

+1

Я согласен с Томашем. Не используйте Propel. –

+3

и Priidik: по крайней мере, пожалуйста, дайте несколько аргументов, ссылок и т. Д., Чтобы точно объяснить, почему Доктрина лучше, чем Propel (однако после более чем одного года аргументы, безусловно, изменились ...). –

5

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

5

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

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

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

+0

спасибо! Да! верный. –

1

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