germania-kg / databases
1.0.5
2022-03-30 10:03 UTC
Requires
- php: ^5.6|^7.0
- pimple/pimple: ^3.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpunit/dbunit: ^2.0|^3.0
- phpunit/phpunit: ^5.7|^6.0
This package is auto-updated.
Last update: 2024-08-29 04:25:42 UTC
README
Pimple 服务提供者 用于创建 PDO 处理器。
使用 Composer 安装
$ composer require germania-kg/databases
设置
<?php use Germania\Databases\DatabasesServiceProvider; // A. Use with Slim or Pimple $app = new \Slim\App; $dic = $app->getContainer(); $dic = new Pimple\Container; // B. Register Service Provider. // see https://pimple.symfony.com/#extending-a-container // Optionally pass custom PDO error mode $dic->register( new DatabasesServiceProvider ); $dic->register( new DatabasesServiceProvider( \PDO::ERRMODE_EXCEPTION ) );
服务
PDO.Factory
用于 PDO 处理器的工厂调用。只需准备好一些数据库凭证。
<?php $db = [ 'dsn' => "mysql:host=localhost;dbname=MyDatabase;charset=utf8", 'user' => "username", 'pass' => "secret" ]; // Grab Factory $pdo_factory = $dic['PDO.Factory']; // Create handler $pdo = $pdo_factory( $db ); $pdo = $pdo_factory( (object) $db ); // StdClass objects $pdo = $pdo_factory( new \ArrayObject($db) ); // ArrayAccess instance
异常
工厂接受一个 数组,ArrayAccess 实例或一个 StdClass 对象。如果传入的工厂参数不匹配以上任何一种,将抛出 \InvalidArgumentException 异常。
PDO.ErrorMode
默认错误模式已在服务提供者实例化时设置。您可以在运行时通过扩展服务定义来覆盖它。
$dic->extend(PDO.ErrorMode', function($default_error_mode, $dic) { return \PDO::ERRMODE_SILENT; });
PDO.Options
此服务返回在 PDO 处理器实例化时要使用的 PDO 选项。默认情况下,这是一个包含上述 PDO.ErrorMode 的数组。
$pdo_options = $dic['PDO.Options'];
覆盖
只需扩展服务定义。有关有效选项,请参阅 PHP 手册:PDO 类。
$dic->extend('PDO.Options', function($default_options, $dic) { return array_merge( $default_options, array( \PDO::ATTR_ERRMODE => \PDO::ERRMODE_SILENT // custom values here )); });
开发
$ git clone https://github.com/GermaniaKG/Databases.git
$ cd Databases
$ composer install
单元测试
您可以将 phpunit.xml.dist
复制到 phpunit.xml
并根据您的需求进行修改,或者保持原样。运行 PhpUnit 测试或 composer 脚本,例如
$ composer test # or $ vendor/bin/phpunit