You are browsing a version that has not yet been released.

Lazy Collections

To create a lazy collection you can extend the Doctrine\Common\Collections\AbstractLazyCollection class and define the doInitialize method. Here is an example where we lazily query the database for a collection of user records:

1use Doctrine\DBAL\Connection; class UsersLazyCollection extends AbstractLazyCollection { /** @var Connection */ private $connection; public function __construct(Connection $connection) { $this->connection = $connection; } protected function doInitialize() : void { $this->collection = $this->connection->fetchAll('SELECT * FROM users'); } }
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17