csanquer/pdo-service-provider

a PDO database service provider for silex

Installs: 1 052

Dependents: 0

Stars: 9

Watchers: 1

Forks: 3

Open Issues: 1

Language: PHP

v0.7.0 2015-05-31 12:48 UTC

README

Latest Stable Version Latest Unstable Version Build Status Code Coverage Scrutinizer Code Quality SensioLabsInsight

Dependency Status Project Status License Daily Downloads Monthly Downloads Total Downloads

a Simple PDO service provider for Silex

Installation

add this package to Composer dependencies configuration:

php composer.phar require "csanquer/pdo-silex-provider=~0.5"

Usage

  • Configure only one database

use the PdoServiceProvider silex provider :

use Csanquer\Silex\PdoServiceProvider\Provider\PdoServiceProvider;
use Silex\Application;

$app = new Application();
$app->register(
    // you can customize services and options prefix with the provider first argument (default = 'pdo')
    new PdoServiceProvider('pdo'),
    array(
        'pdo.server'   => array(
            // PDO driver to use among : mysql, pgsql , oracle, mssql, sqlite, dblib
            'driver'   => 'mysql',
            'host'     => 'mysql',
            'dbname'   => 'rfactori',
            'port'     => 3306,
            'user'     => 'ger',
            'password' => 'GER',
        ),
        // optional PDO attributes used in PDO constructor 4th argument driver_options
        // some PDO attributes can be used only as PDO driver_options
        // see http://www.php.net/manual/fr/pdo.construct.php
        'pdo.options' => array(
            \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
        ),
        // optional PDO attributes set with PDO::setAttribute
        // see http://www.php.net/manual/fr/pdo.setattribute.php
        'pdo.attributes' => array(
            \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
        ),
    )
);

// get PDO connection
$pdo = $app['pdo'];
  • Configure several databases
use Csanquer\Silex\PdoServiceProvider\Provider\PdoServiceProvider;
use Silex\Application;

$app = new Application();
$app->register(
    // use custom prefix for service and options
    // first PDO connection
    new PdoServiceProvider('pdo.db1'),
    array(
        // use previous custom prefix pdo.db1
        'pdo.db1.server' => array(
            // PDO driver to use among : mysql, pgsql , oracle, mssql, sqlite, dblib
            'driver'   => 'mysql',
            'host'     => '127.0.0.1',
            'dbname'   => 'db1',
            'port'     => 3306,
            'user'     => 'username',
            'password' => 'password',
        ),
        // optional PDO attributes used in PDO constructor 4th argument driver_options 
        'pdo.db1.options' => array(
            \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
        ),
        // optional PDO attributes set with PDO::setAttribute
        'pdo.db1.attributes' => array(
            \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
        ),
    )
);

$app->register(
    // second PDO connection
    new PdoServiceProvider('pdo.db2'),
    array(
        'pdo.db2.server' => array(
            'driver' => 'sqlite',
            'path' => 'var/db/db2.sqlite',
        ),
    )
);

// get PDO connections
$db1Pdo = $app['pdo.db1'];
$db2Pdo = $app['pdo.db2'];