Utilisation d'un framework

Rechercher

Utilisation d'un framework

Par elscorto  -  13 reponses  -  Le 18/08/2009 16:15  -  Editer  - 

Bonjour à tous,

Pour commencer,je m'excuse pour le titre,je ne voyais pas trop quoi mettre.Ensuite un grand bravo à Emacs,ton site est vraiment sympa,les tutos sont bien expliqué et clair,de plus j'affectionne tout particulièrement celui du livre d'or avec PDO et MVC.

Voilà ça fait un petit bout de temps que je lis les messages du forum, tes commentaires sont très instructifs et tu m'as donné envie de zieuter Symfony.Avant ça il faut que tu saches que je débute dans le domaine du web,je suis actuellement en dev d'un site à partir de 0(c'est long...lol ).Entre temps je me suis renseigné sur les frameworks,j'ai d'abord regardé cakephp grâce au site de l'âne et des podcasts d'un autre site,et j'ai trouvé ça vraiment sympa et pratique et je pense faire un autre site avec un framework.

En te voyant défendre becs et ongles Symfony contre tout autres frameworks,j'ai décidé d'aller voir Symfony,j'ai donc lu Jobeet et à mon grand regret,j'ai eu des difficultés à comprendre,il n'a pas l'air d'être simple à prendre en main et l'install à l'air assez complexe. Ma question,est pourquoi prendrais-je plus Symfony que Cakephp,qu'as t'il de plus?

Il y a également des termes que je ne comprends pas trop, c'est quoi le CRUD que tu parles souvent?En allant voir sur Wiki(anglaise,la française est vraiment fade), j'ai cru comprendre qu'il s'agissait d'une classe toute faite pour manipuler des données(ajouter,modifier,supprimer).

Ensuite ORM,c'est ce que tu appelles couche d'absctracion de données?c'est comme ta classe SPDO?

Voilà,ça sera tout pour le momment.

Merci d'avance pour les réponses et bonne continuation

 

Réponses apportées à cette discussion

Par saturn1  -  Le 18/08/2009 18:46  -  Haut de page  - 

Le crud , c'est create read update delete.

En gros c'est le module de base de gestion d'une table SQL.

Un gros plus de symfony c'est la génération automatique de l'administration.

Avec une ligne de commande tu peux créer un module qui te gère une table SQL. (ajouter supprimer modifier ..) des objets..

De plus symfony est full PHP5.

Je ne connais pas trop cake PHP donc je peux pas te dire.

 

Mais un exemple j'ai mis environ 30h pour créer un forum en php procédural.

La avec symfony j'en suis à 6h et pas loin de la fin.

 

Si tu veux de l'aide sur symfony viens sur le chan #symfony-fr sur freenode ;)

 
Par Emacs  -  Le 18/08/2009 21:09  -  Haut de page  - 

Bonjour elscorto et bienvenue sur Apprendre-PHP,

Tout d'abord, je te remercie pour ton engouement vis-à-vis du site et du tutoriels que l'équipe du site et moi-même avons écrits jusqu'à aujourd'hui.

Je vais tenter de répondre à toutes tes questions de manière exhaustive. Quand il s'agit de Symfony, j'aime argumenter longtemps pour convaincre mon lectorat d'utiliser ce merveilleux outil. Si je défends autant Symfony, c'est tout d'abord parce que le framework est véritablement orienté professionnel et s'appuie sur de nombreuses bonnes pratiques qui le rendent puissant, évolutif et surtout très fiable.

Je ne vais pas trop rentrer dans le débat (voire le troll) de comparer Symfony avec CakePHP mais ce qu'il y'a dire c'est que CakePHP a de nombreux inconvénients par rapport à Symfony. En voici une liste non exhaustive :

  • Ecrit en PHP 4 (c'est le plus gros point faible...),
  • Communauté de moins en moins active,
  • Développement et mise à jour moins fréquents,
  • Moins structurant que Symfony

Ces points sont relativement subjectifs mais ils peuvent t'aider à choisir l'un ou l'autre des deux frameworks. Néanmoins, le fait que Cake soit toujours en PHP 4 à ce jour, cela montre à quel point les développements et la communauté ont ralenti ces dernières années de continuer le projet. Toutefois, il y'a bon point. Une version de Cake qui fonctionnement à partir de PHP 5.3.0 est en cours de réalisation, mais la sortie n'est pas encore prévue. Donc on peut attendre encore et de toute manière, il faudra attendre quelques mois, voire plus d'un an avant d'être sûrs que cette nouvelle version prouve ses atouts.

Concernant Symfony, je t'accorde que sa courbe d'apprentissage et sa prise en main ne sont pas évidentes pour un développeur débutant. Je suis passé par là et c'était encore plus difficile de démarrer à l'époque de la version 1.0 il y a deux ans. Aujourd'hui, il existe de nombreux tutoriels (documentation officielle ou blogs divers) qui expliquent comment installer et démarrer un projet Symfony. Le meilleur de tous reste sans aucun doute le tutoriel Jobeet. A toi de t'accrocher dans les premiers chapitres de Jobeet pour pouvoir commencer à comprendre comment Symfony fonctionne, ce qu'il va t'apporter en gain de temps et de qualité et surtout combien c'est sympa de travailler avec.

Malgré tout, Symfony étant entièrement orienté objet, des bonnes bases de la POO en PHP sont requises pour bien démarrer. Le fait de ne pas suffisamment connaître les bases de l'OOP est assez handicapant pour un développeur Symfony car il aura du mal à utiliser les différents composants du framework (ORM, tasks, framework de formulaires, MVC...).

Symfony est un framework dit "full stack", c'est-à-dire que ses librairies sont cohésives et cohérentes les unes par rapport aux autres. Tous ces outils reliés les uns avec les autres forment le framework Symfony. Au contraire, Zend Framework est quant à lui un ensemble de librairies qu'il faut soit même assembler les unes avec les autres pour parvenir à son propre framework. Les outils natifs de Symfony sont nombreux :

  • Architecture MVC,
  • Gestion des URL propres,
  • Internationalisation et localisation,
  • Abstraction de bases de données,
  • Tests unitaires et fonctionnels,
  • Tâches automatiques en ligne de commande,
  • Génération de backend d'administration,
  • Gestion des formulaires avec un framework de formulaires OOP,
  • Enrichissement grâce à de nombreux plugins,
  • Génération de code (CRUD),
  • Gestion des droits d'accès...

Il y a encore beaucoup d'autres fonctionnalités qui couvent près de 90% des besoins relatifs aux applications web.

Les CRUD sont, comme l'explique Saturn1, des actions de base qui te permettent de manipuler une table de base de données (création, sélection, mise à jour et suppression d'enregistrements). Ces tâches de base peuvent être générées en une ligne de commande avec Symfony :)

Symfony est livré par défaut avec deux ORMs : Propel et Doctrine. Un ORM est une couche d'abstraction de base de données qui te permet de manipuler les tables de ta BDD à travers des objets PHP. Ainsi, un enregistrement d'une table "article" sera représenté sous la forme d'un objet de type "Article" sur lequel tu pourras accéder aux différentes informations. Ca te permet ainsi de ne pas à avoir à écrire toi même tes requêtes SQL à la main. C'est l'ORM qui se charge de gérer les enregistrements de ta BDD ainsi que leurs relations avec d'autres à ta place.

Voilà en gros. Je t'invite vivement à te former à la POO puis à tester Symfony en te formant sur Jobeet et en parcourant la documentation pléthorique du site.

++

Hugo.

 
Par elscorto  -  Le 19/08/2009 08:59  -  Haut de page  - 

Merci pour cette réponse très détaillée ainsi que pour la tienne saturn1.

En fait pour t'expliquer,je souhaiterai devenir un professionnel du dev web pour diverses raisons,penses tu qu'il sera mieux pour moi et plus convainquant pour mes entretiens de voir que je sais me servir de Symfony plutôt que de CakePHP.

 
Par elscorto  -  Le 19/08/2009 09:02  -  Haut de page  - 

Excuse pour le double post,mais je ne peux pas accéder à mes MPs alors que j'en ai 2,c'est normal?

 
Par Emacs  -  Le 19/08/2009 13:44  -  Haut de page  - 

Il ne s'agit pas de MP mais du nombre de messages écrits dans les forums au total ;)

Pour répondre à ta question, savoir utiliser et maîtriser un framework web est un véritable plus pour un professionnel et pour les entretiens d'embauche. Les frameworks (au sens large du terme) ont pour rôle d'accélérer les développements, de garantir une cohérence entre les projets, de souder une équipe de production autour d'un même outillage, d'améliorer la qualité du code, de faciliter la vie du développeur... Bref, les frameworks professionnels comme Symfony (ou Zend ou Cake par exemple) sont là pour optimiser le travail des développeurs et leur éviter de réinviter la roue à chaque projet.

Néanmoins, maîtriser un framework a beau être un plus, il n'en demeure pas moins que leur courbe d'apprentissage est souvent assez difficile dans la mesure où ils intègrent tous (ou presque mais en particulier Symfony) des concepts de programmation avancés tels que le MVC, les design patterns ou bien encore le refactoring. D'autre part, connaître un framework ne veut pas forcément dire qu'on le maîtrise et qu'on sait bien l'utiliser. On voit beaucoup de mauvais développeurs Symfony dans la mesure où ils se lancent avec le framework sans forcément bien connaître le langage PHP et ses concepts, la POO ou bien encore le MVC.

Ainsi, je te recommande vivement de commencer par bien apprendre les bases du langage PHP (procédural comme orienté objet) avant de te lancer avec Symfony car tu risques de te perdre et de décrocher rapidement.

++

 
Par elscorto  -  Le 19/08/2009 14:52  -  Haut de page  - 
  • Il ne s'agit pas de MP mais du nombre de messages écrits dans les forums au total ;)* Oui,j'ai remarqué juste après avoir posté.

J'ai continuer ma lecture,et je commence un peu mieux à assimiler le début de Symfony,bon j'ai pas tester encore,par contre j'en suis rendu au routage,et là je dois te dire que je patauge complètement,en même temps j'ai pas encore tester non plus l'url rewriting,mais ça ne saurai tardé.

Sinon,t'inquiète pas,je pense que je connais les bases de php maintenant, j'utilise MVC1 et PDO dans le site que je dev actuellement,bon après je ne suis pas sûr non plus que je l'utilise bien,mais je pense au moins avoir compris le principe.Sinon j'ai déjà tester la POO,en fait je connais,j'ai fais 2ans de C++,mon problème au niveau d'un site en POO est plus de trouver la logique mais ça viendra à force de persévérer

Petite question avant de partir,c'est quoi le refactoring?

Merci pour tes précisions.

 
Par Emacs  -  Le 19/08/2009 15:28  -  Haut de page  - 

Le refactoring c'et le ramiement du code en continu. En d'autres termes, le processus de simplification et de factorisation du code d'un logiciel.

 
Par Mimosa  -  Le 27/08/2009 13:41  -  Haut de page  - 

Salut,

Si tu souhaites lire d'autre tutoriel Symfony, tu peux aller faire un tour sur se blog :

La ferme du Web - tutoriel Symfony

Il s'agit d'un tutoriel dans le même style que Askeet ou Jobeet et qui est assez intéressant et en Français

 
Par elscorto  -  Le 27/08/2009 18:57  -  Haut de page  - 

Salut, merci mais je connaissez déjà, je l'ai découvert il n'y a pas longtemps.

Je pense me mettre sérieusement sur Symfony,après avoir fini le site que je fais actuellement.

 
Par saturn1  -  Le 27/08/2009 19:57  -  Haut de page  - 

Jobeet is the best...

i think u should learn english ;)

 
Par elscorto  -  Le 28/08/2009 12:12  -  Haut de page  - 

Je me débrouille en anglais,j'ai l'habitude de faire des jeux en anglais,je comprends pas tout mais au moins le principal, j'ai d'ailleurs commencé à lire les parties en anglais de Jobbet.

 
Par saturn1  -  Le 28/08/2009 20:51  -  Haut de page  - 

tu es sur la bonne voie alors =)

 
Par elscorto  -  Le 31/08/2009 11:36  -  Haut de page  - 

J'ai même fais mieux,j'ai acheté le livre ;) .Je te donnerai mon retour Emacs

 

Ajouter une réponse à la discussion

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

Identifiez-vous
Join |  ID/MDP? |