49
Plateforme de développement en PHP5. Zend Framework + Doctrine. Présentation: M. Morel CORNNERY M. Boubacar DOUMBOUYA

Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Embed Size (px)

DESCRIPTION

L'une de mes présentations à 2SI la SSII où je travaille

Citation preview

Page 1: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Plateforme de développement en PHP5.

Zend Framework + Doctrine.Présentation:

M. Morel CORNNERY M. Boubacar DOUMBOUYA

Page 2: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Plan

• Introduction• Vue globale sur zend Framework• Présentation Doctrine (Modèle) • Exemple d’application avec zend et doctrine• Déploiement• Démo

Page 3: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Introduction

• Objectif d’une plateforme de développement?– Professionnaliser le développement des application

web .• Comment?

– Avec des outils (Framework)• Une structuration• Une industrialisation• Standardisation• Internationnalisation• Pérennite

Page 4: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Vue globale sur zend Framework

• Présentation• Points forts• Points faibles• Composants• Architectures• Sécurité

Page 5: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Présentation• Framework open-source PHP 5, Oriente Objet, initié par Zend. • Agé d’un plus de trois (3) ans• Une communauté très vivante et qualifiée (180 pers)• Des conventions complètes• Une documentations en plusieurs langues (30)• De nombreuses librairies pratiques• Une architecture de base minimale

– Objectif ?• Simplifier le développement des grosses applications webs.• Développer plus vite

– Comment?• Ajout de nombreux composants (librairies ) +• Une approche MVC visant a simplifier les taches du développeur • Améliorer la qualité du code.

Page 6: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Points forts

• Sa souplesse et sa simplicité• Ses conventions complètes basées sur PEAR• La structure et l’étendue de ses librairie• Son model de développement ouvert• La confiance et l’engagement des

professionnels pour ce projets– Google, IBM et plusieurs centaines de d’entreprise

qui l’utilisent actuellement• Sa documentation complète

Page 7: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Atouts fonctionnels• Documentation• Configurabilité• Sécurité• Aide debugging• Auto-loading• Helpers• Test fonctionnels• ORM• I18n/L10n (internationalisation)

Page 8: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Points faibles

• Pas de système de plugins• Il faut tout créer soit même lors de la

première installation (configuration, bootstrap,…)

• Intégration avec d’autres composants des autres Framework est assez complexe, voir impossible

Page 9: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Architectures

• 48 composants à l’heure actuelle, avec peu d’inter- dépendance– Noyau (Core)– Interopérabilité, services web– Gestion des données– Internationalisation– MVC

Page 10: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Architecture de zend Framework

Page 11: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Librairies

• Zend_Controller

• Zend_Form

• Zend_View

• Zend_Acl

• Zend_Auth

Page 12: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Sécurité

• Les attaques courantes sur le web:– XSS, injection SQL, Injection JavaScript, Session et

cookies• Les solution proposées par Zend:

– Zend_Validate– Zend_Filter– Zend_Session

Page 13: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Présentation de doctrine

• Présentation• Points forts• Points faibles• Architectures• Composants

Page 14: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Présentation• Doctrine est une (ORM) pour PHP 5.2.3+ • Doctrine S'appuie sur PDO et est lui même divisé

en deux couches:– la couche ORM– la couche DBAL

• Doctrine vient avec son propre langage appelé Doctrine Query Language (DQL), inspiré de Hibernates (HQL).

• Ceci fournit une réelle alternative au SQL basique maintient la flexibilité sans exiger la duplication inutile de code.

Page 15: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Points forts• Utilisation de DQL (doctrine query language) qui

permet de faciliter très largement l'écriture de requête SQL dîtes complexes

• Le nombre de fonctionnalités relativement important• Interfaçage avec de nombreuses Bdd (oracle, ibm

informix, sqlsever, postgresql, mysql,Firebird,sqlite,…)• Tutoriels très efficaces et prise en main rapide• Bonnes améliorations des performances liées à

l'utilisation d'active record dans les dernières release

Page 16: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Points faibles

• Pas de connecteur pour les annuaires comme LDAP

• Communauté pas assez grande

Page 17: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Architecture

Page 18: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

composants

• Doctrine::Manager• Doctrine::Connection• Doctrine::Record• Doctrine::Table• Doctrine::Collection• Doctrine::Validator• Doctrine::View

Page 19: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Architecture d’une application avec Zend Framework et doctrine

Page 20: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Workflow d’une requete dans ZF

Requête

Réponse

Routage

Contrôleur (init())

Pré-envoi

ACTION

Post-envoi

(Module/controller/action)

Répartiteur (dispatcher)

Contrôleur frontal

Page 21: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Exemple d’application avec zend et doctrine

• Organisation de l’application• Les conventions de nommages• Notions importantes

– Urls– Bootsrap– Configuration – Controllers– Vues– Forms– Layout

– Models

Page 22: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Organisation de l’application

MonapplicationApplication

Bootsrap.phpGlobal.phpConfiguration layoutsModules

ReferentielControllersViews

LibraryZendDoctrineSsi Forms

Publics

Page 23: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Convention de nommage• #Zend_Db représente un composant que l'on

peut aussi appeler package (en référence à Java),

• Matérialisé par le script /library/Zend/Db.php, la classe représentée étant Zend_Db.

• Cette convention de nommage sera utilisée pour charger des classes plus tard. Elle est identique à certains projets tels que PEAR. Remplacez les underscores ( _ ) dans le nom de la classe par des slashs ( / ), pour voir apparaître l'arborescence du fichier.

Page 24: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

URLs

Basic URL routes:• /controller/action• /controller/action/param/value• /module/controller/action• /module/controller/action/param/valueExemple: BASE_URL.'referentiel/branche/';

Page 25: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Bootstrap (arborescence)

Page 26: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Bootstrap

Page 27: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Bootstrap

Page 28: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Bootstrap(Doctrine)

Page 29: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Bootstrap(Doctrine suite)

Page 30: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

configuration

Page 31: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Configuration

Page 32: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Controllers

Page 33: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

controller

Page 34: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Action

Page 35: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Forms(arborescence)

Page 36: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Forms (code)

Page 37: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Views (Arborescences)

Page 38: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Views(Formulaire)

Page 39: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Views (Liste)

Page 40: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Layout (arborescence)

Page 41: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Layout(header)

Page 42: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Layout(body)

Page 43: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Model(arborescence)

Page 44: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Model(Base)

Page 45: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Model(Base 2)

Page 46: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Model (méthodes)

Page 47: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

Déploiement

• Environnement de déploiement• Version PHP 5.2.x• Modules PHP à activer

– PDO avec les drivers nécessaires– php_value short_open_tag <? ?>

• Version apache 2.x• Modules apache a activer

– Mod Rewrite

Page 48: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

CONCLUSION

Page 49: Plateforme De DéVeloppement En Php5 (Zend + Doctrine)

FIN