SlideShare une entreprise Scribd logo
1  sur  16
{
Introduction à Zend Framework
Gauthier Delamarre – VA Consulting
10 Novembre 2010
{ A propos de … moi
●Développeur et architecte PHP depuis 1999
●Certifié ZCE pour PHP5 et Zend Framework
●Journaliste informatique et blogueur
●Responsable des services professionnels pour
VA Consulting (Luxembourg)
●Vice-secrétaire de l'AFUP
{Une (très) brève histoire de ZF
● L'impulsion du projet et l'encadrement sont
fournis par Zend Technologies
● Démarré en 2005, la version 1.0 du projet sort
en Juin 2007
● Les versions principales suivantes ont été la
1.5 (ajout des Forms et Layouts) et la 1.8
(apparition de Zend_Application)
● « There's a fork in the road » : les branches 1.x
et 2.x vont coexister
{ Principales caractéristiques
● Framework 100% objet
● Aucune variable globale
● Aucune fonction globale
● Aucune constante globale
● Application de nombreux design patterns
– MVC + Front Controller
– Adapters
– Factories
– ...
{ Principales caractéristiques
● Exploitation maximum de PHP 5
● Pas de compatibilité ascendante
– PHP >= 5.1.4 jusqu'à la version 1.7
– PHP >= 5.2.4 depuis
– NOTE PHP < 5.3 dans les deux cas !
● Classes abstraites
● Interfaces
● SPL
● Méthodes magiques
{ Principales caractéristiques
● « Business-friendly »
● Licence BSD
● CLAs
– Individual CLA
– Corporate CLA
{ Concepts clés
● Couplage faible
● Utilisation autonome des composants
● « Use-at-will »
● Extrême souplesse
● Classes abstraites et interfaces (injection de
dépendances)
● Mécanismes de chargement automatiques
« intelligents »
● Personnalisation « chirurgicale »
{ Concepts clés
● Model – View – Controller
● Convient à la majorité des projets, sites comme
applications
● Standard de facto de l'industrie du développement
web
● Dissociation de la logique métier et de la
présentation
{ En pratique
● zf.sh (ou .bat) permet de générer la structure
du projet et des éléments isolés
● zf.sh create project afup
● Les dossiers principaux
● application
● public
● tests
● library
● docs
{Configuration et initialisation
● Le fichier index.php traite TOUTES les requêtes
entrantes, et permet de :
● définir l'environnement
● charger la configuration
● démarrer le framework
{ Controller / View
● Par défaut, à chaque action sont associés :
● Une méthode de contrôleur
● Un script de vue
{ Du contrôleur à la vue...
● Assigner une valeur à la vue :
● $this->view->attribut = 'valeur';
ou
● $this->view->assign('attribut', 'view');
● Récupérer la variable de vue :
● echo $this->attribut;
{ La gestion d'erreurs
● Un plugin redirige par défaut toutes les
exceptions vers error/error
● Les données d'erreurs sont passées comme un
paramètre de requête ('error_handler')
● Une vue associée permet d'en afficher (ou pas) les
détails
{ Quelques composants...
● Zend_Cache
● Zend_Log
● Zend_Translate
● Zend_Auth
● Zend_Acl
● Zend_Service_*
● Zend_Form
{
Des questions ?
{
twitter / skype / gtalk : gdelamarre
gauthier.delamarre@vaconsulting.lu
Merci à tous !

Contenu connexe

Tendances

Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIHugo Hamon
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Yves-Emmanuel Jutard
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Adopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front SideAdopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front SideThomas Champion
 
MVVM par Karim PIerre Maalej
MVVM par Karim PIerre MaalejMVVM par Karim PIerre Maalej
MVVM par Karim PIerre MaalejCocoaHeads France
 
ASP.NET from Zero to Hero
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to HeroCellenza
 
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)cornnery
 
ASP.NET 5: la révolution est en marche
ASP.NET 5: la révolution est en marcheASP.NET 5: la révolution est en marche
ASP.NET 5: la révolution est en marcheMicrosoft
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsHugo Hamon
 
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Xavier Lacot
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido SOAT
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à AngularjsRossi Oddet
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSOAT
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsOCTO Technology
 
Angularjs101-les_SPA:support de la video
Angularjs101-les_SPA:support de la videoAngularjs101-les_SPA:support de la video
Angularjs101-les_SPA:support de la videoeric German
 
Google : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSGoogle : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSPeak Ace
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Eric D.
 

Tendances (20)

Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CI
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Adopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front SideAdopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front Side
 
MVVM par Karim PIerre Maalej
MVVM par Karim PIerre MaalejMVVM par Karim PIerre Maalej
MVVM par Karim PIerre Maalej
 
ASP.NET from Zero to Hero
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to Hero
 
Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0
 
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
 
ASP.NET 5: la révolution est en marche
ASP.NET 5: la révolution est en marcheASP.NET 5: la révolution est en marche
ASP.NET 5: la révolution est en marche
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
 
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVC
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
 
Angularjs101-les_SPA:support de la video
Angularjs101-les_SPA:support de la videoAngularjs101-les_SPA:support de la video
Angularjs101-les_SPA:support de la video
 
Google : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSGoogle : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JS
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006
 

En vedette

Deux ménages sur trois disposent d’internet chez eux - INSEE (Mars 2011)
Deux ménages sur trois disposent d’internet chez eux - INSEE (Mars 2011)Deux ménages sur trois disposent d’internet chez eux - INSEE (Mars 2011)
Deux ménages sur trois disposent d’internet chez eux - INSEE (Mars 2011)Silicon Village
 
Pratiques culturelles et usages d’internet
Pratiques culturelles et usages d’internetPratiques culturelles et usages d’internet
Pratiques culturelles et usages d’internetSilicon Village
 
Cr rencontres-internationales-de-recherche-lir
Cr rencontres-internationales-de-recherche-lirCr rencontres-internationales-de-recherche-lir
Cr rencontres-internationales-de-recherche-lirAssociation LIR
 
Colloque québécois sur les bioplastiques – Les défis de l’implantation d’une ...
Colloque québécois sur les bioplastiques – Les défis de l’implantation d’une ...Colloque québécois sur les bioplastiques – Les défis de l’implantation d’une ...
Colloque québécois sur les bioplastiques – Les défis de l’implantation d’une ...Sherbrooke Innopole
 
RDV Capitaux de risque | Teralys Capital - Financer l’innovation au Québec
RDV Capitaux de risque | Teralys Capital - Financer l’innovation au QuébecRDV Capitaux de risque | Teralys Capital - Financer l’innovation au Québec
RDV Capitaux de risque | Teralys Capital - Financer l’innovation au QuébecSherbrooke Innopole
 
2013 j1 numérique & accompagnement carif oref_itg_j_vds
2013 j1 numérique & accompagnement carif oref_itg_j_vds2013 j1 numérique & accompagnement carif oref_itg_j_vds
2013 j1 numérique & accompagnement carif oref_itg_j_vdsJean Vanderspelden
 
JOMOH | Brainstorming Participatif
JOMOH | Brainstorming ParticipatifJOMOH | Brainstorming Participatif
JOMOH | Brainstorming ParticipatifSylvain Bakri
 
Livres életroniques & collaboration intern 19 5 14-latest
Livres életroniques & collaboration intern 19 5 14-latestLivres életroniques & collaboration intern 19 5 14-latest
Livres életroniques & collaboration intern 19 5 14-latestmariageorgiadou66@gmail.com
 
Chapter 2 La Diversidad Cultural en Nuestra Comunidad: orientación visual
Chapter 2 La Diversidad Cultural en Nuestra Comunidad: orientación visualChapter 2 La Diversidad Cultural en Nuestra Comunidad: orientación visual
Chapter 2 La Diversidad Cultural en Nuestra Comunidad: orientación visualELLsinEducation
 
Déjeuner du GATE - Marché carbone > Enviro-Accès
Déjeuner du GATE - Marché carbone > Enviro-AccèsDéjeuner du GATE - Marché carbone > Enviro-Accès
Déjeuner du GATE - Marché carbone > Enviro-AccèsSherbrooke Innopole
 

En vedette (17)

Deux ménages sur trois disposent d’internet chez eux - INSEE (Mars 2011)
Deux ménages sur trois disposent d’internet chez eux - INSEE (Mars 2011)Deux ménages sur trois disposent d’internet chez eux - INSEE (Mars 2011)
Deux ménages sur trois disposent d’internet chez eux - INSEE (Mars 2011)
 
Pratiques culturelles et usages d’internet
Pratiques culturelles et usages d’internetPratiques culturelles et usages d’internet
Pratiques culturelles et usages d’internet
 
Cr rencontres-internationales-de-recherche-lir
Cr rencontres-internationales-de-recherche-lirCr rencontres-internationales-de-recherche-lir
Cr rencontres-internationales-de-recherche-lir
 
Colloque québécois sur les bioplastiques – Les défis de l’implantation d’une ...
Colloque québécois sur les bioplastiques – Les défis de l’implantation d’une ...Colloque québécois sur les bioplastiques – Les défis de l’implantation d’une ...
Colloque québécois sur les bioplastiques – Les défis de l’implantation d’une ...
 
RDV Capitaux de risque | Teralys Capital - Financer l’innovation au Québec
RDV Capitaux de risque | Teralys Capital - Financer l’innovation au QuébecRDV Capitaux de risque | Teralys Capital - Financer l’innovation au Québec
RDV Capitaux de risque | Teralys Capital - Financer l’innovation au Québec
 
Fougères 160413
Fougères 160413Fougères 160413
Fougères 160413
 
2013 j1 numérique & accompagnement carif oref_itg_j_vds
2013 j1 numérique & accompagnement carif oref_itg_j_vds2013 j1 numérique & accompagnement carif oref_itg_j_vds
2013 j1 numérique & accompagnement carif oref_itg_j_vds
 
JOMOH | Brainstorming Participatif
JOMOH | Brainstorming ParticipatifJOMOH | Brainstorming Participatif
JOMOH | Brainstorming Participatif
 
Presentacion edades200910
Presentacion edades200910Presentacion edades200910
Presentacion edades200910
 
GEOMETRA
GEOMETRAGEOMETRA
GEOMETRA
 
Webographie
WebographieWebographie
Webographie
 
Livres életroniques & collaboration intern 19 5 14-latest
Livres életroniques & collaboration intern 19 5 14-latestLivres életroniques & collaboration intern 19 5 14-latest
Livres életroniques & collaboration intern 19 5 14-latest
 
Temple
TempleTemple
Temple
 
Chapter 2 La Diversidad Cultural en Nuestra Comunidad: orientación visual
Chapter 2 La Diversidad Cultural en Nuestra Comunidad: orientación visualChapter 2 La Diversidad Cultural en Nuestra Comunidad: orientación visual
Chapter 2 La Diversidad Cultural en Nuestra Comunidad: orientación visual
 
Déjeuner du GATE - Marché carbone > Enviro-Accès
Déjeuner du GATE - Marché carbone > Enviro-AccèsDéjeuner du GATE - Marché carbone > Enviro-Accès
Déjeuner du GATE - Marché carbone > Enviro-Accès
 
Lernkantine 1.st Concept
Lernkantine 1.st ConceptLernkantine 1.st Concept
Lernkantine 1.st Concept
 
Diarislectura1 2 4 Gener08
Diarislectura1 2 4 Gener08Diarislectura1 2 4 Gener08
Diarislectura1 2 4 Gener08
 

Similaire à Introduction à Zend Framework

Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPJean-Marc Fontaine
 
Saas Libre
Saas LibreSaas Libre
Saas Libregrolland
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyXavier Gorse
 
l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectFlorent DENIS
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...XavierPestel
 
CodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxCodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxThomasParaiso1
 
Unofficial Centreon Repositories for Debian - Paris Monitoring meetup #2
Unofficial Centreon Repositories for Debian - Paris Monitoring meetup #2Unofficial Centreon Repositories for Debian - Paris Monitoring meetup #2
Unofficial Centreon Repositories for Debian - Paris Monitoring meetup #2Paris Monitoring
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3Luc Juggery
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.jsTelecomValley
 
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin IT
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin ITalphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin IT
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin ITAlphorm
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continuneuros
 
GDG Rennes - Bootcamp Initiation Android - Théorie
GDG Rennes - Bootcamp Initiation Android -  ThéorieGDG Rennes - Bootcamp Initiation Android -  Théorie
GDG Rennes - Bootcamp Initiation Android - ThéorieHoracio Gonzalez
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Martin Latrille
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 eechdalel
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)Alphorm
 

Similaire à Introduction à Zend Framework (20)

Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
 
Saas Libre
Saas LibreSaas Libre
Saas Libre
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec Symfony
 
l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnect
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
CodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxCodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptx
 
Unofficial Centreon Repositories for Debian - Paris Monitoring meetup #2
Unofficial Centreon Repositories for Debian - Paris Monitoring meetup #2Unofficial Centreon Repositories for Debian - Paris Monitoring meetup #2
Unofficial Centreon Repositories for Debian - Paris Monitoring meetup #2
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3Autour de Node.js - TechConf#3
Autour de Node.js - TechConf#3
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
Catalogue PFE 2019
Catalogue PFE 2019Catalogue PFE 2019
Catalogue PFE 2019
 
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin IT
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin ITalphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin IT
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin IT
 
Les framework mvc
Les framework mvcLes framework mvc
Les framework mvc
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continu
 
GDG Rennes - Bootcamp Initiation Android - Théorie
GDG Rennes - Bootcamp Initiation Android -  ThéorieGDG Rennes - Bootcamp Initiation Android -  Théorie
GDG Rennes - Bootcamp Initiation Android - Théorie
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 ee
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)
 

Introduction à Zend Framework

  • 1. { Introduction à Zend Framework Gauthier Delamarre – VA Consulting 10 Novembre 2010
  • 2. { A propos de … moi ●Développeur et architecte PHP depuis 1999 ●Certifié ZCE pour PHP5 et Zend Framework ●Journaliste informatique et blogueur ●Responsable des services professionnels pour VA Consulting (Luxembourg) ●Vice-secrétaire de l'AFUP
  • 3. {Une (très) brève histoire de ZF ● L'impulsion du projet et l'encadrement sont fournis par Zend Technologies ● Démarré en 2005, la version 1.0 du projet sort en Juin 2007 ● Les versions principales suivantes ont été la 1.5 (ajout des Forms et Layouts) et la 1.8 (apparition de Zend_Application) ● « There's a fork in the road » : les branches 1.x et 2.x vont coexister
  • 4. { Principales caractéristiques ● Framework 100% objet ● Aucune variable globale ● Aucune fonction globale ● Aucune constante globale ● Application de nombreux design patterns – MVC + Front Controller – Adapters – Factories – ...
  • 5. { Principales caractéristiques ● Exploitation maximum de PHP 5 ● Pas de compatibilité ascendante – PHP >= 5.1.4 jusqu'à la version 1.7 – PHP >= 5.2.4 depuis – NOTE PHP < 5.3 dans les deux cas ! ● Classes abstraites ● Interfaces ● SPL ● Méthodes magiques
  • 6. { Principales caractéristiques ● « Business-friendly » ● Licence BSD ● CLAs – Individual CLA – Corporate CLA
  • 7. { Concepts clés ● Couplage faible ● Utilisation autonome des composants ● « Use-at-will » ● Extrême souplesse ● Classes abstraites et interfaces (injection de dépendances) ● Mécanismes de chargement automatiques « intelligents » ● Personnalisation « chirurgicale »
  • 8. { Concepts clés ● Model – View – Controller ● Convient à la majorité des projets, sites comme applications ● Standard de facto de l'industrie du développement web ● Dissociation de la logique métier et de la présentation
  • 9. { En pratique ● zf.sh (ou .bat) permet de générer la structure du projet et des éléments isolés ● zf.sh create project afup ● Les dossiers principaux ● application ● public ● tests ● library ● docs
  • 10. {Configuration et initialisation ● Le fichier index.php traite TOUTES les requêtes entrantes, et permet de : ● définir l'environnement ● charger la configuration ● démarrer le framework
  • 11. { Controller / View ● Par défaut, à chaque action sont associés : ● Une méthode de contrôleur ● Un script de vue
  • 12. { Du contrôleur à la vue... ● Assigner une valeur à la vue : ● $this->view->attribut = 'valeur'; ou ● $this->view->assign('attribut', 'view'); ● Récupérer la variable de vue : ● echo $this->attribut;
  • 13. { La gestion d'erreurs ● Un plugin redirige par défaut toutes les exceptions vers error/error ● Les données d'erreurs sont passées comme un paramètre de requête ('error_handler') ● Une vue associée permet d'en afficher (ou pas) les détails
  • 14. { Quelques composants... ● Zend_Cache ● Zend_Log ● Zend_Translate ● Zend_Auth ● Zend_Acl ● Zend_Service_* ● Zend_Form
  • 16. { twitter / skype / gtalk : gdelamarre gauthier.delamarre@vaconsulting.lu Merci à tous !