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

Preview:

DESCRIPTION

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

Citation preview

Plateforme de développement en PHP5.

Zend Framework + Doctrine.Présentation:

M. Morel CORNNERY M. Boubacar DOUMBOUYA

Plan

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

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

Vue globale sur zend Framework

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

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.

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

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

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

Architectures

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

Architecture de zend Framework

Librairies

• Zend_Controller

• Zend_Form

• Zend_View

• Zend_Acl

• Zend_Auth

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

Présentation de doctrine

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

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.

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

Points faibles

• Pas de connecteur pour les annuaires comme LDAP

• Communauté pas assez grande

Architecture

composants

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

Architecture d’une application avec Zend Framework et 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

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

Organisation de l’application

MonapplicationApplication

Bootsrap.phpGlobal.phpConfiguration layoutsModules

ReferentielControllersViews

LibraryZendDoctrineSsi Forms

Publics

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.

URLs

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

Bootstrap (arborescence)

Bootstrap

Bootstrap

Bootstrap(Doctrine)

Bootstrap(Doctrine suite)

configuration

Configuration

Controllers

controller

Action

Forms(arborescence)

Forms (code)

Views (Arborescences)

Views(Formulaire)

Views (Liste)

Layout (arborescence)

Layout(header)

Layout(body)

Model(arborescence)

Model(Base)

Model(Base 2)

Model (méthodes)

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

CONCLUSION

FIN