summaryrefslogtreecommitdiff
path: root/vendor/doctrine/collections/docs/en/lazy-collections.rst
diff options
context:
space:
mode:
authorDevian <devianleong@gmail.com>2021-04-22 17:03:46 +0800
committerDevian <devianleong@gmail.com>2021-04-22 17:03:46 +0800
commit745cf2431a71d0e6c5f08f8605839279b2f7496e (patch)
tree11e4c7a19ac9f9efc1bb253b29b1fa488c34238e /vendor/doctrine/collections/docs/en/lazy-collections.rst
Initiate commit
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');
+ }
+ }