Propel è un tool php molto interessante che permette di fare quello che fa Hibernate in java : object persistence services; per farlo funzionare non è facile in quanto usando il pacchetto gentoo non è aggiornatissimo ed essendo molto giovane è un sistema che cambia continuamente e risolve molti bug ogni giorno. Procediamo per ordine:
1. Smaskeramento pacchetti
dev-php5/creole
dev-php5/jargon
dev-php5/propel
dev-php5/propel-generator
dev-php5/propel-runtime
dev-php5/phing
2. Installazione
emerge propel
3. Aggiornamento file (un backup dei file non è una cattiva idea)
cd /tmp svn co http://svn.phpdb.org/propel/trunk cp /tmp/trunk/generator/templates/om/php5/Peer.tpl /usr/share/php5/data/propel_generator/templates/om/php5 cp /tmp/trunk/generator/templates/conf/Control.tpl /usr/share/php5/data/propel_generator/templates/conf/Control.tpl
4. Creazione del file di configurazione
mkdir /usr/share/php5/data/propel_generator/project/[project_name] cd /usr/share/php5/data/propel_generator/project/[project_name] cp /usr/share/php5/data/propel_generator/build-propel.xml . cp /usr/share/php5/data/propel_generator/default.properties .
Ora creare i seguenti file :
[build.properties]
The name of the project
propel.project = [project_name]
The database driver
propel.database = mysql propel.database.url = mysql://username:password@localhost/database_name
serve senno cerca di scriver in ./project e non va bene!!
propel.home = /usr/share/php5/data/propel_generator/ [runtime-conf.xml] … vedi http://propel.phpdb.org/trac/wiki/Users/Documentation/QuickStart#4 ….
5. eseguire propel nel modo corretto
5a. se non si ha uno schema.xml lo si puo creare con phing
phing -Dproject=bookstore -f build-propel.xml creole
5b. generare le classi php
propel-gen /usr/share/php5/data/propel_generator/projects/bookstore/