![]() |
|
The symfony CookbookPropel 1.3 használata symfony 1.1 alatt |
|

You are currently reading "The symfony Cookbook" which is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.
|
This work is licensed under a
Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Translation of this work into another language is explicitly allowed. |
í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.
If you find a typo or an error, please register and open a ticket.
If you need support or have a technical question, please post to the user mailing-list or to the forum.