The PropelServiceProvider provides integration with Propel.
propel.path (optional): The path in which Propel.php will be found. Usually, for PEAR installation, it is
propelwhile for Git installation it is
vendor/propel/runtime/lib. Default is
propel.config_file (optional): The name of Propel configuration file with full path. Default is
propel.model_path (optional): Path to where model classes are located. Default is
It's strongly recommanded to use absolute paths for previous options.
No service is provided.
Propel configures and manages itself by using static methods, so no service is registered into Application. Actually, the PropelServiceProvider class initializes Propel in a more "Silex-ian" way.
Make sure you place a copy of Propel in
vendor/propel or install it through PEAR, or Composer.
For more informations consult the Propel documentation:
<?php $app['propel.config_file'] = __DIR__.'/path/to/myproject-conf.php'; $app['propel.model_path'] = __DIR__.'/path/to/model/classes'; $app->register(new Propel\Silex\PropelServiceProvider());
Alternatively, if you 've installed Propel by Git in
you built your model with default Propel generator options:
<?php $app->register(new Propel\Silex\PropelServiceProvider());
We can consider "default" Propel generator options:
schema.xmlfiles into the main directory project, usually where file
build.propertiesfile, define only
You'll have to build the model by yourself. According to Propel documentation, you'll need three files:
schema.xmlwhich contains your database schema;
build.propertiesmore information below;
runtime-conf.xmlwhich contains the database configuration.
propel-gen script to create all files (SQL, configuration, Model classes).
By default, the PropelServiceProvider relies on the Silex autoloader you have to configure to load
model classes. Of course, the Silex autoloader needs the model to be built with namespaces,
so be sure to set this property into the
propel.namespace.autopackage = true The recommended configuration for your `build.properties` file is: propel.project = <project_name> propel.namespace.autoPackage = true propel.packageObjectModel = true # Enable full use of the DateTime class. # Setting this to true means that getter methods for date/time/timestamp # columns will return a DateTime object when the default format is empty. propel.useDateTimeClass = true # Specify a custom DateTime subclass that you wish to have Propel use # for temporal values. propel.dateTimeClass = DateTime # These are the default formats that will be used when fetching values from # temporal columns in Propel. You can always specify these when calling the # methods directly, but for methods like getByName() it is nice to change # the defaults. # To have these methods return DateTime objects instead, you should set these # to empty values propel.defaultTimeStampFormat = propel.defaultTimeFormat = propel.defaultDateFormat =
If you plan to build your model without using namespaces, you need to force Propel to use
its internal autoloader. Do this by setting the option
For more information, consult the Propel documentation.