yiisoft/data-db
最新稳定版本:1.0.0
Composer 安装命令:
composer require yiisoft/data-db
包简介
Database query adapter for Yii Data
README 文档
README
Yii Data DB
The package provides data reader implementation based on Yii DB query and a set of DB-specific filters.
Detailed build statuses:
| RDBMS | Status |
|---|---|
| SQLite | |
| MySQL | |
| PostgreSQL | |
| Microsoft SQL Server | |
| Oracle |
Requirements
- PHP 8.1 - 8.5.
Installation
The package could be installed with Composer:
composer require yiisoft/data-db
General usage
The QueryDataReader wraps a database query to provide a flexible data reading interface:
use Yiisoft\Data\Db\QueryDataReader; use Yiisoft\Data\Reader\Filter\Equals; use Yiisoft\Data\Reader\Filter\GreaterThan; use Yiisoft\Data\Reader\Filter\Like; use Yiisoft\Data\Reader\Filter\AndX; use Yiisoft\Data\Reader\Sort; use Yiisoft\Db\Query\Query; $query = (new Query($db))->from('customer'); $dataReader = new QueryDataReader($query); // Iterate through results foreach ($dataReader->read() as $customer) { // ... process each customer ... } // Read a single record $customer = $dataReader->readOne(); // Get total count $total = $dataReader->count(); // Sorting $sort = Sort::any(['name', 'email'])->withOrderString('-name,email'); $dataReader = $dataReader->withSort($sort); // Filtering $filter = new AndX( new Equals('status', 'active'), new GreaterThan('age', 18), new Like('name', 'John') ); $dataReader = $dataReader->withFilter($filter); // Pagination $dataReader = $dataReader ->withOffset(20) ->withLimit(10);
Field mapping
Map data reader field names to database columns:
use Yiisoft\Data\Db\QueryDataReader; use Yiisoft\Data\Reader\Filter\Equals; $dataReader = new QueryDataReader( query: $query, fieldMapper: [ 'userName' => 'user_name', 'createdAt' => 'created_at', ] ); // Now you can filter and sort by 'userName' and it will use 'user_name' column $filter = new Equals('userName', 'admin');
Batch processing
Process large datasets in batches to reduce memory usage:
use Yiisoft\Data\Db\QueryDataReader; $dataReader = new QueryDataReader($query); $dataReader = $dataReader->withBatchSize(100); foreach ($dataReader->read() as $item) { // Items are fetched in batches of 100 }
Documentation
If you need help or have a question, the Yii Forum is a good place for that. You may also check out other Yii Community Resources.
License
The Yii Data DB is free software. It is released under the terms of the BSD License.
Please see LICENSE for more information.
Maintained by Yii Software.
Support the project
Follow updates
统计信息
- 总下载量: 3.63k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 14
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2021-10-06