Actualités

[21/07/2017] Smile lance les premiers vélos solaires connectés à l’occasion du Sun Trip Tour 2017

Smile, leader des solutions IoT et open source, confirme sa solide expertise sur le marché de l’embarqué en participant activement à la course de vélos solaires du Sun Trip Tour.

[03/07/2017] Smile remporte le Drupagora d'Or 2017 du meilleur site e-commerce

Le vendredi 30 juin, la 3ème édition des Drupagora d'Or s'est déroulée à Paris.

[30/06/2017] Découvrez les projets de nos équipes au Hackathon Data Énergie

Les 29 et 30 juin, le Hackathon Data Énergie s'est déroulé au Liberté Living Lab à Paris.

Toutes les actualités picto
       

Vous avez besoin de mettre à jour votre Lecteur Flash Flash 7

Guillemet ouvrant l'actualité des solutions
et des technologies open source Guillemet fermant
picto

Tout savoir sur le Symfony Live 2012

Cette année, 600 spectateurs sont venus assister à la conférence du framework PHP. Nous y étions, nous vous racontons.

La conférence, comme l'année dernière se déroule dans trois salles (A,B,C), dans les deux premières, les sujets principaux et dans la dernière la "unconférence" où les membres de la communauté peuvent improviser une discussion de 15 minutes ou proposer une session de 50 minutes.

The power of Open Source

La conférence a démarré par une introduction de Fabien Potencier dans la Salle A.

Cette introduction commence par un discours fédérateur basé sur des statistiques démontrant l'impact de la communauté sur le Framework et l'impact du framework sur le web (visiteurs/top stats github.com).

  • Voici quelques unes de ces statistiques :
  • 3.5 merge de pull requests / jours ce qui correspond à 1000 pull requests mergées depuis 10 mois.
  • 12ème sur 3 millions de repository github en terme d’activité (fork, vues, commits)
  • ~500 contributeurs au framework
  • ~100 contributeurs à la documentation symfony.com
  • 1.5 million de visiteurs uniques sur symfony.com
  • le trafic de symfony.com est supérieur à symfony-project.org depuis maintenant 1 mois.

“It's all about people”

Toujours durant la keynote initiale, les résultats d'un sondage mené sur la communauté nous ont étés présentés.

  • 2/3 des développeurs Symfony travaillent pour des petites entreprises
  • 3/4 en Europe
  • 1/3 utilisent Drupal (fabpot:"That's great!")
  • 1/2 utilisent ZF (fabpot:"Yes ...")
  • Classement des IDE: 1 - Netbeans. 2 - VIM, ECLIPSE, PHPStorm. 3 - textmate

Enfin la keynote fut clôturée par une annonce importante : une certification « Symfony Developper » est disponible.

Ce que nous savons :

  • il n'y a pour le moment pas de study guide
  • "We don't want everyone to be certified, it's gonna be tought" (Fabien Potencier)
  • 75 questions / 90 minutes.
  • l'examen doit avoir lieu dans un centre agréé (ou lors d'une conférence Symfony Live).

"How we built the new Responsive BBC website"

Tout d'abord, la session a démarré par un récapitulatif des différents terminaux et des problématiques liées aux applications mobiles.

Des problématiques telles que la résolution des terminaux, la taille de l’écran, les capacités, la bande passante ont été traitées.

Puis l'aspect architecture a été abordé sans être détaillé étant donné que pas moins d'une vingtaine d'outils complexes aux responsabilités variées ont étés cités. Des outils tels que: Varnish, cappybara, wally, comcumber, tsung, rake, etc..

Applicativement le site internetwww.bbc.comest en Zend Framework, auquel quelques composants ont étés greffés afin de combler les manques de Zend Framework pour ce qui est de la gestion des dépendances et du couplage entre modules (Solution choisie: Pimple et EventDisptacher)

Coté frontend avec pour guideline "Do not alienate low bandwidth users", on notera l'utilisation de composants standalone Javascript tels que "Qwery, Reqwest, Bongo, Curl.js" pour un poids total par pages de ~21kb ainsi que l'utilisation de Lazy Loading afin de garantir "The illusion of speed". Et bien-sûr des feuilles de styles intégrant des règles de responsive design afin d'avoir une seule base de code pour plusieurs affichages.

"Security in real life"

Session présentée par Johannes Schmidt, le leader technique du composant Security de Symfony 2.

La session, malgré un titre très "concret" / "pratique", s'est en fait révélée peu pratique et théorique du moins pour la première partie.

Cette première partie, d'une durée de 40 minutes consistait en une présentation des classes principales du composant security et de leurs responsabilités.

La deuxième partie, d'une durée de 10 minutes consistait en une série de 7 uses cases "comment faire pour ..": "customiser un login avec succès", "customiser une erreur de login", "gérer une connexion via facebook", etc..

https://speakerdeck.com/u/schmittjoh/p/security-in-real-life

"Dependency Management with Composer"

La gestion des dépendances en PHP été jusqu'aujourd’hui inexistante. Il existe depuis 1999 "PEAR", un outil dédié à la réutilisation de code.

Pear a de nombreux inconvénients et n'est pas une solution envisageable pour gérer les dépendances d'un projet client non réutilisable.

En effet, pour gérer des dépendances projets avec Pear, il faudrait que le projet soit packagé avec PEAR.

Composer quant à lui distingue l'aspect "package" et l'aspect "dépendances" ; en effet, n'importe quel code source peut avoir des dépendances sans forcément avoir un intérêt à être packagé. Pour indiquer une liste de dépendances, il suffit de créer à la racine de votre projet un fichier <rayer pom.xml> <rayer deps> composer.json. Ce fichier contient une liste de librairies et versions.

Composer va aller chercher ses librairies dans un repository, par défaut dans "Packagist", solution online open source de référencement de packages, mais il est tout à fait possible de l'utiliser pour vos besoins internes à l'aide de Satis (version standalone de packagist). Composer en plus de rechercher vos dépendances, de les télécharger et de les installer, est capable de vous créer un fichier de classloading compatible avec la psr-0 qui saura gérer le chargement de vos dépendances.

Si fonctionnellement, nous sommes convaincus de son utilité et de sa valeur ajoutée, on peut supposer que Composer va devenir très utilisé. Plusieurs PaaS envisagent son support: servergroove, heroku. En réalité, malgré un état Alpha, c'est déjà le cas.

On a pu voir fleurir sur de nombreux repository open source des fichiers composer.json. Au total: 1500 packages sont indexés par packagist. Le mois dernier, 350 000 installations de ces packages depuisalem packagist ont eu lieu.

http://www.naderman.de/slippy/src/?file=2012-06-09-Composer-Project-Dependency-Management-for-PHP.html

https://github.com/composer/satis

"Symfony 2 components, your best migration kit"

Présenté par Xavier Lacot, la session commence par un historique de l'écosystème PHP, de 2005 à nos jours.

  • 2005 : l’année de PHP 5.0 et des versions Alpha de Frameworks professionnels.
  • 2010 et 2011 : PHP 5.3, l'industrialisation des projets en PHP, les métriques de codes et l'intégration continue sont devenus courants.
  • 2012 : aujourd’hui, PHP 5.4, une communauté de développeurs PHP grandie horizontalement et verticalement. Des librairies abouties.

Que peut-on faire vis à vis des applications réalisées en 2005 avec un code monolithique difficile à maintenir et à comprendre ?

Faut-il tout jeter et repartir de zéro ? "Non absolument pas, cela est trop risqué et bien souvent trop coûteux"

Xavier propose (avec exemples de codes) une approche progressive : passer à PHP 5.3 / 5.4, intégrer des composants de bonnes qualités un par un, ClassLoader, DependencyInjection, HttpFoundation, etc..

https://speakerdeck.com/u/xavierlacot/p/symfony2-components-to-the-rescue-of-your-php-projects

"Fin de la première journée: le Jeopardy"

La première journée de conférence se termine par un Jeopardy. Le Jeopardy est un jeux ou les participants se voient montrer une réponse (sous forme de texte, d'image ou de son) et doivent deviner la question. Par exemple : "..I'm a teapot instructed to brew coffee with the Hyper Coffee Control Protocol..." - réponse: "What is 418 ?"

Voici quelques réponses qui ont été trouvées:

  • How many components will Symfony 2.1 contains ?
  • What is PSR-0 ?
  • Who is not FabNot ?
  • What is YouPorn.com ?

Liste complète de questions et réponses ici:

https://github.com/jmikola/slides/tree/master/20120607-symfony_live/jeopardy

"Designing Http interfaces and restfull webservices"

Qui n'a pas déjà eu à consommer un webservice REST mal conçu et mal conçu au nom de la philosophie "restfull", qui est bien trop souvent simplifiée par "XML ou JSON + HTTP". Cette session tait donc une remise à plat des composantes d'un webservice restfull, à l'aide de quelques rappels sur le protocole http et le modèle de maturité de Richardson.

Divers API ont été prises pour exemple, parmi celles-ci, Twitter comme exemple d'une API mal conçue et lovefilm (service de VOD de Amazon) comme exemple d'une API bien conçue.

https://joind.in/talk/view/6590

"ORM Don't kill you Developpers do"

Cette session est présentée par Guillerme Blanco, dont on ne peut compter les contributions open source (Symfony, Zend, Doctrine, "i'm a code freak".. ).

RTFM : Guillerme explique par ce premier Slide qu'il existe des milliers de plaintes sur des blogs, forums, commentaires des plaintes liées aux performances des ORM et que les 3/4 des plaignants n'ont jamais lu une page de la documentation officielle de l'ORM utilisé. Vient ensuite une présentation des configurations et pratiques qui peuvent influer considérablement sur les performances d'un projet utilisant Doctrine 2.

Dans l'ordre ont été abordés avec exemples d'utilisations :

  • les modes de récupération des relations : Eager ("Don't use it ever"), "Lazy", "Extra-Lazzy"
  • les requêtes et Jointures : veiller à avoir un bon ratio nombre d'objets hydratés / requêtes / nombre d'objets utilisés.
  • les différents niveaux de cache : metadata cache (cache le mapping), query cache (cache la retranscription SQL d'une requête DQL), le result cache (Cache le résultat brut de PDO)
  • les indexes
  • l'héritage dont on notera l'introduction "Avoid using it, but if you want to use it .." et "Inheritance is a very bad thing for any language, prefer composition". Néanmoins, nous avons pu voir un comparatif des trois types d'héritages disponibles.
  • le paramètre casade dans les définitions de relations et l'impact sur toutes les opérations.
  • les différents modes d'hydration des résultats et les getters (getXResult() ou X correspond au mode choisit)
  • les listeners : "As long as it is executed for all entities, don't use it"

http://www.slideshare.net/guilhermeblanco/orm-dont-kill-your-db-developers-do

"Decoupling Content management with Create and PHPCR"

Il y a des S.I ou la politique choisie en terme de composants et de serveurs est définie et difficile à adapter. Les solutions de CMS classiques sont dites "couplées", couplées au stockage, couplées à l'interface frontend et couplées au serveur applicatif.

Le sujet de cette session était donc une présentation d'une architecture d'un CMS découplée à l'aide de PHPCR et Create.js. Create.js est une librairie qui permet d'effectuer des opérations diverses en mode WYSIWYG en interprétant les attributs RDF des balises HTML.

PHPCR est une collection d'interface décrivant comment communiquer avec un JCR tant que celui-ci respecte la JSR-283.

Jackalope est une implémentation de PHPCR et permet la communication avec le JCR JackRabbit.

Nous avons pu voir un exemple d'intégration complète de PHPCR (Implémentation doctrine), et Create.js Dans la deuxième session de l'après-midi "Symfony 2 CMF".

Fonctionnellement, Symfony 2 cmf, n'est pas aussi complet que les CMS bien établis (Drupal, Ez Publish, etc..,) mais ce n'est pas non plus son objectif. Son objectif est de nous permettre de développer un CMS spécifique au besoin d'un projet. "Simple things should be easy, complex things should still be possible".

http://www.slideshare.net/mobile/bergie/decoupling-content-management-with-createjs-and-phpcr

http://symfony.com/blog/the-symfony-content-management-framework-is-getting-ready

"Symfony 2 meets Drupal 8"

Session présentée par Larry Garfield, le leader technique de l'intégration des composants Symfony 2 dans Drupal. Nous attendions cette session avec impatience et celle-ci à répondu à nos questions.

Nous nous demandions quel serait le niveau d’intégration de l'injection de dépendances compte tenu du niveau orienté d'objet actuel de Drupal et du grand nombre de modules PHP 4. Mais aussi, quelles étaient les guidelines vis à vis de la rétro-compatibilité ?

Larry a indiqué dès le démarrage de la session qu'il avait compris les besoins des développeurs à l'aide de deux sondages rhétoriques:

  • Combien parmi vous utilisent Drupal 7 ? (environ 100 personnes lèvent la main)
  • Combien parmi vous utilisent Drupal 7 volontairement ? (3 personnes lèvent la main)

Suivi d'un slide "Drupal is awsome if ... ", "... you are from sales", "... you are a end-user".

La Framication (contraction de fabrication et de Framework) de Drupal a en effet entraîné de nombreux défauts, le Syndrome Not Invented Here, des inconsistances, de la complexité, du code historique très utilisé dans les modules, etc..

Il n'est pas question de faire table rase, mais plutôt d'intégrer petit à petit des composants de Symfony 2 dans Drupal.

http://www.garfieldtech.com/presentations/sfl2012-drupal8/index.html

Fin de la conférence

La conférence se termine par une série de discussions sur des sujets variés. Parmi ceux-ci: un appel à contribution pour Vespolina, une distribution de Symfony avec des bundles bien choisis pour réaliser des sites e-commerce.

Slides : http://vespolina.org/talks/vespolina-lightning-talk-symfony-2012-paris.pdf

Démo fonctionnelle ici : http://try.vespolina.org/

Sandbox : https://github.com/vespolina/vespolina-sandbox

Le nouveau composant de Symfony 2.1 "OptionResolver", qui sera utilisé dans les formulaires pour gérer les options par défaut, les options choisies et les options possibles.

Cette conférence a permis de montrer à l'assemblée que le développement spécifique en PHP évolue vers la réutilisation de code et que Symfony 2 y contribue grandement : les composants complètement standalone (pour la plupart) de Symfony 2, les propositions d’uniformisation des standards PHP par le FIG (« Framework Interroperability Group »), Composer et un intérêt ayant la qualité technique des projets en PHP qui grandit dans la communauté.

Liste des slides publiés disponibles ici :

http://symfony.com/blog/symfony-live-paris-2012

Cyril Quintin
picto

Commentaires

Soyez la premiere personne à ajouter un commentaire sur cet article.
Ecrire un nouveau commentaire