Aller au contenu

temps d'apprentissage de cakePHP ou symfony


Sujets conseillés

Posté

Bonjour à tous

Je suis en train de me plonger dans les frameworks php. Je bonnes notions de php procédural et j'ai quelques notions de php objet (ce qu'est un objet, une classe, un héritage, une méthode,des attributs) sans pour autant l'avoir pratiqué.

Combien de temps environ faut-il s'investir dans un framework type symfony, zend ou cakePHP pour maitriser l'outil? Cela se compte-il en semaine, en mois pour que l'investissement en temps vaille le coup?

Le gain de temps est-il si important par rapport à un codage classique en php objet ou procédural?

Merci de vos lumières !

Posté

Le temps d'apprentissage d'un framework est relativement long, mais il aident à bien structurer une application, l'usage du principe MVC (Model View Controler) permet de bien dissocier : la couche view (vue) qui est la couche de présentation de l'information, de la couche model (modèle) qui est le traitement des données et la couche controler (controleur) qui est la couche interactive, c'est à dire celle qui détermine les actions (affichage de la vue, envoie à la couche de traitement des données).

Je ne sais pas si il y a vraiment gain de temps à coder avec un framework (beaucoup disent que oui, mais encore faut il bien le maitriser), mais ce qui est sur, c'est qu'après l'usage d'un framework, tes dév seront plus structurés.

Posté
Le gain de temps est-il si important par rapport à un codage classique en php objet ou procédural ?

A fonctions équivalentes, j'aurais tendance à dire oui.

Seulement voila, une bonne partie du code sert à l'aspect sécurité, la portabilité d'un environnement à l'autre, à la gestion de caches, des entêtes HTTP, audit, débugage, etc. Choses qui sont absentes de 90% des codes "classiques".

Faire un code qui inclus toutes ces fonctionnalités (et sûrement d'autres) va énormément plus vite avec un framework que sans. Mais sinon, je n'en suis vraiment pas persuadé non.

Posté (modifié)

merci pour ces réponses :-)

Disons que je ne connais pas bien le fonctionnement de ces outils mais j'en attends au moins que ça automatise largement la création de formulaire sécurisés et la mise en place d'élements classiques de site comme un systeme d'inscription, un systeme de commentaires etc...

Tout en gardant un controle optimal du html généré, j'ai vraiment pas envie de m'embeter avec un framework qui serait difficile à templater mais je suppose qu'ils sont conçus en général dans cet optique(=facile à templater)

Modifié par nyl auster
Posté

Là on a une vision différente du rôle d'un framework ;) Un système de commentaires, d'inscription, de news, et autres "fonctions très haut niveau" et "très spécifique" n'a pour moi vraiment rien à faire dans un framework. Mais c'est sûrement une affaire de goût...

Pour prendre un cas "concret", je ne sais pas si vous connaissez le framework Javascript "Dojo ToolKit". Il est séparé en trois "couches" : Dojo, dijit et DojoX. Ce que je considère comme le framework c'est "Dojo", il fournit une base stable/propre/portable pour tout faire, le reste c'est plutôt de la bibliothèque de fonctions pratiques, basée sur le framework.

Posté (modifié)
Là on a une vision différente du rôle d'un framework wink.gif Un système de commentaires, d'inscription, de news, et autres "fonctions très haut niveau" et "très spécifique" n'a pour moi vraiment rien à faire dans un framework.

Oui je vois ce que tu veux dire. Disons que j'espérais qu'un framework pouvait m'aider à développer plus vite de grosses fonctionnalités et me faisant gagner du temps sur les étapes de création de formulaires, de tables, de sécurisation des données etc...

Sinon qu'ai je à y gagner sur du php maison pour développer ce genre de fonctionnalités? est ce avant tout une histoire de portabilité du code et de bonne structuration de celui -ci?

Merci pour l'info sur Dojo toolkit, j'irai jeter un oeil. :-)

Modifié par nyl auster
Posté

Pour répondre à ta question, j'utilise CodeIgniter.

Pour ce que tu souhaites, un framework Php t'apporteras tout de même un gain de temps.

Pour le cas des formulaires par exemple, il suffit de fournir une sorte de limite à chaque champ (obligatoire, lettre, alphabet, email... ou même tes propres fonctions) et de définir les messages d'erreurs (pour tes fonctions, les autres sont implémentés de base).

Pour la sécurisation de base, sous CI, tu définies tes variables dans tes requêtes par un ?. Pour chaque, tu indiques la variable qui sera insérée. Le framework gère tout seul le fait d'enlever les entitées html et autres... Que du bonheur !

Bref, le temps d'adaptation est réellement long... mais une fois maîtrisé, c'est que du bonheur.

Posté
Pour la sécurisation de base, sous CI, tu définies tes variables dans tes requêtes par un ?. Pour chaque, tu indiques la variable qui sera insérée. Le framework gère tout seul le fait d'enlever les entitées html et autres... Que du bonheur !

En passant, PHP gère maintenant ça tout seul via PDO :P

Posté

Je me suis mis à cakePHP il y a qq semaines, j'ai vite laissé tombé vu que les perfs sont à la traine par rapport aux autres frameworks.

Je suis passé à Zend Framework, et il m'a en gros fallu 6/8 semaines (prise en main comprise) pour coder mon premier site. Si les admins me le permettent, je poste son adresse et l'explique les différents modules.

Ce qui est séduisant avec ZF, c'est la souplesse de codage

  • 7 months later...
Posté (modifié)

Une nouvelle question à propos des frameworks.

Dans le cadre de mon travail j'utilise désormais Drupal qui repose sur un framework php lui aussi.

Du coup ma question est :

pour le développement de site, quel est l'intéret d'utiliser plutôt un cakePHP (par ex) que Drupal tant le gain de temps semble évident avec un CMS + CMF (comme Drupal). Quand j'entends que symfony (ou cakePHP me souvient plus) "permet de faire un blog en 15 min" je me dis : ok mais drupal propose réellement la base d'un blog en 30 secondes PLUS le framework pour personnaliser sans limite.

Les framework tels que cakePHP sont-ils à préférés en terme de performance uniquement -Drupal devient lourd au fur et à mesure qu'on installe des modules - ?

Ou bien sont-ils mieux codés que le framework de Drupal ?

Ou bien sont-ils plus spécifiquement adaptés au développement d'applications en ligne plutôt que de sites "classiques"?

Je suis toujours pret à m'investir dans un framework mais maintenant que je connais le framework php de drupal; je me demande si ça a encore un intéret dans le cadre de ce que je fais.

Modifié par nyl auster
Posté (modifié)

Après avoir testé rapidement différents frameworks, j'ai arrêté mon choix sur CakePHP pour plusieurs raisons :

  • Il est basé sur le principe "des conventions plutôt que de la configuration", donc pas besoin de configurer 30 trucs à travers divers fichiers XML
  • Les conventions sont un ensemble de bonnes pratiques ... et ne sont donc pas contraignantes une fois qu'on les connait (au contraire même, celà améliore ton code)
  • Oblige à avoir une architecture MVC permettant une meilleure évolutivité de l'application
  • Le grand nombre d'helpers, composants et autres utilitaires livrés de base (Authentification, Création de formulaire, Validation des données, Ajax, envoi de mails ...) et la génération automatique des actions CRUD (Ajout, édition, suppression)
  • La souplesse du framework qui permet si on le souhaite de régler le moindre détail pour passer au delà de la génération "magique" des pages
  • La facilité de création de tests ... c'est à mon sens un critère important
  • La communauté accueillante et développée, riche en ressources ... je préfère largement ça à un framework soutenu par une entreprise (Symfony, ZF, CI ...)

Depuis, j'ai appris à vraiment le maîtriser (je dirai qu'en une semaine on peut être opérationnel sur le framework si l'on connait MVC et la POO, sinon il faudra un peu plus de temps) et vois à quel point ce framework permet de faire des choses propres et puissantes rapidement.

Quant à ceux qui parlent de performances, je ne préfère pas entrer dans le débat mais c'est en règle générale dû à une mauvaise utilisation du framework (et non au framework en lui-même) ;)

En tout cas, je pense sincèrement que baser ses développements sur un framework permet d'acquérir une meilleure qualité de code et de pouvoir capitaliser plus facilement. Le choix d'un framework est quelque chose de personnel, sachant que le passage de l'un à l'autre est assez rapide (les concepts sont les mêmes): seules les subtilités sont à apprendre ... mais cela se règle par la pratique.

Ainsi si tu aimes travailler avec le framework de Drupal n'hésites pas ... si tu préfères développer un module sous un autre framework, les fonctionnalités classiques (blogs, cms) sont assez rapides à mettre en place et tu auras exactement (et seulement) ce dont tu as besoin. C'est pour cette raison que je préfère un framework à un CMS classique (pour des applications comme la GED et autres, là par contre c'est différent ;) )

Pierre

Modifié par real34
Posté (modifié)

Oui tout ça me parait très intéressant; même is je doute d'être capable de maitriser un framework en une semaine ne connaissant ni la POO correctement ni l'architecture MVC.

Disons que l'avantage d'un CMF comme Drupal est que je peux coder uniquement -si je le souhaite- avec le framework en zappant la partie CMS puis inclure quand ça me chante des modules via la partie CMS; ce qui représente un gros gain de temps dans ces cas là. Du coup le mélange framework - CMS me parait un compromis idéal pour la conception de site.

Maintenant il faudrait que je puisse comparer le framework de drupal à cakePHP. Je suppose que il ne s'agit pas du même genre de "framework".

Modifié par nyl auster

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...