Docs Database Connection
Like other parts of Stubbles the RDBMS features IoC support as well. To get a rdbms connection in your application class you just need to get it injected.
Applies to Stubbles 1.0.x: To enable this simply add the binding module net::stubbles::rdbms::ioc::stubDatabaseBindingModule. This will add bindings for database connections as configured.
Applies to versions starting with Stubbles 1.1.0: no special binding module is required, only a configuration in the ini format as described on database configuration.
All you have to do is simply tell the Stubbles IoC mechanism you need a database connection:
<?php class MyAppClass { protected $connection; /** ***constructor * ***@param stubDatabaseConnection $connection ***@Inject ***@Named('connection_id') ***/ public function __construct(stubDatabaseConnection $connection) { $this->connection = $connection; } public function doSomething() { // do some work with connection } } ?>
Here we let the IoC container inject the database connection. By supplying the @Named annotation we can say which connection should be supplied - it should be the same Id as used in the configuration. If no @Named annotation is supplied it will fallback to the connection with the Id default.
Only applies to Stubbles 1.0.x.
The binding module has two optional options for the constructor:
- fallback, defaults to true: if enabled the connection provider will fall back to return the default connection in case the requested connection does not exist. This should not be confused with the fallback if no @Named annotation is provided. The latter fallback is always be available, regardless of this switch.
- descriptor, defaults to rdbms: this can be used to use different configuration files. By default the configuration file projects/$PROJECT/config/xml/rdbms.xml will be used.