sammaye / yii2-pq
A paged query class for Yii2 to deal with PHP7 changed in mysqlnd
Installs: 53 948
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 3
Open Issues: 0
Type:yii2-extension
pkg:composer/sammaye/yii2-pq
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2025-10-26 02:04:24 UTC
README
A paged query class for Yii2 to deal with PHP7 changes in mysqlnd
It will load your result set the same way as pagination works using OFFSET and LIMIT.
This extension is 99% for MySQL users.
Installation
Just include it in your composer:
php composer require "sammaye/yii2-pq":"~1.0.0"
Usage
$query = (new \sammaye\pq\Query)
->from(Title::tableName())
->where('live=1')
->limit(300)
->orderBy(['id' => SORT_DESC]);
foreach($query->each() as $k => $v){
And it will return in batches of 100 up to 300.
As you can see there is not much to learn about this extension except how to include it.
Note: There is no active record part to this query currently due to the
nature of PHP class inheritance and inclusion which means I would have to copy the ActiveQuery entirely.
Why?
I noticed that many of my cronjobs failed after an upgrade to PHP7. It was not long before I realised that there were two changes since PHP5.4:
- The default MySQL driver used by PHP7 has changed to mysqlnd
- And, mysqlnd now adds your result sets to it's own memory, buffering queries
Added to that, my own observations that unbuffered queries suck meant that I created this.