diff --git a/README b/README index a70824c..22a443a 100644 --- a/README +++ b/README @@ -27,6 +27,7 @@ Sample Configuration propel.config: path: %kernel.root_dir%/../src/vendor/propel phing_path: %kernel.root_dir%/../src/vendor/phing + # charset: "UTF8" propel.dbal: driver: mysql diff --git a/README.markdown b/README.markdown new file mode 100644 index 0000000..68a393d --- /dev/null +++ b/README.markdown @@ -0,0 +1,98 @@ +Propel Bundle +============= + +This is a (work in progress) implementation of Propel in Symfony 2. + +Currently supports: + + * Generation of model classes based on an XML schema (not YAML) placed under `BundleName/Resources/*schema.xml`. + * Runtime autoloading of Propel and generated classes + * Propel runtime initialization through the XML configuration. + +Installation +------------ + + * Checkout Propel and Phing in the src/vendor/ directory + + > cd sandbox/src/vendor + > svn checkout http://svn.propelorm.org/branches/1.5 propel + > svn checkout http://phing.mirror.svn.symfony-project.com/tags/2.3.3/classes/phing phing + +Sample Configuration +-------------------- + +### Project configuration + + # in sandbox/hello/config/config.yml + propel.config: + path: %kernel.root_dir%/../src/vendor/propel + phing_path: %kernel.root_dir%/../src/vendor/phing + # charset: "UTF8" + + propel.dbal: + driver: mysql + user: root + password: null + dsn: mysql:host=localhost;dbname=test + options: {} + # default_connection: default + # connections: + # default: + # driver: mysql + # user: root + # password: null + # dsn: mysql:host=localhost;dbname=test + # options: {} + +### Sample Schema + +Place the following schema in src/Application/HelloBundle/Resources/config/schema.xml: + + + + + + + + + + + + +
+ + + + + +
+ +
+ +### Build Process + +Call the application console with the `propel:build` task: + + > ./hello/console propel:build --classes + +### Use The Model Classes + +Use the Model classes as any other class in Symfony. Just use the correct namespace, and Symfony will autoload them: + + class HelloController extends Controller + { + public function indexAction($name) + { + $author = new \Application\HelloBundle\Model\Author(); + $author->setFirstName($name); + $author->save(); + + return $this->render('HelloBundle:Hello:index', array('name' => $name, 'author' => $author)); + } + } + + +Known Problems +-------------- + +Your application must not be in a path including dots in directory names (i.e. '/Users/me/symfony/2.0/sandbox/' fails).