jeudi 12 juillet 2012

Symphony 2 : Je repasserai...

J'ai actuellement un projet à réaliser utilisant MSSQL pour les données ! Connaissant les avantages de Symfony 1, j'ai dont été voir de ce côté.
Au bout de 2 jours de test, l'utilisation de l'ODBC pour l'accès au donnée MSSQL semble trop lent et passer 347 requêtes prend plus d'une minute.
Configuration: Windows 2008 R2, IIS 7, PHP en FastCGI, MSSQL Express 2008.

L'utilisation du pilote sqlsrv développé par Microsoft pourrai m'aider à augmenter les performances. Cependant, Symfony 1.4 utilise l'ORM Doctrine 1.2. Ce dernier ne connait pas le driver PDO sqlsrv. Il faut passer à Doctrine 2.x et par conséquence à Symfony 2.

C'est là que les choses se complique.

Je télécharge dont la dernière version de Symfony 2.0 et je lis le tour rapide. Contrairement à Symfony 1, il n'y a plus aucune version Française des Livres et autres ressources sur le site de Sensio Labs. C'est dommage mais pas dramatique.

Après quelques recherches et quelques tutoriels, je me rends compte que tout à changer! Sous prétexte d'une meilleur portabilité des applications (qui n'est pas un mal en soit), il n'existe presque plus de générateur de code.

Un exemple ? La gestion de la base de donnée. Dans la version 1, il suffisait d'écrire dans le fichier doctrine.yml le schéma de la DB pour générer un grand nombre de fichier pré-paramétré. Ce n'est plus la cas, maintenant seul un fichier est généré, il s'agit d'un fichier enregistré dans le dossier Entity!

Le fichier ...Table.php qui permettait d'ajouter des fonctions à la tables n'existe plus ni le fichier Base....php. Tout est dans un fichier par table stocké dans Entity. En cas de modification de la base, un fichier backup est généré. A vous de le supprimer si la comparaison est correct.

Et là c'est trop ! Il faut joué avec DIFF pour vérifier que tout est OK. Comment on fait sur un projet avec 30 à 40 tables ?

L'autre notion qui a disparu est le "Module" très pratique sur la V1. Il était possible de généré un certain nombre de fichier automatiquement depuis la référence d'un modèle de l'ORM. Maintenant les contrôleur, les templates, les dossiers, tout doit être crée à la main !

Il faudra repasser pour le Frameworks simple et rapide d'utilisation ! Avec la v2, je doit écrire plus de code de structure qu'avec la v1. Ou est la concentration sur l’essentiel ? C'est à dire le métier.

Si quelqu'un à des infos sur le sujet (en français de préférence), qu'il me l'indique dans les commentaires. Merci !