автор: Carl Vondrick
Начинаясь с symfony 1.1, теперь возможно легко использовать Propel 1.3 в вашем проекте, используя в своих интересах его усовершенствования скорости, реализацию вложенных множеств, кэширование объектов и многое другое. Наиболее важно то, что Propel 1.3 использует PDO вместо Creole как DBAL, предлагая существенное увеличение производительности.
Установка Propel 1.3 занимает всего несколько минут. Все, что Вы должны сделать, это установить плагин и измененить два файла конфигурации. Читайте далее, чтобы узнать как.
Устанавите плагин Propel 1.3 из репозитария symfony:
$ cd /path/to/project/root/ $ svn co http://svn.symfony-project.com/plugins/sfPropelPlugin/branches/1.3/plugins/sfPropelPlugin
Propel 1.3 использует новый формат подключения и таким образом Вы должны соответственно обновить
databases.yml
. Изменитеconfig/databases.yml
, чтобы соответствовать нижеследующему примеру, внеся ваши собственные необходимые изменения:dev: propel: param: classname: DebugPDO all: propel: class: sfPropelDatabase param: dsn: mysql:dbname=mydb;host=localhost username: username password: password encoding: utf8 persistent: true pooling: false classname: PropelPDO
Для обновления DSN прочтите документацию PDO.
Мы должны обновить
propel.ini
, чтобы соответствовать той же самой конфигурации. Найдите три строки в началеconfig/propel.ini
и удалите их:propel.database = mysql propel.database.createUrl = mysql://root@localhost/ propel.database.url = mysql://root@localhost/myproject
Вместо них вставьте следующее:
propel.database = mysql propel.database.driver = mysql propel.database.createUrl = mysql://localhost/ propel.database.url = mysql:dbname=mydb;host=localhost propel.database.user = username propel.database.password = password propel.database.encoding = utf8
Убедитесь, что
propel.database.url
соответствует DSN в шаге 2.Очистите внутренний кэш symfony:
$ symfony cache:clear
Propel 1.3 имеет улучшенную модель объекта, таким образом мы должны перестроить модели:
$ symfony propel:build-model
Если это Ваш новый проект, то поздравляю, Вы только что установили Propel 1.3 ! Синтаксис файла schema.yml
остался точно таким же, как и в Propel 1.2. Новый API не радикально отличен; фактически, в основном, API остался тем же.
Если Вы модернизируете существующий проект, то возможно у Вас есть еще немного работы, но Вы обнаружите, что большая часть вашего проекта будет работать. Если Вы используете транзакции или функции Creole непосредственно в вашем коде, Вы должны будете вручную перписать код на работу с PDO. Проект Propel имеет полезное руководство по обновлению, которое проведет Вас через процесс обновления. Даже если это Ваш новый проект, то Вам будет полезно поглядеть на это, чтобы узнать обо всех новых возможностях.
Система symfony 1.1 расщепляет своё ядро, таким образом , что Вы с лёгкостью можете использовать любую ORM, какую Вы захотите. Если Propel, не устраивает Вас, попробуйте sfDoctrinePlugin, который является альтернативой Propel и совпадает по производительности с Propel 1.3. Благодаря symfony 1.1, разработчики могут наслаждаться либо улучшенной производительностью Propel 1.3 либо, если необходимо, железной стабильностью и надёжностью Propel 1.2.
This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.