Developpez.com

Le Club des Développeurs et IT Pro

Le microframework Symfony 2.8 sera disponible avant la fin du mois

SensioLabs met en avant la simplicité de cette nouvelle version

Le 2015-11-23 13:28:16, par Victor Vincent, Expert éminent sénior
Un microframework est un terme utilisé pour désigner un framework minimaliste d’application web. Ce type de framework est jugé comme étant très rapide par certains développeurs. Symfony propose avec sa nouvelle version, un microframework avec une architecture interne plus flexible selon SensioLabs. Le framework verra son noyau même modifié, permettant notamment de simplifier la création d’applications Symfony. En effet, une application de type « Hello World » avec le microframework symfony ressemblera à ceci :


Dans ce nouveau microframework, un simple MicroKernel permet de créer et de configurer des bundles, de définir les routes, mais aussi de gérer le code du contrôleur. Dans l’exemple présent, il faut noter qu’à part les clauses import et les déclarations de fonctions, le code effectif de l’application fait seulement quatre lignes, souligne SensioLabs. Le framework n’améliore pas les performances brutes de Symfony, car il ne change que la façon d’enregistrer les routes. Cependant, les fonctionnalités qui ne sont pas utilisées sont tout simplement désactivées ainsi que certaines caractéristiques de l’édition standard de Symfony permettant ainsi de simplifier au maximum le microframework et gagner du coup en performance comme le montrent les mesures suivantes :


D’après SensioLabs, le microfraframework facilite la création d’applications en évitant aux développeurs d’être confrontés aux problèmes qui sont rencontrés dans d’autres microframeworks. Cela est rendu possible grâce au fait que le microframework se base entièrement sur la version standard de Symfony, permettant donc aux développeurs d’utiliser toutes les fonctionnalités dont ils ont besoin pour développer leurs applications. L’exemple suivant montre qu’en un seul fichier, il est possible de créer une application complète de type « Hello World » utilisant des templates, la barre d’outils de débogage web ainsi que le Profiler Symfony.


Le microframework permet également de créer des applications utilisant uniquement un seul fichier services.yml ainsi qu’un seul fichier config.yml, tandis que les routes sont définies sous forme d’annotations dans les classes contrôleurs.


Pour utiliser le MicroKernel dans le contrôleur frontal à la place du AppKernel habituel de la version standard et profiter pleinement de ses avantages, il suffit de l’inclure dans ledit contrôleur comme indiqué sur la figure qui suit.


Source : Blog Symfony

Et vous ?

Que pensez-vous de cette nouvelle version de Symfony ?

Voir aussi

le forum Symfony 2

la rubrique Symfony 2 (Cours, Tutoriels, FAQ, etc.)
  Discussion forum
24 commentaires
  • MaitrePylos
    Modérateur
    Envoyé par SurferIX


    Tu veux qu'on aille plus loin ou tu veux te ridiculiser encore plus ?
    il me semble que l'on s'emballe un peu. Le but du MiniFramework est, je pense, une nouvelle approche, plus orienté Librarie que FullStack. Tu peux toujours comparer Django à SF2, c'est juste que c'est n'est pas comparable. Ce n'est un secret pour personne je n'accroche pas à Symfony2, car je n'ai jamais eu le besoin de l'utiliser, maintenant les diverses applications qui l'utilisent plaide quand même pour dire que c'est un outil solide (Drupal,EZPublish,Laravel,Claroline Connect .....). On trouveras toujours à critiquer, par exemple j'aime travailler avec CakePHP3 et je maintiens quelques applis que j'ai écrites avec FuelPHP (comment vous ne connaissez pas pfffffffffffff). Tu lances un troll et rien d'autres, chacun ses outils (pour ses projets) point barre. Je suis d'accord avec toi sur pas mal de points, mais tout évolue, tu critiques Doctrine, je pense pareil, donc fait comme moi, ne l'utilise pas, c'est tellement plus simple d'avoir un bon schéma de db et de faire ses propres requêtes (idem pour Django). La discussion ici n'est pas de comparer des outils, mais d'annoncer une évolution chez Symfony, elle est bien, elle est mal, chacun son avis.... Le principal c'est que sa bouge. Enfin, reste plus à espérer que Python 2.x soit enfin abandonnés .....

    ok
  • rawsrc
    Expert éminent sénior
    Il était temps...
    Vu comment leur framework se fait tailler des costumes en entreprise, ils se devaient de réagir en proposant du beaucoup plus léger.
    En espérant que cela réconciliera certains avec SF2, mais j'ai comme un doute...

    En tout cas, je vais prendre le temps de me pencher dessus.
  • HerveRenault
    Membre à l'essai
    Envoyé par SurferIX
    ps : j'ai développé http://benativo.fr en full symfony, je sais donc de quoi je parle en termes de rentabilité).
    Joli site mais pourquoi avoir ne pas avoir combiné les 33 feuilles de style ? Assetic le fait dans Sf2.
  • dukoid
    Membre expert
    Symfony

    les qualités :
    Twig : une merveille. je ne peux plus m'en passer.
    les routes : super pratique et simple.
    les services : rendent accessibles aux newbies un concept intéressant de la POO, l'injection de dépendances. (corrigé)
    la validation de formulaire : assez simple à mettre en oeuvre et assez puissant pour faire de la validation de formulaire dynamique.
    separation of concerns (corrigé) au lieu de MVC: un bon compromis. à chacun sa place (la logique d'un coté, le modèle dans un autre et la vue dans un autre). plus de mélange illisible.
    la pérennité : Symfony existe depuis longtemps et n'est pas prêt de s'arrêter. symfony2.7 sera compatible avec la nouvelle version de Symfony la 3 donc (prévu en 2016).
    la documentation : une bonne documentation officielle (en Français jusqu'à la 2.6 et qu'en anglais depuis la 2.7)
    la fiabilité : Symfony est fiable et suivie de correctif régulier et rapide.

    les défauts :
    doctrine : le query language un peu complexe
    la création de formulaire complexe : un peu hardu à coder (formulaires imbriqués....)
    l'apprentissage : un peu plus long que les autres frameworks
  • MaitrePylos
    Modérateur
    Envoyé par vinmar
    i Silex, par le même créateur (Fabien Potencier)
    Rendons à César ce qui est à César

    Silex est de Igor Wiedler et Fabien Potencier
  • Soobook
    Membre habitué
    Bonjour,

    C'est un peu trollesque et, en temps qu'adepte fervent de Symfony, je ne peux être complètement objectif.

    Je m'étonne cependant des principales critiques qui reviennent sans arrêt au sujet de cet outil : lourdeur, complexité, ne convient qu'à de gros projets, courbe d'apprentissage longue...
    Les début furent certes un peu plus compliqués mais depuis la v. 2.3, et à condition d'utiliser l'organisation par défaut du framework, c'est à mon sens tout l'inverse :

    • Les différents outils intégrés par défaut s'imbriquent à merveille (Composer, Twig, Doctrine, Annotations, Débogage, ...)
    • De nombreux Bundles permettent de répondre simplement à la plupart des besoins (FOSUserBundle, FOSJsRoutingBundle, StofDoctrineExtensionsBundle, ...)
    • De simples commandes permettent de pré-génerer une grande partie du code non spécifique à l'application.
    • Rares sont les problématiques n'ayant pas une réponse simple, efficace, élégante et documentée.
    • La doc est remarquable de richesse, de clarté et d'exhaustivité. La communauté est immense et active.

    Honnêtement, la seule critique qui me vient à l'esprit concerne les form themes : si la gestion du cycle de vie des formulaire est excellente, leur habillage est "a pain in the ass".

    L'expérience, ainsi que les centaines de topics concernant Sf2 que j'ai consulté, m'ont appris que souvent les difficultés surgissent quand on essaie d'adapter l'outil à ses habitudes.
    Comme le terme framework l'indique, il s'agit d'un cadre de travail : implicitement, il faut accepter et utiliser les conventions imposées pour vraiment tirer parti de l'outil.
    Et par conséquent, avoir l'humilité d'accepter que nos méthodes et habitudes ne sont peut être pas si bien pensées que ça, notamment comparées à celles de gens ayant produit un des framwork PHP les plus populaires au monde.

    Grâce à celui-ci, je produis plus vite un code de meilleur qualité, construit suivant une organisation et des méthodes saines, autour de bonnes pratiques.
    Depuis que j'ai arrêté de vouloir faire les choses à ma sauce pour simplement mettre en pratique les recommandations, mes compétences de développeur on fait de véritables bonds, tant dans la pratique qu'au niveau conceptuel. Suivant les traces de grands maîtres, je m'améliore constamment, et j'y trouve beaucoup de satisfaction.

    Quant à cette lourdeur qui réserverait sf2 à de gros projets, je ne vois rien qui la justifie. Quand vous avez besoin de percer un simple trou dans une planche, vous ne refusez pas d'utiliser une perceuse sous prétexte qu'elle est aussi fournie avec des mèches métal et béton, ou qu'il faut la sortir de sa boîte.

    L'installation et la configuration du framework pour un nouveau projet sont des opérations triviales donnant accès à tous les outils dont vous pourriez avoir besoin. Il gère parfaitement les ressources en ne les instanciant qu'au moment de leur utilisation.
    Pour ma part c'est très simple : hors cas particuliers, si j'ai besoin d'une base de donnée j'utilise Symfony, sinon j'utilise Silex.

    Si vous êtes un détracteur du framework, libre à vous, mais je me permet de vous poser la question suivante.
    Avez-vous réellement essayé le framework, c'est à dire avant tout une organisation, des conventions et des méthodes, ou avez-vous juste essayé d'utiliser les classes et les librairies fournies pour reproduire votre organisation et vos habitudes?
    Je suis désolé, mais dans ce dernier cas, votre avis est dénué d'intérêt, puisque hors contexte.

    Si vous êtes intéressés par l'outil mais un peu perdu, commencez par lire la doc pour vous imprégner des concepts, et surtout relisez la régulièrement.
    Essayez les comportements par défaut avant d'essayer de customizer quoique ce soit, vous verrez comme tout cela est bien pensé.
    Voici deux point d'entrée particulièrement utiles :
    http://symfony.com/doc/current/best_...ces/index.html
    https://symfony.com/doc/current/quic...g_picture.html

    Note : ce message concerne l'utilisation du framework full-stack, pas l'utilisation en stand alone de ses composants.
  • autran
    Rédacteur
    j'ai comme l'impression que symfony s'attaque au segment de marché tenu par node.js
  • phpiste
    Membre averti
    en quoi il sera different de Silex ?
  • MaitrePylos
    Modérateur
    Envoyé par phpiste
    en quoi il sera different de Silex ?

    Réponse de F.Potencier lui même Source

    Envoyé par F.Potencier

    Silex and Symfony MicroKernel are not related at all.

    Silex is an implementation of a framework on top of the Symfony components (done in a very different way than Symfony, the full-stack framework; Pimple, ...).

    Symfony MicroKernel is a "just" different way to **configure** the Symfony full-stack framework, but shares everything else (caching, bundles, ...).
  • adrii
    Candidat au Club
    Envoyé par phpiste
    en quoi il sera different de Silex ?
    Quelqu'un a posé la question sous la news du site de SF et Fabien Potencier a répondu :


    Silex and Symfony MicroKernel are not related at all.

    Silex is an implementation of a framework on top of the Symfony components (done in a very different way than Symfony, the full-stack framework; Pimple, ...).

    Symfony MicroKernel is a "just" different way to **configure** the Symfony full-stack framework, but shares everything else (caching, bundles, ...).