« Programmation PHP avec Symfony/Doctrine » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 361 :
 
Dans cet exemple, on n'utilise pas cache.system pour le cache de résultats pour ne pas saturer le serveur qui héberge le code. cache.app pointe donc vers une autre machine, par exemple Redis, ce qui nécessite un appel réseau supplémentaire, et n'améliore donc pas forcément les performances selon la requête.
 
==== Expressions ====
Pour ajouter une expression en DQL, utilise <code>$qb->expr()</code>. Ex<ref>https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/query-builder.html#the-expr-class</ref> :
* <code>$qb->expr()->count('u.id')</code>
* <code>$qb->expr()->between('u.id', 2, 10)</code> (entre 2 et 10)
* <code>$qb->expr()->gte('u.id', 2)</code> (plus grand ou égal à 2)
* <code>$qb->expr()->like('u.name', '%son')</code>
* <code>$qb->expr()->lower('u.name')</code>
* <code>$qb->expr()->substring('u.name', 0, 1)</code>
 
==== Injection de dépendances ====
Ligne 384 ⟶ 393 :
* Utiliser un trait.
 
== Patrons à copier-coller ==
{{todo|
* Connexion à chaque SGBD Doctrine : MSSQL + GUI Linux, MariaDB, Webdis, MySQL
* Fonctions injectées avec $qb->expr()
* transactional()
}}
 
== Transactions ==
Ligne 587 ⟶ 590 :
# Pas de hints.
# Bug des <code>UNION ALL</code> quand on joint deux entités non liées dans le repo.
 
{{todo|
* Connexion à chaque SGBD Doctrine : MSSQL + GUI Linux, MariaDB, Webdis, MySQL (patrons à copier-coller ?)
* transactional()
}}
 
== Références ==