Je viens pour raler un peu. J'ai appris à coder en MVC sur php à partir de cakephp 2, puis 3.
Aujourd'hui, j'essaye de me mettre à symfony, parce que des que je parle de cakephp à un recruteur.. il me regarde comme si j'étais un témon de Jéhovah..
Et bordel.. qu'est ce que je le trouve naze ce framework !! alors dans le désordre :
Pas de documentation en Français.. pour un framework Français.
Le délire de coder dans des lignes de commentaires.. qui a eu cette idée ? (vous allez me dire qu'on est pas obligé de l'utiliser, mais la version xml ou php du même code est bien trop verbeux)
Pas de système de pagination intégré nativement.. sérieusement ?
La séparation entre entity, manager, et repository. Pourquoi faire simple quand on peut faire compliqué.
L'injection de dépendance dans les fonctions, qui fait des choses magiques, mais contre-intuitif.
L'ORM qui a l'air d'une usine à gaz.. j'essaye de retranscrire du code cakephp en symfony, ça me prend 3 fois plus de codes.
Le problème N+1 soulevé dans la formation.. je suis tombé de ma chaise en voyant le comportent natif de l'ORM à ce niveau là.
De manière générale, j'ai des fonctionnalités "basiques" sur cakephp, que je ne trouve nulle part dans symfony, exemple : je cherche à joindre une table à un parent, avec une clé étrangère (du genre parent_id), et un type (du genre article, commentaire, ou user), pour avoir une table enfant générique qui peut être liée à un parent, avec un id et un type. C'est utile, par exemple, pour créer un système de commentaire, qui sera lié à n'importe quelle table de la BDD.. et bien.. j'ai rien trouvé pour faire ça nativement.
De même pour le "countercache" de cakephp qui permet de sauvegarder dans le parent, le nombre d'enfant, très pratique.Devoir à chaque fois préciser quel fichier de vue on veut utiliser pour rendre une page.. C'est stupide. Pourquoi il ne va pas chercher automatiquement une vue qui porte le nom de la fonction ?
Dans cakephp, les controller héritent de Appcontroller, qui lui hérite de Controller. C'est très pratique pour définir un comportement de base à exécuter quelque soit l'action de n'importe quel Controller. Quel est l'équivalent ici ?
Le système de validation des données, avec des annotations dans l'entity.. ok super. et comment je fais pour avoir plusieurs système de validation pour un même champs en fonction du contexte ? Dans cakephp, j'ai souvent un validator pour le front, et un validator pour l'admin.
Existe-t-il un générateur de CRUD qui génère le code basique dans le controller (index, view, edit, delete) ?? je ne l'ai pas trouvé.
En bref, j'ai l'impression de regresser à tous les niveaux, sauf avec twig, qui est plutot sympa, et Encore qui permet de gérer webpack facilement.. mais bon, ça révolutionne pas ma vie non plus.
J'aimerai bien l'avis de dev qui sont dans le même cas de figure, qui ont utilisés plusieurs framework et qui pourront m'expliquer pourquoi j'ai tort (ou raison).
Et bonne année ;)