summaryrefslogtreecommitdiff
path: root/vendor/doctrine/collections/docs/en/lazy-collections.rst
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/doctrine/collections/docs/en/lazy-collections.rst')
-rw-r--r--vendor/doctrine/collections/docs/en/lazy-collections.rst26
1 files changed, 26 insertions, 0 deletions
diff --git a/vendor/doctrine/collections/docs/en/lazy-collections.rst b/vendor/doctrine/collections/docs/en/lazy-collections.rst
new file mode 100644
index 0000000..b9cafb6
--- /dev/null
+++ b/vendor/doctrine/collections/docs/en/lazy-collections.rst
@@ -0,0 +1,26 @@
+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:
+
+.. code-block:: php
+ use 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');
+ }
+ }