jlorente/yii2-helpers

一组具有各种用途的 Yii2 辅助工具

安装: 54

依赖者: 1

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

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。