You are previewing Zend Framework.
O'Reilly logo
Zend Framework

Book Description

Présentation

En imposant des règles strictes de gestion de code et en offrant une très riche bibliothèque de composants prêts à l'emploi, le framework PHP 5 Zend Framework guide le développeur web dans l'industrialisation de ses développements, afin d'en garantir la fiabilité, l'évolutivité et la facilité de maintenance.

Cet ouvrage présente les meilleures pratiques de développement web avec PHP 5 et le Zend Framework : design patterns, MVC, base de données, sécurité, interopérabilité, tests unitaires, gestion des flux et des sessions, etc.

Non sans rappeler les prérequis techniques et théoriques à l'utilisation du framework, l'ouvrage aidera tant les développeurs débutants en PHP que les chefs de projets ou architectes aguerris souhaitant l'utiliser en entreprise.

Au sommaire
  • Introduction à Zend Framework
  • Cahier des charges de l'application
  • Installation et prise en main
  • Composants de base
  • Accès aux bases de données
  • Architecture MVC : première approche
  • Architecture MVC avancée
  • Sessions, authentification et autorisations
  • Internationalisation
  • Performances
  • Sécurité
  • Interopérabilité et services web
  • Composants e-mails, PDF et formulaires
  • Outils et méthodologie (Zend Studio pour Eclipse)
  • Utilisation avancée des composants
  • Annexes : qu'est-ce qu'un framework, rappels sur les bases de données, la programmation orientée objet, motifs de conception, MVC, PHP, Subversion, PHPUnit

Table of Contents

  1. Couverture
  2. Titre
  3. Licence
  4. Table
  5. Préface
  6. Avant-propos
    1. Pourquoi cet ouvrage ?
    2. À qui s’adresse ce livre ?
    3. Structure de l’ouvrage
      1. Développement d’une application exemple
      2. Prérequis pour bien développer
    4. Remerciements
  7. chapitre 1 - Introduction à Zend Framework
    1. Avantages et inconvénients de Zend Framework
    2. Structure et principe
      1. Les règles de développement
      2. Les composants réutilisables
      3. L’architecture
    3. Conseils pour bien démarrer avec Zend Framework
      1. Prérequis
      2. État d’esprit
    4. En résumé
  8. chapitre 2 - Cahier des charges de l’application exemple
    1. Expression du besoin
    2. L’objectif : votre application !
    3. Spécifications fonctionnelles et techniques
    4. Maquettes
    5. Mises en garde et conventions
      1. Conventions
      2. Plateforme technique
    6. En résumé
  9. chapitre 3 - Installation et prise en main
    1. Téléchargement du paquetage
      1. Téléchargement sous Windows
      2. Téléchargement sous Unix
      3. Configuration du serveur Apache
      4. Téléchargement par le dépôt Subversion
    2. Première utilisation du framework
    3. En résumé
  10. chapitre 4 - Composants de base
    1. Configuration de l’environnement
    2. Zend_Loader
      1. Exemple d’utilisation
        1. Chargement manuel d’une classe
        2. Chargement automatique d’une classe (autoload)
        3. Aller plus loin avec Zend_Loader
      2. Intégration dans l’application
    3. Zend_Config
      1. Exemples d’utilisation
        1. Avec un fichier ini
        2. Avec un fichier XML
        3. Avec un fichier PHP
      2. Intégration dans notre application
    4. Zend_Log
      1. Quelques notions
      2. Exemple d’utilisation
      3. Utilisation conjointe avec Zend_Config
      4. Intégration dans notre application
    5. Zend_Debug
      1. Exemple d’utilisation
      2. Utilisation conjointe avec Zend_Log
    6. Zend_Exception
    7. Zend_Registry
      1. Exemple d’utilisation
      2. Intégration dans l’application
    8. En résumé
  11. chapitre 5 - Accès aux bases de données
    1. Introduction
    2. Utiliser les SGBD
      1. Les SGBD utilisables par Zend Framework
      2. Création d’une connexion
    3. Requêtes sur une base de données
      1. Envoyer des requêtes
        1. Effectuer des requêtes de type SELECT avancées
      2. Utiliser la passerelle vers les tables
      3. Créer et exécuter des requêtes
      4. Manipuler des données
        1. Récupérer des enregistrements
        2. Modifier et sauvegarder des enregistrements
      5. Agir sur les tables dépendantes
    4. Performances et stabilité
      1. Les bons réflexes
    5. Aller plus loin avec le composant Zend_Db
      1. Créer ses requêtes personnalisées
      2. Étendre Row et Rowset
    6. En résumé
  12. chapitre 6 - Architecture MVC
    1. Zend_Controller : utilisation simple
      1. Mettre en place l’architecture
      2. Parcours d’une requête HTTP
    2. Exemple simple d’utilisation de Zend_Controller
      1. Mettre en place le squelette de l’application
      2. Code du squelette
    3. Attribuer des paramètres à la vue
    4. Manipulation des données HTTP
    5. Initialisation et postdispatch
    6. Zend_Layout : créer un gabarit de page
      1. Appel et contenu du gabarit principal
      2. En-tête et pied de page
      3. Déclaration du sous-menu
    7. Gestion par défaut des erreurs
    8. Les aides d’action
      1. Utiliser une aide d’action existante
      2. Créer une aide d’action utilisateur
    9. En résumé
  13. chapitre 7 - Architecture MVC avancée
    1. Zend_Controller : utilisation avancée
    2. Les différents objets de MVC
      1. Fonctionnement global de MVC
        1. Exécution du processus de distribution de la requête
        2. Un processus flexible et avancé
      2. Fonctionnement détaillé des objets du modèle MVC
        1. Contrôleur frontal (FrontController)
          1. Introduction
          2. Capacités, possibilités
          3. Lancer l'application au travers du contrôleur frontal
        2. Objet de requête
          1. Introduction
          2. Notions importantes
          3. Buts et utilité
        3. Objet de réponse
        4. Routeur
          1. Introduction
          2. Fonctionnement
        5. Plugins de contrôleur frontal
        6. Plugins inclus dans la distribution de Zend Framework
          1. ErrorHandler
          2. Layout plugin
          3. ActionStack
        7. Le distributeur (dispatcheur)
        8. Les contrôleurs d’action
          1. Introduction
          2. Déroulement d’une action
          3. Méthodes mises à disposition
        9. Les aides d’action
          1. Le gestionnaire d’aides d'action
          2. Charger et piloter des aides d’action
          3. ViewRenderer
          4. Layout
          5. Redirector
          6. Url
          7. ContextSwitch
        10. La vue
        11. Les aides de vue
          1. Quelques aides de vue
          2. Créer son aide de vue
        12. Les filtres de vue
    3. En résumé
  14. chapitre 8 - Sessions, authentification et autorisations
    1. Notions élémentaires
    2. Les sessions
      1. Pourquoi choisir Zend_Session ?
      2. Configurer sa session
      3. Utiliser les espaces de noms
    3. Gestion de l’authentification avec Zend_Auth
      1. Pourquoi utiliser Zend_Auth ?
      2. Les adaptateurs
        1. Exemple d’utilisation
      3. Zend_Acl : liste de contrôle d’accès
      4. Pourquoi utiliser Zend_Acl ?
        1. Un peu de théorie sur les ACL
        2. Exemple pratique
    4. En résumé
  15. chapitre 9 - Internationalisation
    1. Avant de commencer...
      1. Les composants Zend et leurs équivalents PHP
      2. Attention aux jeux de caractères
    2. Zend_Locale : socle de base de l’internationalisation
    3. Zend_Translate : gérer plusieurs langues
      1. Pourquoi utiliser Zend_Translate ?
      2. Les adaptateurs
      3. Exemple simple d’utilisation
      4. Exemple de changement d’adaptateur
      5. Internationalisation avancée
        1. Règles d’architecture
        2. Mettre en place l’adaptateur gettext
        3. Mettre en place les chaînes à traduire
        4. Créer les fichiers de traduction gettext (*.mo)
          1. Créer les fichiers *.mo avec PoEdit
        5. Modifier la langue
    4. Zend_Currency : gestion des monnaies
      1. Pourquoi utiliser Zend_Currency ?
      2. Affichage des monnaies
      3. Informations sur les monnaies
    5. Zend_Date : gestion de la date et de l’heure
      1. Pourquoi utiliser Zend_Date ?
    6. En résumé
  16. chapitre 10 - Performances
    1. Qu’est-ce que la gestion de cache ?
      1. Pourquoi utiliser un cache ?
      2. Mises en garde concernant la gestion du cache
    2. Zend_Cache : gestion du cache
      1. Choisir son frontal et son support de cache
      2. Utilisation de Zend_Cache dans l’application
        1. Implémentation de Zfbook_Cache
        2. Utilisation du cache dans l’application
        3. Amélioration des performances des composants Zend
    3. Zend_Memory : gestion de la mémoire
      1. Exemple pratique
    4. Améliorer les performances générales de l’application
      1. Les bons réflexes
      2. Compiler Zend Framework dans APC
    5. En résumé
  17. chapitre 11 - Sécurité
    1. En quoi consiste la sécurité sur le Web ?
      1. Règles de sécurité élémentaires
    2. Solutions de sécurité de Zend Framework
      1. Les validateurs
      2. Les filtres
    3. Les attaques courantes
      1. Le Cross Site Scripting (XSS)
        1. Attaque XSS
        2. Les protections
      2. Le Cross Site Request Forgery (CSRF)
        1. Attaque CSRF
        2. Les protections
      3. Sessions et Cookies
        1. Attaque d’une session
        2. Les protections
      4. L’injection SQL
        1. Attaque par injection SQL
        2. Les protections
    4. En résumé
  18. chapitre 12 - Interopérabilité et services web
    1. L’interopérabilité, qu’est-ce que c’est ?
    2. Les solutions existantes
      1. REST
        1. Avantages
        2. Inconvénients
      2. SOAP
        1. Avantages
        2. Inconvénients
      3. XML-RPC
      4. RSS et Atom
    3. Préparer le terrain
    4. Zend_Rest : l’interopérabilité simplifiée
      1. Principe de REST
      2. Zend_Rest : REST, version Zend Framework
    5. Zend_Soap : l’interopérabilité par définition
    6. Zend_Feed : pour les protocoles simples RSS et Atom
    7. En résumé
  19. chapitre 13 - Autres composants utiles
    1. Préparation de l’architecture
      1. Les composants (library)
      2. MVC
    2. Zend_Mail : envoi d’e-mails
      1. Envoyer un simple e-mail
      2. Envoyer un e-mail complet
    3. Zend_Pdf : créer des fichiers PDF
    4. Zend_Form : génération et gestion de formulaires
      1. Créer un formulaire
      2. Assigner des filtres ou des validateurs
    5. Tous les composants de Zend Framework
    6. En résumé
  20. chapitre 14 - Outils et méthodologie
    1. L’éditeur : Zend Studio pour Eclipse
      1. Un environnement intégré pour optimiser ses développements
      2. Intégrer Zend Framework dans l’IDE
        1. Personnaliser ses composants
        2. Un code source de meilleure qualité grâce au formateur
    2. Le débogueur
    3. Analyse des performances avec le profileur
    4. Tests fonctionnels avec Zend_Test
      1. Zend_Test, pour quoi faire ?
      2. Prise en main de Zend_Test
        1. Templates Zend Studio For Eclipse
        2. Gestion du bootstrap
        3. Écrire des tests
      3. Faut-il tout tester ?
    5. En résumé
  21. chapitre 15 - Utilisation avancée des composants
    1. MVC et les bibliothèques
    2. Créer un composant utilisateur
      1. Règles fondamentales et conventions
      2. Principe et organisation
      3. Exemple
        1. Modélisation minimale
        2. Implémentation du composant
    3. Dériver un composant existant
      1. Règles fondamentales
      2. Ajouter une fonctionnalité à un composant
      3. Modifier le comportement d’un composant
      4. Simplifier l’accès à un ou plusieurs composants
    4. Intégrer un composant externe
    5. En résumé
  22. annexes
    1. A - Qu’est-ce qu’un framework ?
      1. Définition et objectifs
      2. Le framework au service du développement web
        1. Risques et périls des pratiques courantes
        2. Le framework à la rescousse
        3. Inconvénients du framework
      3. En résumé
    2. B - Bases de données
      1. Qu’est-ce qu’un SGBD ?
      2. Architecture d’un SGBD
        1. La base de données
          1. Exemple simple
          2. Notions techniques
          3. Représentation graphique
          4. Types de données
          5. Clés et contraintes d’intégrité
        2. Les principaux SGBD du marché
          1. MySQL
          2. Oracle
          3. SQLite
      3. Connexion à PHP
        1. MySQL
        2. Oracle
        3. SQLite
        4. PostgreSQL
      4. Notions avancées
        1. Les ORM
          1. Couches d’abstraction
          2. Réplication et clustering
    3. C - Programmation orientée objet
      1. Concepts de base
        1. Tout est question d’organisation
          1. Ranger ses procédures dans les bons rayons
        2. Qu’est-ce qu’une classe ?
          1. Déclarer une classe
          2. Des classes et des objets
      2. Implémentation en PHP
        1. Visibilité
        2. Construction et destruction
        3. Héritage
        4. Variables et méthodes statiques
        5. Constantes de classe
        6. Classes, méthodes abstraites et interfaces
          1. Abstract
          2. Interfaces
          3. Final
      3. Modélisation et génie logiciel
        1. Les relations entre classes
          1. L’héritage
          2. L’association
          3. L’agrégation
          4. La composition
          5. La dépendance
        2. Les diagrammes UML
          1. Le diagramme de cas d’utilisation
          2. Le diagramme de classes
          3. Le diagramme de séquence
        3. La rétro-ingénierie
        4. Les logiciels de modélisation
          1. ArgoUML
          2. Umbrello
          3. StarUML
          4. Dia
      4. Concepts objet PHP avancés
        1. Les exceptions
        2. La gestion des objets et les opérateurs
          1. Références et clonage
          2. Opérateurs et fonctions relatives aux objets
          3. Typage d’argument
        3. Les méthodes magiques
          1. __get() et __set()
          2. __call()
          3. __isset(), __unset()
          4. __clone()
          5. __toString()
          6. __sleep(), __wakeup()
        4. L’interface de Réflexion
        5. SPL : Standard PHP Library
          1. Iterator
          2. RecursiveIterator
          3. Autres itérateurs
        6. L’autoload
    4. D - Design patterns
      1. Comprendre les motifs de conception
      2. Motif Singleton
        1. Exemple de motif Singleton en PHP
        2. Un Singleton dans Zend Framework ?
      3. Motif Fabrique
        1. Exemple de motif Fabrique en PHP
        2. Une Fabrique dans Zend Framework ?
      4. Motif Proxy
        1. Exemple de motif Proxy dynamique
        2. Un Proxy dans Zend Framework ?
      5. Motif Observateur/Sujet
        1. Exemple de motif Observateur
        2. Un Observateur/Sujet dans Zend Framework ?
      6. Motif Registre
        1. Exemple de motif Registre
        2. Un Registre dans Zend Framework ?
      7. Et bien d’autres encore...
    5. E - Le pattern MVC en théorie
      1. Pourquoi utiliser MVC ?
        1. Des avantages pour le travail en équipe
        2. Des avantages pour le développement et la maintenance
      2. MVC schématisé
        1. Une implémentation « intuitive »
        2. L’implémentation MVC
        3. Et les bibliothèques ?
    6. F - Comment fonctionne PHP ?
      1. PHP, qu’est-ce que c’est ?
        1. Principe de fonctionnement
          1. Utilisation autonome
          2. Utilisation avec un serveur HTTP
        2. Composition
        3. Environnement
          1. Conseils pour paramétrer son environnement
          2. Paramétrer le fichier php.ini
      2. Comment optimiser PHP ?
        1. Réduire les accès disque
        2. Réduire les phases de compilation
      3. Aperçu du cache APC
        1. Fonctionnement d’APC
        2. Configuration d’APC
        3. Fonctions et cache utilisateur
          1. Fonctions d’insertion
          2. Fonctions d’ajout
          3. Fonctions de suppression
          4. Fonction d’interrogation
    7. G - Utiliser Subversion
      1. Subversion dans un projet
        1. Subversion pour Zend Framework
      2. Prise en main d’un client Subversion
        1. Installation d’un client (Windows)
        2. Quelques commandes Subversion
        3. Liaison du dépôt Subversion avec un serveur web
    8. H - Pratique des tests avec PHPUnit
      1. Présentation du concept de test
        1. Les tests unitaires
        2. Un exemple simple
      2. Aller plus loin avec les tests : PHPUnit
        1. Installer PHPUnit
        2. Écrire des tests avec PHPUnit
          1. Exemple de test unitaire
            1. Structure d’une classe de tests
            2. Les assertions
            3. Exécution de la classe de tests
        3. Concept du développement piloté par les tests
          1. Organisation du projet
          2. Définition de la classe de tests des Produits
          3. Définition de la classe de tests du Panier
      3. Encore plus loin avec PHPUnit...
      4. Les tests de Zend Framework
      5. Tests fonctionnels avec Zend_Test
  23. Index
    1. A
    2. B
    3. C
    4. D
    5. E
    6. F
    7. G
    8. H
    9. I
    10. J
    11. L
    12. M
    13. N
    14. O
    15. P
    16. Q
    17. R
    18. S
    19. T
    20. U
    21. V
    22. W
    23. X
    24. Z