SlideShare une entreprise Scribd logo
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

Recommandé pour vous

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

Travailler en équipe repose sur la coopération, la parallélisation et la synchronisation des tâches : c’est un travail de groupe dont la réussite dépend de méthodes et de routines communes bien définies. Bien heureusement, des code sources gratuits et publics sont disponibles pour aider les développeurs à accélérer leur productivité. Avec des milliers de modules (ou de paquets) enregistrés, les développeurs trouvent toujours des solutions rapides aux problématiques de programmation les plus courantes. En effet, pour éviter les duplications de code et de répéter les mêmes opérations, il est impératif de regrouper des solutions sous forme de modules soit publics soit privés. Dans cette formation Package Manager : Npm & Yarn, nous allons découvrir comment nous aussi publier un module sur le registre npm soit public soit privé.

react package managernpmyarn
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

Vous trouverez la formation complète ici: http://www.alphorm.com/tutoriel/formation-en-ligne-pcsoft-gds-et-centres-de-controle-20 Dans cette formation vous découvrirez la gestion des codes sources dans le cadre d’un projet informatique. Dans un premier temps vous allez apprendre à créer un projet, à le gérer, à affecter des tâches à vos équipes, à gérer les retours de vos clients, tout cela dans le centre de suivi des projets de PCSOFT. Ensuite, nous entrerons dans le vif du sujet en découvrant toutes les facettes du GDS. Nous y verrons notamment la notion de fusion, de branche, de droit, de partage de code sources. Une partie est également dédiée aux administrateurs permettant d’installer et maintenir la base du GDS. Enfin, vous y découvrirez le Cloud de PCSOFT, de la création d’un compte à l’utilisation de PCSCloud dans l’AGL windev. Et cerise sur le gâteau, vous y découvrirez la version 20 de windev, le nouveau centre de contrôle HFSQL et bien d’autres nouveautés !

alphormwindevgds
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6

ASP.NET MVC 6 est la prochaine version du Framework MVC de .NET. Il a pour vocation de tirer partie de la puissance de .NET tout en mettant de côté l'historique parfois pesant d'ASP.NET. Venez découvrir en quoi ASP.NET MVC 6 est un framework MVC moderne et les principales nouveautés de cette nouvelle version majeure.

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

Recommandé pour vous

Alphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm.com Formation TypeScript
Alphorm.com Formation TypeScript

Formation complète ici: http://www.alphorm.com/tutoriel/formation-en-ligne-typescript-le-guide-complet TypeScript est un langage développé par Microsoft, il a été conçu pour rendre la production de code JavaScript plus simple et plus fiable. Dans cette formation TypeScript, vous verrez concrètement ce qu’est TypeScript, comment l’installer et le configurer et vous utiliserez Visual Studio Code comme outil de développement. Vous découvrirez comment utiliser les types dans tous les cas d’utilisation : déclarations de variables, déclaration de fonction, et passages de paramètres. Pendant cette formation TypeScript, vous verrez également comment utiliser dans TypeScript les principes de programmation orientée objet proposés par la dernière version de JavaScript. Le développement d’une classe, l’héritage les interfaces, les différents types de membres. L’utilisation de décorateurs, et le mixage de classe. Vous apprendrez à organiser votre code et à vous appuyer sur des chargeurs de module pour dynamiser la gestion des dépendances. Vous verrez comment utiliser des bibliothèques connues comme JQuery dans un projet TypeScript. A la fin de cette formation TypeScript vous aurez les connaissances nécessaires pour aborder l’utilisation de framework JavaScript comme Angular (Angular2) ou d’autres.

lambdasmembresles types génériques
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 ?

Nombreuses sont les directions digitales ayant aussi bien des besoins éditoriaux que métiers. D'un point de vue business, il n'est pas possible de séparer les deux. Basiquement, quels choix avons-nous ? - partir sur un CMS et coder en "CMS"... - partir sur un framework et réinventer le CMS... Aujourd'hui, une des solutions est d'alier le meilleur des 2 mondes, mais a aussi ses problématiques : - comment faire communiquer les 2 solutions ? - où trouver les bons profils compte tenu de expertise différentes ? - comment ne pas complexifier la maintenance et l'exploitation ? Bref, pour ce qui est d'aujourd'hui, c'est possible, mais difficile... Mais demain ?

drupalcomponentsdrupal7
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

Chacun connait les fondamentaux pour développer une API Web, mais quand il s’agit de performance, de capacité, de montée en charge, avez vous toutes les clefs pour mettre en oeuvre un cache efficace ? Le protocole HTTP dispose d’un mécanisme de cache adapté aux architectures distribuées, découvrez ou redécouvrez-le dans cette session et tirez-en profit dans vos API. Le speaker : David développeur, architecte Java EE et directeur du Pôle Conseil d’Ippon Technologies. Passionné de nouvelles technologies, il s’intéresse aux architectures Java alliant simplicité et efficacité, aptes à répondre aux problèmes concrets. Il est aussi un supporter des API Web et du style d’architecture REST.

web apiapi webhttp
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

Recommandé pour vous

AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP

AlterWay SolutionsLinux Outils Industrialisation PHP

AFUP & PHP @ Supelec
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelec
afup....?php
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

Présentation du gestionnaire de modules du Zend Framework 2

modulemanagerzf2zend framework 2
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 »

Recommandé pour vous

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

Formation complète ici: http://www.alphorm.com/tutoriel/formation-en-ligne-docker-2-2-administration-avancee Aller plus loin dans le DevOps avec Docker CE. Et lancer vous le Dev et la production avec cette formation. La révolution des environnements «virtuels » a commencé. Ludovic Quenec’hdu vous propose de participer à cette révolution. Orchestrer des Micro-services, Manager plusieurs hôtes docker engine, déployer des services, Administrer un Cluster, déployer des stack. Voilà ce que vous allez découvrir durant cette formation Nous verrons ensemble Docker-machine, docker-compose, docker swarm Nous découvrirons les outils complémentaires et essentiels de l’écosystème Docker pour déployer et manager des architectures micro services Docker.

alphormtutotutoriel
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

Faire une application complète (mais simple) en deux heures? Je dois être fou! Mais avec symfony, c'est possible!

phpsymfonyphp quebec
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

Les mises en production ne sont pas condamnées à être des moments de souffrance. En apportant de la rigueur au processus de qualification du code, en automatisant un maximum de tâches et en rendant la gestion des différents environnements la plus transparente possible, cette étape ultime peut alors devenir une simple banalité. Pour atteindre cet objectif, plusieurs aspects doivent être pris en compte, et il faut procéder avec méthode et de façon itérative. La formation Usine Logicielle présente les différentes briques devant être mises en place pour automatiser et contrôler la production de vos livrables ainsi que leur déploiement. Illustrée par des TP lorsque dispensée par nos consultants, cette formation permet de mieux cerner les différentes étapes et leur implication technique sur les projets. Du contrôle de la qualité du code, en passant par l'automatisation de la construction des livrables, la gestion de la configuration et le provisioning des ressources sur les différents environnements, vous découvrirez les étapes essentielles à la construction d'une usine logicielle robuste, permettant de réduire le si stratégique Time To Market tout en maîtrisant le risque.

devopsjenkinsopenformation
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

Recommandé pour vous

Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony

Cette présentation à pour but d'expliquer à des néophites les avantages du framework PHP Symfony. Elle m'a servit en entreprise pour expliquer ses concepts complexe à des non-informaticiens.

frameworkphpjaycreation
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
phpsymfony
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

Les ORM, c’est pratique. Mais cela peut rapidement devenir complexe ou subtile. JPA permet de rapidement modéliser la couche d’accès aux données avec une facilité indiscutable. Cependant, il est préférable de bien en comprendre le fonctionnement pour éviter quelques anti patterns fâcheux. La formation JPA Avancé proposée par Ippon détaille les aspects techniques et permet d’aller plus loin dans la compréhension et la maîtrise. Enrichie par des TP très fournis lorsqu’elle est dispensée par les formateurs Ippon, elle permet d’assimiler en 3 jours les subtilités et offre les outils pour réaliser une couche d’accès aux données de qualité, performante et maintenable. Techniques de modélisation, gestion et subtilités du cache (L1, L2), mécanismes transactionnels, langage de requêtage… Tous ces aspects et bien d’autres sont détaillés et illustrés afin de vous apporter les clefs pour vos prochains projets. Découvrez dès aujourd’hui les slides de cette formation, mis à disposition dans le cadre de l’OpenFormation.

jpahibernatearquillian
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

Recommandé pour vous

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

wallabag est une application opensource de lecture différée : elle vous permet de mettre de côté la version épurée d'un article pour la consulter plus tard où que vous soyez. Créée il y a 3 ans à base de fichiers PHP comme on faisait en 2005, nous avons décidé il y a maintenant un peu plus d'un an de migrer le projet à Symfony. Au cours de ce talk, nous présenterons donc le projet wallabag et tout son écosystème : son concept, son socle technique (API REST, tests unitaires, Rulerz, RabbitMQ, Capistrano), les difficultés rencontrées, la communauté et les projets qui tournent autour, la roadmap pour les semaines à venir.

phptoursymfonywallabag
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

Conférence sur les nouveautés de Drupal 8 lors du Forum PHP 2013 à Paris. Léon Cros a parlé de Views, Symfony2, Editeur CKEditor, Édition directe, HTML5, Mobile et smartphones, services web, ...

2013symfony2drupal 8
Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Ged Open Source - Documation 2010
Ged Open Source - Documation 2010
document managementknowledge treesmile group
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 ?

Recommandé pour vous

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

Le comportement d’un applicatif PHP au sein d’une infrastructure complexe en production est souvent une zone d’ombre pour les développeurs. La détection et la résolution des «bugs» ou comportement en situations extrêmes restent des tâches ardues. Quelle stratégie adopter, quels outils mettre en place et comment organiser ses équipes quand PHP est amené à être un socle technique pour des applications critiques. Une conférence indispensable pour tout architecte ou DSI souhaitant mettre en place ou sous traiter son infrastructure PHP.

phpbonnes pratiquesdveloppement
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

Conférence faite à Confoo Montréal 2010 où j'explique comment on peut facilement développer un module pour ImpressCMS 1.2 en utilisant imBuilding

impresscmsipfrad
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

Recommandé pour vous

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

[Sept 2016] Talk public réalisé chez Microsoft France : présentation d'Azure IoT et retours d'expérience.

cloud azureiotmicrosoft
Industrialisation de PHP - Be Zend 2010
Industrialisation de PHP - Be Zend 2010Industrialisation de PHP - Be Zend 2010
Industrialisation de PHP - Be Zend 2010
phpdveloppementqualit
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

Le comportement d’un applicatif PHP au sein d’une infrastructure complexe en production est souvent une zone d’ombre pour les développeurs. La détection et la résolution des problèmes en situations extrêmes restent des tâches ardues. Quelle stratégie adopter, quels outils mettre en place et comment organiser ses équipes quand PHP est amené à être un socle technique pour des applications critiques ?

mthodologiephpdveloppement
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

Recommandé pour vous

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...

Utiliser des logiciels libres ou open source en collectivités locales : quels enjeux ? quels bénéfices ? Retour d'expérience de Yannick GIQUEL, DSI du département de la Drôme, sur le choix de l'Open Source dans le SI. Cette présentation a été faite dans le cadre la rencontre technique organisée par le réseau TIC d'IDEAL Connaissances le 16 décembre 2014.

web 2.0open sourceportail collaboratif
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

Présentation de la plate-forme avant Démo

voiture connectéecloudobjets connectés
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques

Présentation d'ouverture du thème usine logicielles au JDEV 2017

gitjenkinsagile
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

Recommandé pour vous

Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee

Présentation à Cap'Tronic le 01/10/2014

valorisationrecherchecompétitivité
Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011

L’utilisation de PHP est aujourd’hui généralisée dans tous les départements IT. Reconnue pour son évolutivité et son développement rapide, cette technologie doit désormais répondre à de fortes attentes en termes d’exigences et de qualité. Quels sont les outils nécessaires pour piloter une équipe de développement de taille importante et produire plusieurs centaines de site web par an ? L’heure de l’industrialisation est venue, avec la mise en place d’une planification et d’une organisation de la production de code capables de détecter les bogues avant la publication. Nous verrons les outils et méthodes nécessaires pour piloter la conception, la production, la publication et la gestion d’équipe.

phpindustrialisationopen world forum
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

Pourquoi et comment faire le choix d'une plate-forme open source. Benchmark Stratice et atelier de découverte des LMS open source à Tunis

open sourcelmsstratice
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

Recommandé pour vous

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 donnée à l’afup day Lille 2019.

afupphp
Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008

Un intégrateur partenaire d’une solution libre de gestion de contenu d'entreprise, Alfresco®

alfrescoecmged
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

Recommandé pour vous

IBM Bluemix Paris meetup - - Epitech - 20161109
IBM Bluemix Paris meetup - - Epitech - 20161109IBM Bluemix Paris meetup - - Epitech - 20161109
IBM Bluemix Paris meetup - - Epitech - 20161109

Projet CBIoTS par Sogeti France

developercloudbig data
Présentation programme OREE
Présentation programme OREEPrésentation programme OREE
Présentation programme OREE
travail collaboratifgedportail
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 IDE
Alphorm
 
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
Ippon
 
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
 
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
Alphorm
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
Microsoft
 
Alphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm.com Formation TypeScript
Alphorm.com Formation TypeScript
Alphorm
 
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 2014
Ippon
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
julien pauli
 
AFUP & PHP @ Supelec
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelec
julien 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 modules
Vincent 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 2009
Philippe 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 2014
Ippon
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
Jeremy 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 Professionnels
Fabien 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 2014
Ippon
 
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
Nicolas 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 à Paris
Chipway
 

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 2010
Thomas 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 PHP
Jean-Marc Fontaine
 
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
INBOX International inc.
 
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
FactoVia
 
Industrialisation de PHP - Be Zend 2010
Industrialisation de PHP - Be Zend 2010Industrialisation de PHP - Be Zend 2010
Industrialisation de PHP - Be Zend 2010
Jean-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 2010
Jean-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 -v2
IBM France Lab
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
Johan Moreau
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
Patrick MOREAU
 
Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011
Jean-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 2013
Jean-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 2019
Rodrigue Villetard
 
Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008
mlefebvre
 
IBM Bluemix Paris meetup - - Epitech - 20161109
IBM Bluemix Paris meetup - - Epitech - 20161109IBM Bluemix Paris meetup - - Epitech - 20161109
IBM Bluemix Paris meetup - - Epitech - 20161109
IBM France Lab
 
Présentation programme OREE
Présentation programme OREEPrésentation programme OREE
Présentation programme OREE
CYB@RDECHE
 
WygDay 2010
WygDay 2010WygDay 2010
WygDay 2010
Gregory Renard
 

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 projects
Xavier Lacot
 
Keynote d'ouverture - Forum PHP 2012
Keynote d'ouverture - Forum PHP 2012Keynote d'ouverture - Forum PHP 2012
Keynote d'ouverture - Forum PHP 2012
Xavier 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 Mobile
Xavier 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 2011
Xavier Lacot
 
Abstracting databases access in Titanium Mobile
Abstracting databases access in Titanium MobileAbstracting databases access in Titanium Mobile
Abstracting databases access in Titanium Mobile
Xavier Lacot
 
RESTful avec symfony 1 et Symfony2
RESTful avec symfony 1 et Symfony2RESTful avec symfony 1 et Symfony2
RESTful avec symfony 1 et Symfony2
Xavier 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 products
Xavier 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
 

Dernier

Introduction à Crossplane (Talk Devoxx 2023)
Introduction à Crossplane (Talk Devoxx 2023)Introduction à Crossplane (Talk Devoxx 2023)
Introduction à Crossplane (Talk Devoxx 2023)
Adrien Blind
 
Tutoriel interactif d’ingénierie rapide d’Anthropic.pdf
Tutoriel interactif d’ingénierie rapide d’Anthropic.pdfTutoriel interactif d’ingénierie rapide d’Anthropic.pdf
Tutoriel interactif d’ingénierie rapide d’Anthropic.pdf
Erol GIRAUDY
 
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptx
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptxCours d'Intelligence Artificielle et Apprentissage Automatique.pptx
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptx
Jacques KIZA DIMANDJA
 
CLAUDE 3.5 SONNET EXPLICATIONS sur les usages
CLAUDE 3.5 SONNET EXPLICATIONS sur les usagesCLAUDE 3.5 SONNET EXPLICATIONS sur les usages
CLAUDE 3.5 SONNET EXPLICATIONS sur les usages
Erol GIRAUDY
 
Meetup LFUG : Cahier de vacances Liferay
Meetup LFUG : Cahier de vacances LiferayMeetup LFUG : Cahier de vacances Liferay
Meetup LFUG : Cahier de vacances Liferay
Sébastien Le Marchand
 
Vision de Claude 3.5 SONNET Comment utiliser la vision Utilisez les capacités...
Vision de Claude 3.5 SONNET Comment utiliser la vision Utilisez les capacités...Vision de Claude 3.5 SONNET Comment utiliser la vision Utilisez les capacités...
Vision de Claude 3.5 SONNET Comment utiliser la vision Utilisez les capacités...
Erol GIRAUDY
 
procede de fabrication mecanique et industriel
procede de fabrication mecanique et industrielprocede de fabrication mecanique et industriel
procede de fabrication mecanique et industriel
saadbellaari
 
Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
Maalik Jallo
 

Dernier (8)

Introduction à Crossplane (Talk Devoxx 2023)
Introduction à Crossplane (Talk Devoxx 2023)Introduction à Crossplane (Talk Devoxx 2023)
Introduction à Crossplane (Talk Devoxx 2023)
 
Tutoriel interactif d’ingénierie rapide d’Anthropic.pdf
Tutoriel interactif d’ingénierie rapide d’Anthropic.pdfTutoriel interactif d’ingénierie rapide d’Anthropic.pdf
Tutoriel interactif d’ingénierie rapide d’Anthropic.pdf
 
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptx
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptxCours d'Intelligence Artificielle et Apprentissage Automatique.pptx
Cours d'Intelligence Artificielle et Apprentissage Automatique.pptx
 
CLAUDE 3.5 SONNET EXPLICATIONS sur les usages
CLAUDE 3.5 SONNET EXPLICATIONS sur les usagesCLAUDE 3.5 SONNET EXPLICATIONS sur les usages
CLAUDE 3.5 SONNET EXPLICATIONS sur les usages
 
Meetup LFUG : Cahier de vacances Liferay
Meetup LFUG : Cahier de vacances LiferayMeetup LFUG : Cahier de vacances Liferay
Meetup LFUG : Cahier de vacances Liferay
 
Vision de Claude 3.5 SONNET Comment utiliser la vision Utilisez les capacités...
Vision de Claude 3.5 SONNET Comment utiliser la vision Utilisez les capacités...Vision de Claude 3.5 SONNET Comment utiliser la vision Utilisez les capacités...
Vision de Claude 3.5 SONNET Comment utiliser la vision Utilisez les capacités...
 
procede de fabrication mecanique et industriel
procede de fabrication mecanique et industrielprocede de fabrication mecanique et industriel
procede de fabrication mecanique et industriel
 
Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
Transformation Digitale - Initiez-vous à l'informatique et à l'utilisation de...
 

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/