sakib d549324232 moved all the code to trunk area 14 years ago
..
config d549324232 moved all the code to trunk area 14 years ago
data d549324232 moved all the code to trunk area 14 years ago
i18n d549324232 moved all the code to trunk area 14 years ago
lib d549324232 moved all the code to trunk area 14 years ago
web d549324232 moved all the code to trunk area 14 years ago
LICENSE.Agavi d549324232 moved all the code to trunk area 14 years ago
LICENSE.Propel d549324232 moved all the code to trunk area 14 years ago
LICENSE.famfamfam d549324232 moved all the code to trunk area 14 years ago
LICENSE.phing d549324232 moved all the code to trunk area 14 years ago
license d549324232 moved all the code to trunk area 14 years ago
package.xml d549324232 moved all the code to trunk area 14 years ago
readme d549324232 moved all the code to trunk area 14 years ago

readme

sfPropelPlugin (Propel 1.3 for symfony 1.1)
===========================================

The `sfPropelPlugin` is a symfony plugin that provides integration with [Propel](http://propel.phpdb.org/).
Propel is an [Object-Relational Mapping (ORM)](http://en.wikipedia.org/wiki/Object-relational_mapping) framework.
It allows you to access your database using a set of objects, providing a simple API for storing and retrieving data.
The plugin provides a model layer for symfony with tasks for managing the object model and generators for creating crud/admin modules.

Propel allows you, the web application developer, to work with databases in the same way you work with other classes and objects in PHP.

* You don't have to worry about database connections or writing SQL -- unless you want to.
* You never have to worry about escaping data or type-casting results.
* You define your database in a simple XML format (or tell Propel to build it from an existing database) and Propel will create database initialization files for your database and will generate static classes and objects that provide an OO interface to your database. (It can generate other useful things based on the datamodel too!)
* Propel builds classes which are aware of the structure of your database so there's no performance lost to initialization or to on-the-fly database metadata queries.

Installation
------------

* Install the plugin

symfony plugin:install sfPropelPlugin

* Configure databases.yml and propel.ini

config/databases.yml (copy from sfPropelPlugin/config/databases.yml.example)

dev:
propel:
param:
classname: DebugPDO

all:
propel:
class: sfPropelDatabase
param:
classname: PropelPDO
dsn: mysql:dbname=foobar;host=localhost
username: foo
password: bar
encoding: utf8
persistent: true
pooling: true


config/propel.ini (copy from sfPropelPlugin/config/propel.ini.example)

propel.database.driver = mysql
propel.database.url = mysql:dbname=foobar;host=localhost
propel.database.creole.url = ${propel.database.url}
propel.database.user = foo
propel.database.password = bar
propel.output.dir = /path/to/project


* Clear you cache

symfony cc

* Rebuild your object model

symfony propel:build-all

* Clear you cache

symfony cc


Documentation
-------------

* [Upgrading from Propel 1.2 to 1.3](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/Upgrading)
* [Propel Documentation](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3) + [User Guide](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/UserGuide)
* The symfony book on: [model layer](http://www.symfony-project.org/book/1_1/08-Inside-the-Model-Layer), [generators](http://www.symfony-project.org/book/1_1/14-Generators), [i18n](http://www.symfony-project.org/book/1_1/13-I18n-and-L10n) - warning: based on propel 1.2 (but most is valid)
* [Propel Tutorials](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/HowTos)
* [Propel API Documentation](http://propel.phpdb.org/docs/api/1.3/runtime/)

If upgrading see:

* [Transaction syntax has changed in Propel 1.3](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/Upgrading#NewTransactionAPI)
* [Out with RecordSet, in with Statements](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/Upgrading#NewPropelMethodSignatures)
* [Custom SQL API has changed](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/Upgrading#GeneralDBAPIChanges)
* [DateTime handling](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/Upgrading#Much-ImprovedDateTimeHandling)


TODO
----

* Add master/slave support for config
* Add query timing + better logging


1.3.0-PRE
---------

* dwhittle: initial release