Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 5,825 views

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

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

Statistics

Views

Total Views
5,825
Views on SlideShare
5,790
Embed Views
35

Actions

Likes
0
Downloads
299
Comments
0

1 Embed 35

http://www.slideshare.net 35

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 1. Plateforme de développement en PHP5. Zend Framework + Doctrine. Présentation: M. Morel CORNNERY M. Boubacar DOUMBOUYA
  • 2. Plan
    • Introduction
    • Vue globale sur zend Framework
    • Présentation Doctrine (Modèle)
    • Exemple d’application avec zend et doctrine
    • Déploiement
    • Démo
  • 3. 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
  • 4. Vue globale sur zend Framework
    • Présentation
    • Points forts
    • Points faibles
    • Composants
    • Architectures
    • Sécurité
  • 5. 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.
  • 6. 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
  • 7. Atouts fonctionnels
    • Documentation
    • Configurabilité
    • Sécurité
    • Aide debugging
    • Auto-loading
    • Helpers
    • Test fonctionnels
    • ORM
    • I18n/L10n (internationalisation)
  • 8. 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
  • 9. Architectures
    • 48 composants à l’heure actuelle, avec peu d’inter- dépendance
      • Noyau (Core)
      • Interopérabilité, services web
      • Gestion des données
      • Internationalisation
      • MVC
  • 10. Architecture de zend Framework
  • 11. Librairies
    • Zend_Controller
    • Zend_Form
    • Zend_View
    • Zend_Acl
    • Zend_Auth
  • 12. 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
  • 13. Présentation de doctrine
    • Présentation
    • Points forts
    • Points faibles
    • Architectures
    • Composants
  • 14. 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.
  • 15. 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
  • 16. Points faibles
    • Pas de connecteur pour les annuaires comme LDAP
    • Communauté pas assez grande
  • 17. Architecture
  • 18. composants
    • Doctrine::Manager
    • Doctrine::Connection
    • Doctrine::Record
    • Doctrine::Table
    • Doctrine::Collection
    • Doctrine::Validator
    • Doctrine::View
  • 19. Architecture d’une application avec Zend Framework et doctrine
  • 20. Architecture d’une application web avec Zend Framework Présentation Contrôle de l’application Logique métier Accès aux données Source de données
  • 21. Workflow d’une requête avec zend Framework
  • 22. 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
  • 23. Workflow d’une requête avec Z-F
    • Le  bootstrap  (application/bootstrap.php) est le point d'entrée dans l'application, il s'agit de l'implémentation du design pattern contrôleur frontal et d'un  singleton . Toutes les requêtes passent par cet objet, à sa charge d'acheminer ( dispatcher ) vers les actions (suivant une route par défaut ou définie par le concepteur). Les réponses sont collectées par cet objet.
    • La requête peut d'abord être prétraitée dans un  plugin , cela permet au concepteur d'effectuer des traitements en tout début de requête.
    • La requête est routée, c'est à dire que l'on traduit l'URI d'entrée en lien vers le bon contrôleur. Le contrôleur est instancié, son constructeur init() est lancé.
    • La fonction preDispatch() est lancé si elle existe juste avant de lancer l'action : par exemple readAction(...).
    • Le contrôleur se termine et la fonction postDispatch() est lancée.
    • La réponse est renvoyée au visiteur.
  • 24. 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
  • 25. Organisation de l’application
    • Monapplication
      • Application
        • Bootsrap.php
        • Global.php
        • Configuration
        • layouts
        • Modules
          • Referentiel
            • Controllers
            • Views
      • Library
        • Zend
        • Doctrine
        • Ssi
        • Forms
      • Publics
  • 26. 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.
  • 27. URLs
    • Basic URL routes:
    • • /controller/action
    • • /controller/action/param/value
    • • /module/controller/action
    • • /module/controller/action/param/value
    • Exemple:
    • BASE_URL.'referentiel/branche/';
  • 28. Bootstrap (arborescence)
  • 29. Bootstrap
  • 30. Bootstrap
  • 31. Bootstrap(Doctrine)
  • 32. Bootstrap(Doctrine suite)
  • 33. configuration
  • 34. Configuration
  • 35. Controllers
  • 36. controller
  • 37. Action
  • 38. Forms(arborescence)
  • 39. Forms (code)
  • 40. Views (Arborescences)
  • 41. Views(Formulaire)
  • 42. Views (Liste)
  • 43. Layout (arborescence)
  • 44. Layout(header)
  • 45. Layout(body)
  • 46. Model(arborescence)
  • 47. Model(Base)
  • 48. Model(Base 2)
  • 49. Model (méthodes)
  • 50. 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
  • 51. CONCLUSION
  • 52. FIN