Skip to content
Caution: You are browsing the legacy symfony 1.x part of this website.

Propel 1.3 használata symfony 1.1 alatt

Symfony version
Language

írta Carl Vondrick

Symfony 1.1-es projektekben egyszerűen használhatunk Propel 1.3-t, kihasználva az új verzió nyújtotta előnyöket: sebesség javulás, nested set implementáció, object pooling, stb. A legfontosabb változás, hogy a Propel 1.3 PDO-t használ absztrakció rétegként Creole helyett, ami jelentős teljesítmény-növekedést jelent.

A telepítés csak néhány percet vesz igénybe. Csupán egy plugin telepítésről és két konfigurációs file módosításáról van szó. Lássuk hogyan.

  • Propel 1.3 telepítése a symfony repository-ból:

    $ cd /path/to/project/root/
    $ svn co http://svn.symfony-project.com/plugins/sfPropelPlugin/branches/1.3/ plugins/sfPropelPlugin
    
  • a Propel 1.3 új csatlakozási formátumot használ, ezért frissíteni kell a databases.yml filet. Változtassuk meg a config/databases.yml tartalmát a következőkre:

    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

    A DSN frissítéséhez segítséget nyújt a PDO manual.

  • Frissítenünk kell a propel.ini-t is. A config/propel.ini file következő sorait kell törölni:

    propel.database            = mysql
    propel.database.createUrl  = mysql://root@localhost/
    propel.database.url        = mysql://root@localhost/myproject

    A helyükbe pedig a következőket kell beilleszteni:

    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

    Ellenőrizzük, hogy a propel.database.url megegyezik a második lépésben megadott DSN-nel.

  • Töröljük a cache-t:

    $ symfony cache:clear
    
  • A Propel 1.3 javított objektum modelt használ, ezért újra kell generálni a modeleket:

    $ symfony propel:build-model
    

Ha egy új projektről van szó már készen is vagyunk. A schema.yml szintaxis teljesen megegyezis a Propel 1.2-vel. Az új API radikális változást nem hoz, a legtöbb eset teljesen megegyezik a korábbival.

Ha egy létező projektet frissítettünk, még szükség van némi plusz munkára, de az alkalmazás legnagyobb része valószínüleg továbbra is hiba nélkül fog működni. Ha használunk tranzakciókat vagy közvetlenül Creole-t, akkor azt kézzel kell átállítani PDO alapokra. A Propel projektnek létezik egy, a frissítés leírását tartalmazó oldala, amely végigvezet az egész procedúrán. Új projekt esetén is hasznos áttanulmányozni, itt megismerkedhetünk az új funkciókkal.

A symfony 1.1 különválasztotta az alap rendszert, így bármilyen ORM réteg használható vele. Ha a Propel nem megfelelő, kipróbálhatjuk az sfDoctrinePlugin-t is, egy Propel alternatívát, ami a Propel 1.3 teljesítményét hozza. A symfony 1.1-nek köszönhetően a fejlesztők élvezhetik a Propel 1.3 jobb teljesítményét, vagy a Propel 1.2 sziklaszilárd stabilitását.

This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.