Updated README
This commit is contained in:
parent
3ca3404d44
commit
a603db2dc2
1
README
1
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
|
||||
|
|
98
README.markdown
Normal file
98
README.markdown
Normal file
|
@ -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:
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<database name="default" namespace="Application\HelloBundle\Model" defaultIdMethod="native">
|
||||
|
||||
<table name="book">
|
||||
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" />
|
||||
<column name="title" type="varchar" primaryString="1" size="100" />
|
||||
<column name="ISBN" type="varchar" size="20" />
|
||||
<column name="author_id" type="integer" />
|
||||
<foreign-key foreignTable="author">
|
||||
<reference local="author_id" foreign="id" />
|
||||
</foreign-key>
|
||||
</table>
|
||||
|
||||
<table name="author">
|
||||
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" />
|
||||
<column name="first_name" type="varchar" size="100" />
|
||||
<column name="last_name" type="varchar" size="100" />
|
||||
</table>
|
||||
|
||||
</database>
|
||||
|
||||
### 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).
|
Loading…
Reference in a new issue