jlorente / yii2-helpers
一组具有各种用途的 Yii2 辅助工具
dev-master
2017-02-09 12:21 UTC
This package is auto-updated.
Last update: 2024-09-10 05:47:30 UTC
README
一组具有各种用途的 Yii2 辅助工具
包含的辅助工具
QueryStreamIterator - 为可能占用大量内存的大量查询结果集提供迭代器。
安装
在 bower.json 文件中将包作为依赖项包括在内。
要安装,可以运行
$ php composer.phar require jlorente/yii2-helpers "*"
或添加
... "require": { // ... other configurations ... "jlorente/yii2-helpers": "*" }
到您的 composer.json
文件的 require
部分中。
用法
###QueryStreamIterator
假设您有一个包含 1000000 行的城市表,并且您想遍历所有这些行。执行常规查询时,您将一次性获取 1000000 个结果,内存消耗将增加。
此迭代器允许您将 QueryInterface 对象包装在其中,并遍历整个结果集,但仅同时获取您设定的结果数量。
例如:
use jlorente\helpers\QueryStreamIterator; $cities = new QueryStreamIterator([ 'query' => City::find(), 'dataStreamSize' => 500 ]); foreach ($cities as $city) { echo $city->name . PHP_EOL; }
其中查询属性是 QueryInterface 对象,dataStreamSize 是同时获取的结果数量。您必须考虑,这个数字越高,迭代速度越快,但内存消耗也会越高,反之亦然。
许可协议
版权所有 © 2015 José Lorente Martín jose.lorente.martin@gmail.com。许可协议为 MIT 协议。有关详细信息,请参阅 LICENSE.txt。