SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
Symfony Day – 4. Juni 2009
Clever Age | Xavier Lacot
Les frameworks, essentiels dans l'écosystème PHP
Bastien Jaillot, Xavier Lacot – 09 novembre 2010
2
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Clever Age
 Création en 2001 à Paris par des managers expérimentés
 Plusieurs agences en France :

Paris

Lyon
 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 »

Bordeaux

Nantes
3
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
4
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
5
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Développer avec php : les solutions possibles
CITE DES SCIENCES ET DE L'INDUSTRIE - 30, AVENUE CORENTIN-CARIOU - 75930 PARIS CEDEX
6
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
«  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
7
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
8
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
9
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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)
10
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
11
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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 »
12
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Choisir une architecture technique
13
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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 ?
14
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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 !
15
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Solution intégrée
 Liberté d'action possible :

Modifier le code directement :

Attention aux mises à jour

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

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
16
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
« 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 »
17
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
"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”
18
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Choisir une architecture technique
19
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Choisir une architecture technique
 Magento Commerce rencontre un beau succès

Basé sur Zend Framework

A écrasé OScommerce en 2 ans
20
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
21
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Choisir une architecture technique
 L'équation est simple :
… Quelle est votre préférence dans la vie ?
Temps pour
bidouiller
Temps pour
construire
vs.
22
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Les critères de choix d'un framework
23
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
24
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
25
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Fonctionnalités attendues
Abstraction et Persistance des données
Multi SGBD
CRUD, Génération de code et d'interfaces
Validation des formulaires
Sécurité, authentification, autorisations
Gestion des urls (routage)
Langage de templates
Nombreux helpers
AJAX
Cache paramétrable et performant
Gestion des évolutions du modèle
Ecosystème de plugins
Gestion de l'internationalisation (i18n)
IDE
Réutilisation d'outils existants et reconnus
Documentation exhaustive
Support et maintenance
Automatisation de tâches
Tests unitaires et fonctionnels
Chargement de données de test
Licence souple d'utilisation
Web Services REST, SOAP
Montée en compétence rapide
26
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
table Post
id integer(11)
title varchar(100)
body longtext
category_id integer(11)
author varchar(30)
class Post extends BasePost
{
}
$post = new Post();
$post->setTitle('Ceci est un message');
$post->setBody('Corps du post');
$post->setCategoryId(12);
27
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Abstraction et persistance des données
 Deux ORMs majeurs :

Propel,

Doctrine, plus récent, plus actif,
 Des solutions historiques :

PEAR_DB, AdoDB, Creole, etc.
 Ou anecdotiques :

dORM, junction, etc.
 Méfiez vous des performances (modes d'hydratation, cache
de requêtes / resultsets), etc.
 Exigez un ORM !
28
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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 ?
29
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
30
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Les frameworks, d'un point de vue professionnel
31
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
32
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Intégration continue
Poste
développeur
Serveur de
gestion de
sources
Serveur
d'intégration
continue
33
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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,
34
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
É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
35
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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...)
scrumsprint du produit priorisé (backlog)
étude du besoin
réunions de planning
chiffrage livraisons fréquentes
revue de sprint
livrables
36
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Plusieurs générations de frameworks
37
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Plusieurs générations de frameworks
 Le passé : des librairies

Request

Execution

Response
 Le présent : RAD / MVC

Symfony, Zend Framework, CakePHP, Code Igniter, Yii...
 Le futur

Plus découplé ?

Distribué ?

Cloudifié ?
request
response
exécution
38
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
39
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Les frameworks actuels
 Frameworks MVC

Zend Framework

symfony

Cake PHP

Code Igniter

Yii

Jelix

Pluf

etc.
40
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
41
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
42
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
43
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
44
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
45
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Les défis de l'avenir des frameworks
46
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
47
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
48
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
49
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
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
50
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot
Questions
51
Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010
Clever Age | Bastien Jaillot, Xavier Lacot

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/

Contenu connexe

Tendances

Alphorm.com Formation Data Science avec Python - Prise en main des IDE
Alphorm.com Formation Data Science avec Python - Prise en main des IDEAlphorm.com Formation Data Science avec Python - Prise en main des IDE
Alphorm.com Formation Data Science avec Python - Prise en main des IDEAlphorm
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
 
Alphorm.com Formation React Package Manager : npm et yarn
Alphorm.com Formation React Package Manager : npm et yarnAlphorm.com Formation React Package Manager : npm et yarn
Alphorm.com Formation React Package Manager : npm et yarnAlphorm
 
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôleAlphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôleAlphorm
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6Microsoft
 
Alphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
 
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Ippon
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPjulien pauli
 
AFUP & PHP @ Supelec
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelecjulien pauli
 
Zend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modulesZend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modulesVincent Blanchon
 
Alphorm.com Formation Docker (2/2) - Administration Avancée
Alphorm.com Formation Docker (2/2) - Administration Avancée Alphorm.com Formation Docker (2/2) - Administration Avancée
Alphorm.com Formation Docker (2/2) - Administration Avancée Alphorm
 
Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Philippe Gamache
 
Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014Ippon
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfonyJeremy Gachet
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les ProfessionnelsFabien Potencier
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Ippon
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3Nicolas Lœuillet
 
Conference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisConference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisChipway
 

Tendances (20)

Alphorm.com Formation Data Science avec Python - Prise en main des IDE
Alphorm.com Formation Data Science avec Python - Prise en main des IDEAlphorm.com Formation Data Science avec Python - Prise en main des IDE
Alphorm.com Formation Data Science avec Python - Prise en main des IDE
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
PHP5 et Zend Framework
PHP5 et Zend FrameworkPHP5 et Zend Framework
PHP5 et Zend Framework
 
Alphorm.com Formation React Package Manager : npm et yarn
Alphorm.com Formation React Package Manager : npm et yarnAlphorm.com Formation React Package Manager : npm et yarn
Alphorm.com Formation React Package Manager : npm et yarn
 
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôleAlphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
 
Alphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm.com Formation TypeScript
Alphorm.com Formation TypeScript
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
 
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
 
AFUP & PHP @ Supelec
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelec
 
Zend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modulesZend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modules
 
Alphorm.com Formation Docker (2/2) - Administration Avancée
Alphorm.com Formation Docker (2/2) - Administration Avancée Alphorm.com Formation Docker (2/2) - Administration Avancée
Alphorm.com Formation Docker (2/2) - Administration Avancée
 
Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009
 
Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014Formation Usine Logicielle gratuite par Ippon 2014
Formation Usine Logicielle gratuite par Ippon 2014
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnels
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3
 
Conference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisConference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à Paris
 

Similaire à Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-lacot-bastien-jaillot-clever-age

Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Thomas Choppy
 
Solutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHPSolutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHPJean-Marc Fontaine
 
VISEO Shake the Microsoft business - comment rapidement batir une solution IoT
VISEO Shake the Microsoft business - comment rapidement batir une solution IoTVISEO Shake the Microsoft business - comment rapidement batir une solution IoT
VISEO Shake the Microsoft business - comment rapidement batir une solution IoTFactoVia
 
Industrialisation de PHP - Be Zend 2010
Industrialisation de PHP - Be Zend 2010Industrialisation de PHP - Be Zend 2010
Industrialisation de PHP - Be Zend 2010Jean-Marc Fontaine
 
Industrialiser ses développements PHP - RMLL 2010
Industrialiser ses développements PHP - RMLL 2010Industrialiser ses développements PHP - RMLL 2010
Industrialiser ses développements PHP - RMLL 2010Jean-Marc Fontaine
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Ametys
 
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2IBM France Lab
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiquesJohan Moreau
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteePatrick MOREAU
 
Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Jean-Marc Fontaine
 
LMS : faire le choix de l'open source - Forum elearning Tunisie 2013
LMS : faire le choix de l'open source - Forum elearning Tunisie 2013LMS : faire le choix de l'open source - Forum elearning Tunisie 2013
LMS : faire le choix de l'open source - Forum elearning Tunisie 2013Jean-Luc Peuvrier
 
Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)Gregory Renard
 
Une application sans framework en 2019
Une application sans framework en 2019Une application sans framework en 2019
Une application sans framework en 2019Rodrigue Villetard
 
Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008mlefebvre
 
IBM Bluemix Paris meetup - - Epitech - 20161109
IBM Bluemix Paris meetup - - Epitech - 20161109IBM Bluemix Paris meetup - - Epitech - 20161109
IBM Bluemix Paris meetup - - Epitech - 20161109IBM France Lab
 
Présentation programme OREE
Présentation programme OREEPrésentation programme OREE
Présentation programme OREECYB@RDECHE
 

Similaire à Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-lacot-bastien-jaillot-clever-age (20)

Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Ged Open Source - Documation 2010
Ged Open Source - Documation 2010
 
Solutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHPSolutions Linux 2010 - Maîtrise du développement PHP
Solutions Linux 2010 - Maîtrise du développement PHP
 
RAD avec IPF pour ImpressCMS 1.2
RAD avec IPF pour ImpressCMS 1.2RAD avec IPF pour ImpressCMS 1.2
RAD avec IPF pour ImpressCMS 1.2
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 
VISEO Shake the Microsoft business - comment rapidement batir une solution IoT
VISEO Shake the Microsoft business - comment rapidement batir une solution IoTVISEO Shake the Microsoft business - comment rapidement batir une solution IoT
VISEO Shake the Microsoft business - comment rapidement batir une solution IoT
 
Industrialisation de PHP - Be Zend 2010
Industrialisation de PHP - Be Zend 2010Industrialisation de PHP - Be Zend 2010
Industrialisation de PHP - Be Zend 2010
 
Industrialiser ses développements PHP - RMLL 2010
Industrialiser ses développements PHP - RMLL 2010Industrialiser ses développements PHP - RMLL 2010
Industrialiser ses développements PHP - RMLL 2010
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
 
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
 
Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011
 
LMS : faire le choix de l'open source - Forum elearning Tunisie 2013
LMS : faire le choix de l'open source - Forum elearning Tunisie 2013LMS : faire le choix de l'open source - Forum elearning Tunisie 2013
LMS : faire le choix de l'open source - Forum elearning Tunisie 2013
 
Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)
 
Une application sans framework en 2019
Une application sans framework en 2019Une application sans framework en 2019
Une application sans framework en 2019
 
Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008
 
IBM Bluemix Paris meetup - - Epitech - 20161109
IBM Bluemix Paris meetup - - Epitech - 20161109IBM Bluemix Paris meetup - - Epitech - 20161109
IBM Bluemix Paris meetup - - Epitech - 20161109
 
Présentation programme OREE
Présentation programme OREEPrésentation programme OREE
Présentation programme OREE
 
output
outputoutput
output
 
WygDay 2010
WygDay 2010WygDay 2010
WygDay 2010
 

Plus de Xavier Lacot

Symfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projectsSymfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projectsXavier Lacot
 
Keynote d'ouverture - Forum PHP 2012
Keynote d'ouverture - Forum PHP 2012Keynote d'ouverture - Forum PHP 2012
Keynote d'ouverture - Forum PHP 2012Xavier Lacot
 
Développement Cross-Platform avec Titanium Mobile
Développement Cross-Platform avec Titanium MobileDéveloppement Cross-Platform avec Titanium Mobile
Développement Cross-Platform avec Titanium MobileXavier Lacot
 
Keynote de clôture - PHP Tour 2011
Keynote de clôture - PHP Tour 2011Keynote de clôture - PHP Tour 2011
Keynote de clôture - PHP Tour 2011Xavier Lacot
 
Abstracting databases access in Titanium Mobile
Abstracting databases access in Titanium MobileAbstracting databases access in Titanium Mobile
Abstracting databases access in Titanium MobileXavier Lacot
 
RESTful avec symfony 1 et Symfony2
RESTful avec symfony 1 et Symfony2RESTful avec symfony 1 et Symfony2
RESTful avec symfony 1 et Symfony2Xavier Lacot
 
Symfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsSymfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsXavier Lacot
 

Plus de Xavier Lacot (7)

Symfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projectsSymfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projects
 
Keynote d'ouverture - Forum PHP 2012
Keynote d'ouverture - Forum PHP 2012Keynote d'ouverture - Forum PHP 2012
Keynote d'ouverture - Forum PHP 2012
 
Développement Cross-Platform avec Titanium Mobile
Développement Cross-Platform avec Titanium MobileDéveloppement Cross-Platform avec Titanium Mobile
Développement Cross-Platform avec Titanium Mobile
 
Keynote de clôture - PHP Tour 2011
Keynote de clôture - PHP Tour 2011Keynote de clôture - PHP Tour 2011
Keynote de clôture - PHP Tour 2011
 
Abstracting databases access in Titanium Mobile
Abstracting databases access in Titanium MobileAbstracting databases access in Titanium Mobile
Abstracting databases access in Titanium Mobile
 
RESTful avec symfony 1 et Symfony2
RESTful avec symfony 1 et Symfony2RESTful avec symfony 1 et Symfony2
RESTful avec symfony 1 et Symfony2
 
Symfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsSymfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating products
 

Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-lacot-bastien-jaillot-clever-age

  • 1. Symfony Day – 4. Juni 2009 Clever Age | Xavier Lacot Les frameworks, essentiels dans l'écosystème PHP Bastien Jaillot, Xavier Lacot – 09 novembre 2010
  • 2. 2 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Clever Age  Création en 2001 à Paris par des managers expérimentés  Plusieurs agences en France :  Paris  Lyon  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 »  Bordeaux  Nantes
  • 3. 3 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 4. 4 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 5. 5 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Développer avec php : les solutions possibles CITE DES SCIENCES ET DE L'INDUSTRIE - 30, AVENUE CORENTIN-CARIOU - 75930 PARIS CEDEX
  • 6. 6 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot «  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
  • 7. 7 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 8. 8 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 9. 9 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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)
  • 10. 10 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 11. 11 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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 »
  • 12. 12 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Choisir une architecture technique
  • 13. 13 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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 ?
  • 14. 14 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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 !
  • 15. 15 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Solution intégrée  Liberté d'action possible :  Modifier le code directement :  Attention aux mises à jour  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  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
  • 16. 16 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot « 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 »
  • 17. 17 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot "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”
  • 18. 18 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Choisir une architecture technique
  • 19. 19 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Choisir une architecture technique  Magento Commerce rencontre un beau succès  Basé sur Zend Framework  A écrasé OScommerce en 2 ans
  • 20. 20 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 21. 21 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Choisir une architecture technique  L'équation est simple : … Quelle est votre préférence dans la vie ? Temps pour bidouiller Temps pour construire vs.
  • 22. 22 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Les critères de choix d'un framework
  • 23. 23 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 24. 24 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 25. 25 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Fonctionnalités attendues Abstraction et Persistance des données Multi SGBD CRUD, Génération de code et d'interfaces Validation des formulaires Sécurité, authentification, autorisations Gestion des urls (routage) Langage de templates Nombreux helpers AJAX Cache paramétrable et performant Gestion des évolutions du modèle Ecosystème de plugins Gestion de l'internationalisation (i18n) IDE Réutilisation d'outils existants et reconnus Documentation exhaustive Support et maintenance Automatisation de tâches Tests unitaires et fonctionnels Chargement de données de test Licence souple d'utilisation Web Services REST, SOAP Montée en compétence rapide
  • 26. 26 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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 table Post id integer(11) title varchar(100) body longtext category_id integer(11) author varchar(30) class Post extends BasePost { } $post = new Post(); $post->setTitle('Ceci est un message'); $post->setBody('Corps du post'); $post->setCategoryId(12);
  • 27. 27 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Abstraction et persistance des données  Deux ORMs majeurs :  Propel,  Doctrine, plus récent, plus actif,  Des solutions historiques :  PEAR_DB, AdoDB, Creole, etc.  Ou anecdotiques :  dORM, junction, etc.  Méfiez vous des performances (modes d'hydratation, cache de requêtes / resultsets), etc.  Exigez un ORM !
  • 28. 28 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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 ?
  • 29. 29 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 30. 30 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Les frameworks, d'un point de vue professionnel
  • 31. 31 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 32. 32 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Intégration continue Poste développeur Serveur de gestion de sources Serveur d'intégration continue
  • 33. 33 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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,
  • 34. 34 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot É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
  • 35. 35 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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...) scrumsprint du produit priorisé (backlog) étude du besoin réunions de planning chiffrage livraisons fréquentes revue de sprint livrables
  • 36. 36 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Plusieurs générations de frameworks
  • 37. 37 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Plusieurs générations de frameworks  Le passé : des librairies  Request  Execution  Response  Le présent : RAD / MVC  Symfony, Zend Framework, CakePHP, Code Igniter, Yii...  Le futur  Plus découplé ?  Distribué ?  Cloudifié ? request response exécution
  • 38. 38 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 39. 39 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Les frameworks actuels  Frameworks MVC  Zend Framework  symfony  Cake PHP  Code Igniter  Yii  Jelix  Pluf  etc.
  • 40. 40 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 41. 41 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 42. 42 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 43. 43 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 44. 44 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 45. 45 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Les défis de l'avenir des frameworks
  • 46. 46 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 47. 47 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 48. 48 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 49. 49 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot 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
  • 50. 50 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot Questions
  • 51. 51 Les frameworks, essentiels dans l'écosystème PHP – 9 novembre 2010 Clever Age | Bastien Jaillot, Xavier Lacot  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/