por Carl Vondrick
Começando com o symfony 1.1, agora é possível usar facilmente o Propel 1.3 no seu projeto e aproveitar as melhorias de velocidade, implementação de modelos encadeados, pooling de instancia de objetos , entre outros. Mais importante, o Propel 1.3 usa PDO ao invés de Creole como DBAL, oferecendo um ganho significativo de performance.
Instalar o Propel 1.3 leva apenas poucos minutos. Tudo que precisa ser feito é instalar um plugin e modificar dois arquivos de configuração. Leia e aprenda como.
Instalar o plugin Propel 1.3 do repositório do symfony:
$ cd /path/to/project/root/ $ svn co http://svn.symfony-project.com/plugins/sfPropelPlugin/branches/1.3/ plugins/sfPropelPlugin
Propel 1.3 usa um novo formato de conexão, então você deve atualizar o
databases.yml
de acordo. Mude oconfig\databases.yml
para casar com o seguinte, fazendo suas mudanças necessárias.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
Para atualizar seu DSN, veja PDO manual.
Devemos atualizar o
propel.ini
para casar com a configuração. Procure pelas 3 linhas no começo do arquivoconfig/propel.ini
e delete elas:[ini propel.database = mysql propel.database.createUrl = mysql://root@localhost/ propel.database.url = mysql://root@localhost/myproject
No seu lugar, coloque o seguinte:
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
Tenha certeza de que
propel.database.url
está igual ao DSN do 2º passoLimpe o cache interno do symfony:
$ symfony cache:clear
O Propel 1.3 tem uma melhoria do modelo de objetos, por isso, devemos gerar novamente os modelos:
$ symfony propel:build-model
Se é um novo projeto, parabéns, você acabou de configurar o Propel 1.3! A sintaxe do schema.yml
é exatamente a mesma do Propel 1.2. A nova API não é radicalmente diferente; de fato, na maior parte, a API é exatamente a mesma;
Se você está atualizando um projeto, você pode ainda ter um pouco de trabalho pela frente, mas você verá que a maior parte do seu projeto vai funcionar. Se você usa transações ou Creole direto no seu código, você terá que atualizar manualmente para PDO. O projeto Propel tem um guia de atualização que guia você pelo processo de atualização. Mesmo que seja um novo projeto, você pode achar útil dar uma olhada nele para aprender sobre todas as novas funcionalidades.
O symfony 1.1 desacoplou seus sistemas internos, então não poderia ser mais fácil usar outra camada de ORM que você queira. Se o Propel não lhe agrada, de uma olhada no sfDoctrinePlugin, que é uma alternativa ao Propel que tem a mesma performance do Propel 1.3.
Graças ao symfony 1.1, os desenvolvedores podem aproveitar o Propel 1.3 para melhorar a performance ou o Propel 1.2 se eles quiserem mais estabilidade.
This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.