Zend Framework, CakePHP, et Symphony

Rechercher

Zend Framework, CakePHP, et Symphony

Par monzinsof  -  16 reponses  -  Le 16/04/2015 12:26  -  Editer  - 

J'entend souvent parler des frameworks tels que Zend Framework, CakePHP, et Symphony mais quels sont les avantages et inconvénients des frameworks ?

Ce que je voulais savoir, c'est quel est le framework qui me sera le plus utile pour faire notre projet ? Le projet application web traitant les CVs , demanades vacances , contrats , facturation

Merci d'avance :)

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 16/04/2015 15:49  -  Haut de page  - 

Salut Monzinsof,
la réponse n'a rien d'évident. Je ne pourrai donc pas donner de réponse vraiment complète, mais voici quand même quelques éléments de réflexion.

Avantages

L'intérêt d'un framework, quel qu'il soit, c'est que tout ce qui est traitement générique est géré par le framework et le développeur peut se concentrer exclusivement sur le code métier de l'application.

Par ailleurs, l'utilisation d'un des frameworks majeurs du marché (Zend Framework, Symfony, Cake PHP, etc..) est que leurs mises à jour ne relèvent pas du développeur, les communautés qui gravitent autour de ces frameworks s'en chargent, le plus souvent fort bien.

Enfin, l'utilisation d'un framework permet de structurer l'architecture de l'application de façon stricte, donc on a pas de code anarchique posé n'importe où n'importe comment. Si plusieurs développeurs travaillent au développement d'une application, ils devront tous respecter la même architecture. Intégrer un nouveau développeur ne posera donc pas de problème, il suffira qu'il comprenne cette architecture pour être relativement rapidement opérationnel.

Inconvénients

L'utilisation d'un de ces frameworks peut, selon le cas, exiger une courbe d'apprentissage plus ou moins longue selon le degré de compétence du développeur qui l'aborde et selon la complexité du framework considéré.

Il convient également de voir dans quelle mesure l'utilisation d'un de ces framewwork apporte un gain de temps et surtout d'efficacité dans le fonctionnement de l'application.

Mon avis personnel

Il se trouve que l'application que tu envisages de développer est une chose avec laquelle je suis particulièrement familier. Je développe depuis un peu plus de cinq ans maintenant une application qui fait exactement ce que tu décris (et plus encore), on appelle ça un ERP ou Enterprise Ressource Planning (Progiciel de Gestion Intégrée en français). Lorsque j'ai commencé s'est précisément posé cette même question. Dans mon esprit, l'utilisation d'un framework était une évidence. Mais mes propres critères sur certains éléments m'ont amené à écarter les framerworks majeurs et finalement, j'ai construit mon propre framework. Ça ne m'empêche nullement d'utiliser des packages venant d'ailleurs comme par exemple Zend_Pdf pour générer des documents PDF (Factures, États divers), Zend_Pdf fait ça très bien et je n'allais pas m,amuser à recoder un truc pareil même si j'ai du écrire une extension pour pouvoir obtenir certains éléments que le package de base ne me permettait pas de faire. Ou bien encore PHP Mailer pour tou ce qui est envois de courriel. Mais j'ai aussi utilisé des packages maison en particulier pour les formulaires ou bien l'accès aux données parce que ce qui existait dans les frameworks majeurs ne me satisfaisait pas.

Ceci étant, travaillant seul sur cette application, la courbe d'apprentissage n'a pas posé de difficultés puisque n'existant pas du tout. C'est un choix que je ne regrette pas vraiment même après tout ce temps, mais selon l'apleur du projet visé, ce n'est pas obligatoirement le plus approprié.

Voilà, n'hésite pas à poser des questions complémentaires si un point particulier demande des éclaircissements :)

 
Par monzinsof  -  Le 16/04/2015 16:33  -  Haut de page  - 

Salut Cyrano,
je vous remercié pour votre réponse,
puisque j'ai jamais travailler avec un framework PHP, c'est ma premiere experience , je suis trompé dans le choix entre ces trois

 
Par Cyrano  -  Le 16/04/2015 16:49  -  Haut de page  - 

Trompé dans quel sens ?

Le point le plus important à bien comprendre dans l'utilisation d'un framework, c'est l'architecture de l'application, il faut entendre par là la manière dont sont répartis les fichiers/répertoires.

Généralement, avec les Frameworks majeurs, il y a un schéma systématique qui lui est propre.
Sommairement, on sépare le framework lui-même de la partie dite « métier », c'est à dire le code propre à l'application elle-même qu'on développe en s'appuyant sur les différents packages du framework.

Ça implique tout de même un autre point que je n'avais pas abordé dans ma précédente réponse : il est impératif de posséder un minimum de maitrise en Programmation Orientée Objet : le code spagghetti en procédural, c'est fini, on ne construit pas une application professionnelle de cette manière.

Et dans les avantages, j'ai omis un point qui me semble des plus importants : on facilite énormément la maintenance de l'application sur le long terme.

Observation

Je m'interroge tout de même sur un point : « première expérience » à quel degré ? Je déconseille vivement l'apprentissage du PHP en construisant un ERP, ce serait le meilleur moyen de devenir chauve largement avant l'heure. Mais il me manque peut-être des éléments d'appréciation... il faudrait m'en dire davantage sans nécessairement divulguer des secrets d'entreprise bien entendu.

 
Par monzinsof  -  Le 16/04/2015 18:40  -  Haut de page  - 

oui merci vous avez raison je dois tt simplement dire un ERP.

donc je suis trompé à la partie metier, puisque vous avez déjà developper un ERP, vous connaissez les différant difficulté durant le dev d ERP. j'aimerais savoir le quelle de ces frameworks(zend, symphony, cakePhp) va me servir, sachant que je suis limité avec le temps

 
Par Cyrano  -  Le 16/04/2015 18:52  -  Haut de page  - 

Je serais tenté de suggérer un coup d’œil du coté de Silex : c'est un genre de micro-symfony, on construit un framework personnalisé uniquement avec les packages de Symfony dont on a réellement besoin.

Mais coté limites de temps, et je parle en parfaite connaissance de cause, attention à ne pas sous-évaluer la charge de travail que ça peut représenter. Un outil de ce genre correctement conçu, évolutif et maintenable pour ce type de travail, c'est beaucoup de boulot. Comme j'ai dit, j'en développe un depuis un peu plus de cinq ans et je n'ai pas fini, de nouvelles fonctionnalités sont périodiquement ajoutées. Il faut donc avancer avec prudence.

Et j'ajouterais en outre un point crucial : attention à la base de données : sa structure doit être très soigneusement étudiée et pouvoir évoluer sans qu'il soit à chaque évolution nécessaire de ré-écrire les 3/4 du code.
Et avec Symfony, il y a un package Doctrine, ce sera sûrement fort utile pour ça.

 
Par monzinsof  -  Le 16/04/2015 19:05  -  Haut de page  - 

Une petite questions, pour les packages dans symphony et zend sont toute gratuit ou payante ?

 
Par Cyrano  -  Le 16/04/2015 19:10  -  Haut de page  - 

Symfony, Zend Framework, CakePHP, et la plupart des autres sont tous libres et gratuits. Et généralement, il existe une documentation en français en ligne.

 
Par Cyrano  -  Le 16/04/2015 19:11  -  Haut de page  - 

Un détail à prendre en compte : l'environnement technique.

Selon la version de PHP qui est installée, il faudra vérifier si le framework choisi dans une version donnée est compatible. C'est généralement indiqué sur le site du framework.

 
Par monzinsof  -  Le 16/04/2015 19:31  -  Haut de page  - 

je vous remercier infiniment pour vous réponse

 
Par monzinsof  -  Le 16/04/2015 20:45  -  Haut de page  - 

"attention à la base de données : sa structure doit être très soigneusement étudiée et pouvoir évoluer sans qu'il soit à chaque évolution nécessaire de ré-écrire les 3/4 du code.
Et avec Symfony, il y a un package Doctrine, ce sera sûrement fort utile pour ça."

est ce que vous pouvez m'expliqué j 'ai pas compris

 
Par Cyrano  -  Le 16/04/2015 20:47  -  Haut de page  - 

Si je dis « ORM » ça éveille quelque chose ou pas du tout ?

 
Par monzinsof  -  Le 17/04/2015 12:12  -  Haut de page  - 

oui ORM c'est mapping objet relationnel c'est une technique de programmation, visant à ce que l'utilisateur puisse manipuler ses tables de données comme si c'étaient des objets

 
Par Cyrano  -  Le 17/04/2015 12:21  -  Haut de page  - 

Ok, c'est ça.

En PHP, il existe principalement deux ORM, Doctrine et Propel. Dans Symfony, il y a (sauf erreur de ma part) une implémentation de Doctrine. Or l'utilisation d'un ORM peut s'avérer utile lorsqu'on a une base de donnée qui est appelée à évoluer au fil du temps.

Quant à la structure de a base de données, ce n'est pas forcément très compliqué, mais il faut prendre le temps nécessaire de bien tout analyser correctement avant de coder quoi que ce soit. L'application repose complètement sur cette base de données. Si cette dernière est bancale, il arrivera tôt ou tard un moment ou l'application sera bancale et impossible à remettre droite sans en ré-écrire au moins les 3/4. Pour éviter ça, je recommande la modélisation par l'emploi de la méthode MERISE en commençant par le dictionnaire de données, ensuite le MCD et enfin de MPD. Si ces derniers élément n'évoquent rien, alors bonne chance... et je déconseillerai alors le lancement du projet tout court si il y a derrière une quelconque vision à long terme. Autrement, pas de soucis, ça + un ORM et la gestion des données ne devrait pas présenter de difficultés particulières.

 
Par monzinsof  -  Le 17/04/2015 12:31  -  Haut de page  - 

càd que Symfony il implémente seulement Doctrine c'est ça

 
Par Cyrano  -  Le 17/04/2015 12:51  -  Haut de page  - 

Pour autant que je sache, oui. Mais il est possible qu'il existe aussi quelque part un package Propel pour Symfony. Google est ton ami, pose-lui la question ;)

 
Par monzinsof  -  Le 17/04/2015 12:55  -  Haut de page  - 

oui merci propel pour symfony existe

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |