- Ceci n'est pas un troll ; juste un retour d'expérience.
- Ne s'adresse pas aux débutants
Je récapitule rapidement la situation.
ça fait 4 mois que la société pour laquelle je travaille est en mission au ministère de l'éducation pour développer/déployer une application php basé sur le framework symfony (le framework php hype du moment)
Petite particularité, la sgbd est oracle.
Nous n'avons pas réussi a faire tourner l'orm Doctrine (pourtant bien plus performant que Propel) ; donc rabattu sur la couche native Propel ; super générateur de code... (Les designs patterns ils ne doivent pas bien connaitre vu les milliers de lignes de code générées)
Configuration de la connection à la base de données plus que compliquée, les fichiers yml (pourquoi pas un bon vieux xml ? faut arréter de pomper ruby on rails surtout quand on le fait mal) n'étais pas pris en compte et le "magique" système d'autoload des classes complétement buggué sur la version que l'on avait.
Les helpers html buggués, rien que pour faire des liens et des formulaires il a fallu hacker les sources de symfony car du passage de l'environnement de dev à celui de test, les liens ont été crashés - pour cause de "smart url" pas smart du tout. (exemple : "http://uneAdresse", "http://uneAdresse/" "http://uneAdresse/index" et "http://uneAdresse/index.php" pour symfony c'est trois trucs qui n'ont rien à voir.
Installation de symfony avec des options d'url rewriting non documentées planquées dans un coin qui nous ont fait perdre pas mal de temps.
Problème avec l'ajax sur le multi-requêtes.(En gros une seule requête ajax est traitée à la fois, la seconde doit attendre que la première soit terminée) - pas trouvé la raison ; probablement dans l'architecture de la couche contrôleur.
Jointures quasiment impossibles à gérer proprement avec l'orm, il a falllu passer directement par des appels propels pour ne pas faire de boucle de requêtes imbriquées.
Modèle MVC étrange, dans la couche controleur les attributs de type $this->uneVariable deviennent des variables directement accessibles dans la vue. ($this->uneVariable devient dans la vue $uneVariable ; c'est propre...)
Documentation hype mais inutilisable dans un cadre pro (entendre par là mise en place et apprentissage rapide) ; documentation de l'api nulle.
Nécessité de passer par la ligne de commande pour appeler des scripts php d'install et de vidage de cache. (Purement masturbatoire faire un "php script.php") Et donc impossibilité en l'état d'installer symfony sur un système où l'on n'a pas des droits de root (ou assimilés).
Support des équipes de symfony inexistant (canaux irc, forums etc)
Alors probablement qu'en y passant beaucoup de temps on finit par gagner du temps (il faut vraiment en passer beaucoup pour commencer a amortir le temps d'apprentissage/investigations)
Une "internationnalisation" plus qu'incomplête ; nous n'avons pas réussi a faire afficher le widget calendrier au format français et l'admin générator dont ils sont si fier, impossible de trouver de la doc pour convertir tous les labels en français.
//----
Quelques questions existentielles quant à la philosophie de ce framework
Pourquoi des fichiers de config en yml (sachant que ses derniers sont parsé pour devenir de bêtes define php) (a ma connaissance php5 gère nativement xml ;pas yml)
Pourquoi Propel alors que
PDO gère l'abstraction de façon native ; (Doctrine étant une surcouche de PDO) ; et sans utiliser PDO, pourquoi pas adodb très largement répendu. (N'est pas un orm, mais juste une couche d'abstraction certes)
Je n'ai pas la motivation pour énumérer tous les points étranges ou bloquant de ce framework ; mais et même si celà est subjectif ; je ne conseille à personne ce framework.
(j'avoue je sature un peu de ce projet/symfony)
- Ne s'adresse pas aux débutants
Je récapitule rapidement la situation.
ça fait 4 mois que la société pour laquelle je travaille est en mission au ministère de l'éducation pour développer/déployer une application php basé sur le framework symfony (le framework php hype du moment)
Petite particularité, la sgbd est oracle.
Nous n'avons pas réussi a faire tourner l'orm Doctrine (pourtant bien plus performant que Propel) ; donc rabattu sur la couche native Propel ; super générateur de code... (Les designs patterns ils ne doivent pas bien connaitre vu les milliers de lignes de code générées)
Configuration de la connection à la base de données plus que compliquée, les fichiers yml (pourquoi pas un bon vieux xml ? faut arréter de pomper ruby on rails surtout quand on le fait mal) n'étais pas pris en compte et le "magique" système d'autoload des classes complétement buggué sur la version que l'on avait.
Les helpers html buggués, rien que pour faire des liens et des formulaires il a fallu hacker les sources de symfony car du passage de l'environnement de dev à celui de test, les liens ont été crashés - pour cause de "smart url" pas smart du tout. (exemple : "http://uneAdresse", "http://uneAdresse/" "http://uneAdresse/index" et "http://uneAdresse/index.php" pour symfony c'est trois trucs qui n'ont rien à voir.
Installation de symfony avec des options d'url rewriting non documentées planquées dans un coin qui nous ont fait perdre pas mal de temps.
Problème avec l'ajax sur le multi-requêtes.(En gros une seule requête ajax est traitée à la fois, la seconde doit attendre que la première soit terminée) - pas trouvé la raison ; probablement dans l'architecture de la couche contrôleur.
Jointures quasiment impossibles à gérer proprement avec l'orm, il a falllu passer directement par des appels propels pour ne pas faire de boucle de requêtes imbriquées.
Modèle MVC étrange, dans la couche controleur les attributs de type $this->uneVariable deviennent des variables directement accessibles dans la vue. ($this->uneVariable devient dans la vue $uneVariable ; c'est propre...)
Documentation hype mais inutilisable dans un cadre pro (entendre par là mise en place et apprentissage rapide) ; documentation de l'api nulle.
Nécessité de passer par la ligne de commande pour appeler des scripts php d'install et de vidage de cache. (Purement masturbatoire faire un "php script.php") Et donc impossibilité en l'état d'installer symfony sur un système où l'on n'a pas des droits de root (ou assimilés).
Support des équipes de symfony inexistant (canaux irc, forums etc)
Alors probablement qu'en y passant beaucoup de temps on finit par gagner du temps (il faut vraiment en passer beaucoup pour commencer a amortir le temps d'apprentissage/investigations)
Une "internationnalisation" plus qu'incomplête ; nous n'avons pas réussi a faire afficher le widget calendrier au format français et l'admin générator dont ils sont si fier, impossible de trouver de la doc pour convertir tous les labels en français.
//----
Quelques questions existentielles quant à la philosophie de ce framework
Pourquoi des fichiers de config en yml (sachant que ses derniers sont parsé pour devenir de bêtes define php) (a ma connaissance php5 gère nativement xml ;pas yml)
Pourquoi Propel alors que
PDO gère l'abstraction de façon native ; (Doctrine étant une surcouche de PDO) ; et sans utiliser PDO, pourquoi pas adodb très largement répendu. (N'est pas un orm, mais juste une couche d'abstraction certes)
Je n'ai pas la motivation pour énumérer tous les points étranges ou bloquant de ce framework ; mais et même si celà est subjectif ; je ne conseille à personne ce framework.
(j'avoue je sature un peu de ce projet/symfony)