Bonjour à tous !
Je viens de développer un très gros projet sur Symfony 2. Dans ce projet, j'utilise (avec Doctrine 2) beaucoup de relations OneToOne, ManyToone, ManyToMany uni ou bidirectionnelle car super pratique ensuite de récupérer les variables dans la partie Vue (Twig).
Pour trier mes listes d'objets (par exemple trier mes objets "actualités" par date, ces "actualités" sont apparenté aux actualités facebook), je fais aussi souvent appel à un itérateur sur mes ArrayCollection dans mes contrôleurs comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 foreach($user->getInfos()->getFollowings() as $fol) { foreach($fol->getActus() as $a) { $actus[] = $a; } } $iter = $actus->getIterator(); $iter->uasort(function($a, $b) { $name_a = (int)$a->getDate()->getTimestamp(); $name_b = (int)$b->getDate()->getTimestamp(); return $name_a == $name_b ? 0 : $name_a < $name_b ? 1 : - 1; });
Bref, tout ça marche à merveille et c'est vraiment magique pour de gros projets complexes comme le mien, cependant je me pose une question (peut être un peu tard vu qu'on est en phase de test), c'est au niveau performance !
Dans un objet "Commentaire par exemple" j'ai une relation ManyToOne avec un User (normal, un utilisateur fait un ou plusieurs commentaires...) et donc dans Twig avec la magie de ces relations j'ai accés à la variable "user" comme ceci {{ comment.user }} mais à travers cette variable, j'ai accès à toutes les informations de l'user en question (tous les commentaires, les articles, etc. qu'il possède)
Pour l'instant le site marche très bien sachant que nous sommes 2 utilisateurs. Mais lorsque que ce site sera ouvert au public va-t-il demander un serveur ultra performant ? pour le moment j'administre un VPS chez OVH (la plus petite formule) mais j'ai vraiment peur qu'il ne tienne pas la charge ?
Qqn a-t-il déjà fait un gros projet sur Symfony / Doctrine 2 ? En appelant les consultants de Sensio labs, j'ai cru comprendre que sur de gros projet, l'ORM était débranché :-/ donc ça veut dire que je devrais absolument tout redévelopper ?
Si qqn s'y connait un peu mieux ou peut m'éclairer sur un moyen de tester tout ce bazard avant la mise en ligne ça serait génial !
Merci à tous
PS: je sortirai bientôt mon blog, j'y mettrais dedans toute mes découvertes autour de Symfony 2 (y'en a eu énormément depuis le début de mon projet) et j'ai fait pas mal de bout de code qui pourront servir à d'autres projets !
Partager