csanquer / pdo-service-provider
为 silex 的 PDO 数据库服务提供程序
v1.0.0
2015-10-06 13:48 UTC
Requires
- silex/silex: ~1.3
- symfony/options-resolver: ~2.7
Requires (Dev)
- phpunit/phpunit: ~4.8
README
寻找新的维护者
为 Silex 提供的简单 PDO 服务提供程序
安装
将此包添加到 Composer 依赖配置中
php composer.phar require "csanquer/pdo-service-provider=~1.0"
使用方法
- 仅配置一个数据库
使用 PdoServiceProvider
silex 提供程序
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 https://php.ac.cn/manual/fr/pdo.construct.php 'pdo.options' => array( \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'" ), // optional PDO attributes set with PDO::setAttribute // see https://php.ac.cn/manual/fr/pdo.setattribute.php 'pdo.attributes' => array( \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, ), ) ); // get PDO connection $pdo = $app['pdo'];
- 配置多个数据库
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'];