soluble / dbwrapper
通用极简数据库包装器
2.0.0
2019-01-03 22:13 UTC
Requires
- php: ^7.1
- ext-pdo: *
Requires (Dev)
- captainhook/plugin-composer: ^3.0
- doctrine/common: >=2.5.0|<3.0.0
- doctrine/dbal: >=2.5.0|<3.0.0
- friendsofphp/php-cs-fixer: ^2.11
- illuminate/database: >=4.0.0|<6.0.0
- phpstan/phpstan: ^0.10.5
- phpstan/phpstan-phpunit: ^0.10
- phpstan/phpstan-strict-rules: ^0.10.1
- phpunit/phpunit: ^7.5
- zendframework/zend-db: >=2.2.0|<3.0.0
README
介绍
极简(但通用)的数据库包装器,一统江湖(且无需选择)。
特性
- 提供通用的API来处理各种实现之间的数据库访问。
- 轻量级,框架自适应且无关。
- 原生支持
mysqli
、pdo_mysql
、pdo_sqlite
驱动。 - 支持
zend-db
、laravel
和doctrine
的桥接实现。- 访问Oracle、SQL-Server、PostgreSql、...
- 允许开发数据库可移植库。
- 遵循soluble编程标准。
要求
- PHP 7.1可选扩展ext-mysqli/PDO
对于PHP 5.6+、7.0+或HHVM >= 3.9,请查看1.3版本。对于PHP < 5.6,请使用1.2版本
文档
安装
通过composer快速安装。
$ composer require soluble/dbwrapper
快速入门
连接
从现有的Mysqli连接创建适配器
<?php use Soluble\DbWrapper; $conn = new \mysqli($hostname,$username,$password,$database); $conn->set_charset($charset); $adapter = DbWrapper\AdapterFactory::createAdapterFromResource($conn);
查询数据库
执行SQL
<?php $results = $adapter->query("select * from my_table"); foreach($results as $result) { echo $result['my_column']; }
获取连接信息
执行SQL
<?php $connection = $adapter->getConnection(); echo $connection->getCurrentSchema(); echo $connection->getHost(); $resource = $connection->getResource();
API方法
AdapterFactory
DbWrapper\AdapterFactory
允许从现有的连接链接或资源实例化适配器。
AdapterInterface
DbWrapper\Adapter\AdapterInterface
提供对数据库的常见操作。
Resultset
DbWrapper\Result\Resultset
可以通过简单的foreach循环轻松迭代。此外,您还可以调用以下方法
ConnectionInterface
DbWrapper\Connection\ConnectionInterface
提供有关您连接的信息
支持的数据库
原生
soluble/dbwrapper
原生支持
例如,请参阅原生驱动文档
用户域实现
一些支持的数据库可以是(不完整的列表)
例如,请参阅用户域驱动文档
动机
最初开发soluble/dbwrapper
的原因是为了获取一个可靠且轻量级的库,用于抽象PDO_mysql
和mysqli
驱动接口。
后来,在开发一些库的过程中,我感到需要一些更框架无关的东西,但仍可以轻松集成到任何现代框架中。诞生了用户域驱动器的想法。
贡献
欢迎贡献和pull请求,请参阅贡献指南