Les frameworks, essentiels dans l'écosystème PHP



Documents pareils
THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Construire un réseau social avec Symfony Xavier Lacot Clever Age. Symfony Live 11 et 12 juin 2009 Clever Age Xavier Lacot

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

les techniques d'extraction, les formulaires et intégration dans un site WEB

Nos webmasters, web designers et ingénieurs de développement vous accompagnent dans vos projets afin de vous apporter entière satisfaction.

PHP 5. avancé. 3 e édition. Eric Daspet. Cyril Pierre de Geyer. Préface de Damien Seguy

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP - MAGENT O. 30 ans - 6 ans d'expérience

Cursus 2013 Déployer un Content Management System

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

1 JBoss Entreprise Middleware

COMPÉTENCES TECHNIQUES

Profil. Formations Certifications. Etienne de LONGEAUX Architecte logiciel/ Lead développeur PHP5/SYMFONY2/ZEND 13 ans d expérience.

Les salaires de L écosystème php en france. L Association Française des Utilisateurs de PHP (AFUP) le cabinet de recrutement spécialisé Agence-e

Loïc Rossignol Ingénieur Consultant

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Présentation et références de la société

LICENCE PROFESSIONNELLE

CQP Développeur Nouvelles Technologies (DNT)

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

Du point de vue des entreprises, faut-il privilégier les Frameworks PHP aux CMS Open pour la création de sites internet?

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

CMS Open Source : état de l'art et méthodologie de choix

Drupal, pour quel usage? Comment se positionne Drupal? Les fonctionnalités de Drupal et de son écosystème. L'architecture technique et logicielle Le

Devenez un véritable développeur web en 3 mois!

En suivant l'initiative d'amanda Wagener sur iwanttolearnruby.com, j'ai créé et anime jeveuxapprendreruby.fr.

Découvrir Drupal au travers d un cas client

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP. 27 ans - 6 ans d'expérience

Panorama des CMS open sources. Sylvain Ferrand, CMAP École Polytechnique Journées Mathrice, Poitiers, 19 mars 2008

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Drupal un CMS orienté mé2er. Romain JARRAUD Mathieu GROS

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Agile 360 Product Owner Scrum Master

Découvrir le CMS. et l utiliser dans une approche pro!

Formation Magento Intégrateur / Designer

1/15. Jean Bernard CRAMPES Daniel VIELLE

Démarrer rapidement un site avec Drupal 7

Découvrir Drupal, le CMS Open Source de référence. Michel-Marie MAUDET Linagora /

Urbanisation des systèmes d information

Offres de stages 2011/2012

Estimer et mesurer la performance des projets agiles avec les points de fonction

INGÉNIEUR - DÉVELOPPEUR SENIOR PHP. 28 ans - 8 ans d'expérience

Gestion de la relation client. Quelle est la meilleure stratégie à mettre en place?

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Drupal, un CMS libre adapté aux besoins des bibliothèques

Point sur les solutions de développement d apps pour les périphériques mobiles

Comment devenir éditeur de logiciels libres quand on est une entreprise?

Web & Libre. Outils pour être présent sur le net librement

Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

Introduction MOSS 2007

GWT à l'épreuve du feu. by Sami Jaber (DNG Consulting)

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

La solution IBM Rational pour une ALM Agile

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet en nouvelles technologies de l information et de la communication

Architecture Agile et développement durable

APPLICATIONS MOBILES Catalogue de services Econocom-Osiatis

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Formation Découverte du Web

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Présentation de solutions de Progiciels de Gestion d'epn Forum des Usages Brest 2010

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

Gagner en performance avec un extranet. et mener son projet extranet?

Intégration de systèmes

Savoir- Faire Offres mé1ers Offres technologiques

Nouveautés de Drupal 8. Léon

CA 2011 M. +40% de croissance 7. agences en France. Paris Lyon Nantes Bordeaux Montpellier Aix en Provence

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

Drupal vs La concurrence

Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com 04/09/2008

Scrum + Drupal = Julien Dubois

Mettre en place une infrastructure Web nouvelle génération avec Drupal et Acquia

Offre Référentiel d échange

42 Formations Web & Open Source

ezpublish vs Drupal It s all about experience

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Joomla! Création et administration d'un site web - Version numérique

Quel logiciel DE CRM choisir pour votre force de vente terrain?

Sommaire. 1. Présentation de WordPress. 2. Hébergement et installation. 3. Prise en main, ajouter des contenus

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Offres d alternance 2015 Sopra Steria - Rennes

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

proximite + qualite + competitivite

Un site web collaboratif avec Drupal. Judith Hannoun - Journées INSHS 16 Octobre 2012

SOMMAIRE 1. NOTRE AGENCE NOS PRESTATIONS NOTRE MÉTHODOLOGIE PROJET NOS OFFRES LES ATOUTS DE NOS OFFRES...

NANTES ANGERS RENNES

ISTEX-SNU. ISTEX en quelques clics dans votre portail documentaire. Séminaire technique ISTEX 18 mars 2015

Rapport de stage Clément MOYSAN

COMMENT LIRE UN DEVIS DE CREATION DE SITE WEB?

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Transcription:

Les frameworks, essentiels dans l'écosystème PHP Bastien Jaillot, Xavier Lacot 09 novembre 2010 Symfony Day 4. Juni 2009 Clever Age Xavier Lacot

Clever Age Création en 2001 à Paris par des managers expérimentés Plusieurs agences en France : Paris Bordeaux Lyon Nantes Valeurs fondatrices : Indépendance, Veille technologique, Conviction Quelques chiffres : CA 2009 : 6 M Effectif au 01/11/2010 : 85 personnes Notre Mission : «Concevoir des systèmes informatiques flexibles en limitant la dépendance vis-à-vis des prestataires et des éditeurs» 2

Qui sommes nous? Bastien : Spécialiste Frameworks et CMS Plusieurs contributions (Jelix, indefero, symfony, Drupal) Expert technique PHP chez Clever Age http://twitter.com/bastnic Xavier : Expert Frameworks, développeur symfony depuis fin 2005 Plusieurs contributions (plugins, doc, patches, etc.) Leader PHP chez Clever Age En charge du pôle d'expertise de l'entreprise http://twitter.com/xavierlacot 3

Sommaire Développer avec PHP : les solutions possibles Choisir une architecture technique Les critères de choix d'un framework Les frameworks, d'un point de vue professionnel Plusieurs générations de frameworks Les défis de l'avenir des frameworks 4

CITE DES SCIENCES ET DE L'INDUSTRIE - 30, AVENUE CORENTIN-CARIOU - 75930 PARIS CEDEX Développer avec php : les solutions possibles 5

«PHP is just a stupid tool» «PHP is not cool, this is what you do with it which is cool» Rasmus Lerdorf, Forum PHP 2010 6

La vie d'un développeur (Web) Les projets Web couvrent un large panel Gestion de contenus Réseaux sociaux Gestion de la relation client (CRM) Communication Solutions collaboratives Partage de fichiers Applications métiers spécifiques Dans chaque projet (Web), un développeur va s'arracher les cheveux 7

La vie d'un développeur (Web) Écarts de niveaux de complexité 5 jours d'intégration html pour quelques pages Web + de 1000 jours de développement en utilisant un framework pour construire un plateforme social «web 2.0» Très souvent, la «bonne» solution n'existe pas 8

La vie d'un développeur (Web) Le développeur Web a le choix entre plusieurs types de produits : Frameworks Solution intégrée open source Solution intégrée propriétaire (mauvais) Framework propriétaire (très mauvais) 9

La vie d'un développeur (Web) Qu'est ce que je qualifie de «solution intégrée»? CMS, forums, outils de CRM, blogs, galerie photo, etc. Construit comme une solution facilement utilisable plutôt qu'une plateforme de développement Principalement utilisable comme archive compressée, puis capable de se mettre à jour en toute autonomie Non basée sur un framework 10

La vie d'un développeur (Web)...et de «frameworks»? Non «orienté fonctionnalité» Conçu comme une plateforme de développement DIY do it yourself (fait le toi-même) Pas d'«effet waouw» 11

Choisir une architecture technique 12

Choisir une architecture technique Plusieurs considérations : Complexité du projet (charge de travail, fonctionnalité, scalabilité) Méthodologie de développement Y a-t-il beaucoup de personnalisation? Nouvelle fonctionnalité Suppression de fonctionnalité Est-ce que des plugins/extensions existent, couvrent-ils tous les besoins? 13

Solution intégrée Une solution intégrée est une bonne option : Ça nous fait gagner du temps, de l'argent et évite la pression Ça peut nous faire construire une meilleure application Au moins le client bénéficiera de toutes les fonctionnalités que proposent l'outil Ne pas réinventer la roue! Solutions parfaites pour les besoins communs le problème c'est que les clients ont rarement des besoins communs! 14

Solution intégrée Liberté d'action possible : Modifier le code directement : Modifier le code directement + soumettre un ticket : Plus de travail (les contributions ont besoin d'être propre et générique) Pas sûr d'être acceptée (retour au point ci-dessus) Créer des extensions quand c'est possible Attention aux mises à jour Ces solutions ne sont pas conçues pour être étendues Jeter cette solution et la re-coder en utilisant un framework Profitez en pour définir les vrais besoins 15

«Avec un framework on adapte l'outil aux besoins du client, alors qu'avec une solution intégrée on adapte les besoins du client à l'outil» 16

"CMS are good to make simple websites that are mainly meant to be looked at, while frameworks are good to make complex websites that are meant to be interacted with 17

Choisir une architecture technique 18

Choisir une architecture technique Magento Commerce rencontre un beau succès Basé sur Zend Framework A écrasé OScommerce en 2 ans 19

Choisir une architecture technique Règles d'or Aller à la simplicité ne pas surcharger d'options inutiles Le back-office doit-être simple à utiliser Éditeur WYSIWYG Widgets adaptés Suivre les standards «never hack up» Documentation! Ouvrir le développement : rechercher des contributeurs Release early, release often 20

Choisir une architecture technique L'équation est simple : Temps pour bidouiller vs. Temps pour construire Quelle est votre préférence dans la vie? 21

Les critères de choix d'un framework 22

Intérêts de l'emploi d'un framework Des objectifs généraux : Accélérer les développements Simplifier les mises à jour et les évolutions Améliorer les performances (attention) Favoriser l'internationalisation Améliorer la qualité Industrialiser la production Ne plus «ré-inventer la roue» Profiter du travail des autres 23

Intérêts de l'emploi d'un framework Evaluation de frameworks pas évidentes Ne lisez pas l'avis des autres, faites vous le votre. A prendre en compte : Risques pour l'utilisateur Performances (applicative + de développement) Sécurité Modèle de conception Outillage (CLI, journaux, scaffolding, tests) Respect des standards / intégration briques externes Extensibilité i18n 24

Fonctionnalités attendues Abstraction et Persistance des données Gestion de l'internationalisation (i18n) Multi SGBD IDE CRUD, Génération de code et d'interfaces Réutilisation d'outils existants et reconnus Validation des formulaires Documentation exhaustive Sécurité, authentification, autorisations Support et maintenance Gestion des urls (routage) Automatisation de tâches Langage de templates Tests unitaires et fonctionnels Nombreux helpers Chargement de données de test AJAX Cache paramétrable et performant Gestion des évolutions du modèle Ecosystème de plugins Licence souple d'utilisation Web Services REST, SOAP Montée en compétence rapide 25

Abstraction et persistance des données PHP «à l'ancienne» : mélange de PHP et de code SQL PHP «aujourd'hui» : utilisation d'outils d'abstraction de l'accès aux données : Abstraction (ORM) : Relation Objet Relationnel Persistance (DBAL) : abstraction de la base de données Le principe : des classes représentent les tables de la base de données et les entrées qu'elles contiennent id integer(11) class Post extends BasePost { } title varchar(100) $post = new Post(); body longtext category_id integer(11) table Post author varchar(30) $post->settitle('ceci est un message'); $post->setbody('corps du post'); $post->setcategoryid(12); 26

Abstraction et persistance des données Deux ORMs majeurs : Propel, Doctrine, plus récent, plus actif, Des solutions historiques : Ou anecdotiques : PEAR_DB, AdoDB, Creole, etc. dorm, junction, etc. Méfiez vous des performances (modes d'hydratation, cache de requêtes / resultsets), etc. Exigez un ORM! 27

Des critères d'évaluation Sauf cas très particulier (pas le votre), refusez toujours les frameworks de développement closed source. Sinon, on se voit après la conférence et vous me faites un chèque en blanc? 28

Des critères d'évaluation Taux d'adoption Documentation Communauté Processus de développement Intégration dans le SI Il faut se faciliter la vie! Privilégier : les projets maintenus et fortement documentés les architectures ouvertes (plugins, modules etc.) Éviter : les choix à court terme Le framework du copain ou du premier intégrateur venu 29

Les frameworks, d'un point de vue professionnel 30

Les frameworks, d'un point de vue professionnel Plusieurs aspects intéressants en environnement professionnel : Intégration continue Gestion de sources Mutualisation Procédures de déploiement Méthodologies de travail 31

Intégration continue Poste développeur Serveur de gestion de sources Serveur d'intégration continue 32

Test unitaires et fonctionnels Objectif : pouvoir maîtriser la qualité du projet au cours de son développement et de son cycle de vie Tester son application : coûte du temps au début, en fait gagner ensuite. nécessite de la rigueur et de la constance Plusieurs outils : PHPUnit : la référence Lime (fourni avec symfony) Atoum? Tests fonctionnels : Selenium, 33

Évaluation des charges Charges plus faciles à évaluer : Prévoyez du temps d'initialisation Recensez les tâches Prévoyez du temps de recette Examinez les contributions utilisables Plugins, modules Produits tiers Charges proportionnelles à la complexité du projet Mais possible de capitaliser 34

Les frameworks, d'un point de vue professionnel Méthodes agiles. Ex. Scrum : Qu'est ce que j'ai fait hier, qu'est ce je fais aujourd'hui? Les difficultés rencontrés (en attente d'infos? Difficultés techniques?...) Objectifs : Rythme durable Informe de l'existant et donne une vision de l'avancement (visibilité) Améliorer l'esprit d'équipe (partage de connaissance, questions sur les besoins...) livrables chiffrage revue de sprint scrum livraisons fréquentes étude du besoin réunions de planning sprint du produit priorisé (backlog) 35

Plusieurs générations de frameworks 36

Plusieurs générations de frameworks Le passé : des librairies Request Execution Response response exécution Le présent : RAD / MVC reques t Symfony, Zend Framework, CakePHP, Code Igniter, Yii... Le futur Plus découplé? Distribué? Cloudifié? 37

Le passé des frameworks Peu de frameworks jusqu'en 2005 (RoR) PEAR Débuté en 1999 Collection de bibliothèques de haute qualité (à l'époque) pour promouvoir la réutilisabilité en PHP Encore actif Smarty Moteur de template, 1.0 en 2004 Encore actif 38

Les frameworks actuels Frameworks MVC Zend Framework symfony Cake PHP Code Igniter Yii Jelix Pluf etc. 39

Zend Framework Version 1.11.0 (version 1.0 en 2007) Bibliothèque de composant accompagné d'une brique MVC Soutenue par la société Zend De nombreux IDE et bundles aident à son développement Documentation très complète Composants à jour sur les APIs les plus connues (Google, Amazon, Flickr) Conférence demain 10/11/2010 à 9h45 par Gauthier Delamarre 40

symfony Version stable 1.4 (version 1.0 en 2007) Framework «Full stack» MVC Soutenue par la société Sensio Documentation orientée sous forme de livres La star : le «Jobeet», génial pour apprendre le framework Symfony2 en route... Conférence demain 10/11/2010 à 9h présentée par Hugo Hamon 41

CakePHP Version actuelle 1.3.5 (version 1.0 en 2006) Compatible PHP4 Implémentation de Ruby on Rails en PHP Conférence demain 10/11/2010 à 11h par Aurélien Vairet et Pierre Martin 42

Jelix Version 1.2 (version 1.0 en 2008) Développement communautaire Projet français Documentation complète Système d'installation et de mise à jour de modules Projet présenté par Laurent Jouanneau et Olivier Demah 43

Les prochaines générations de frameworks Fin du 1er cycle de vie des frameworks Bientôt : Zend framework 2 Symfony2 Nouvelles tendances architecturales Injection de dépendance Utilisation des namespaces Retrait de singletons Plus légers Abandon progressive des frameworks n'évoluant plus 44

Les défis de l'avenir des frameworks 45

Les défis de l'avenir des frameworks Les performances Les perfs actuelles ne sont pas satisfaisantes Sites aux fonctionnalités de plus en plus riches Solution actuelle : multiplication des machines Solutions envisagées Compilation? (cf. hiphop-php) Meilleur fonctionnement distribué (cloud) ESI (Edge Side Includes) Tirer profit de bases NoSQL 46

Les défis de l'avenir des frameworks La pénétration du marché reste faible Objectifs : Plus grande adoption Adoption par des projets OSS (PHPBB, des projets de CMS?, etc.) Attention : maîtrise des cycles de vie des projets 47

Les défis de l'avenir des frameworks Défis : Plus grande adoption «grand public» Adoption par des projets OSS PHPBB avec Symfony2, des projets de CMS? Interopérabilité des contributions? Attention : maîtrise des cycles de vie des projets Changer de version majeure réécrire le produit? Exemple de Magento 48

Les défis de l'avenir des frameworks Intégration de nouveaux types d'outils «modernes» Bases NoSQL MongoDB, Redis, Cassandra, etc. Indexes (recherche) Lucene Solr, ElasticSearch, etc. Messaging Queues (AMQP, XMPP) Debuggers plus poussés Industrialisation plus facile Cloud Choix d'une nouvelle architecture possibles BC break Attention à ne pas «JAVAiser» PHP 49

Questions 50

Récompense des projets Web innovants HTML5 OpenData Mobilité etc. Appel à candidatures : candidat_awards@clever-age.com Bientôt sur http://awards.clever-age.com/ 51