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/