From 926bd483e02f011752e5d3d2850f48708f01cc3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= <postmaster@greg0ire.fr> Date: Sat, 3 Mar 2018 20:32:29 +0100 Subject: [PATCH] Add slides about collections and relationships --- index.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/index.md b/index.md index 8f776da..fa318b6 100644 --- a/index.md +++ b/index.md @@ -279,6 +279,35 @@ final class DoctrineGetLatestArticles implements GetLatestArticles Note: - Tout de suite beaucoup plus simple à réimplémenter en elasticsearch +--- +# Les collections + +- elles permettent à Doctrine de repérer les changements +- elles permettent à Doctrine de faire du lazy-loading +- vous pouvez les éviter en type hintant `iterable` et en utilisant un tableau + pour les initialiser. +- si une collection comporte énormément d'éléments, c'est probablement une + relation à faire sauter + +--- +# Faire une jointure avec une relation uni-directionnelle + +```php +$queryBuilder + ->select('a.*') + ->from(Article::class) + ->innerJoin(Comment::class, 'c', Expr\Join::WITH, 'c.article_id = a.id') + ->where("c.content LIKE '%Doctrine%'") + ->getQuery() + ->getResults(); +``` + +Note: +- utile si on a besoin de rajouter des conditions sans nécessiter d'hydrater + des objets de la classe jointe. + + + --- # Emoji test -- GitLab