Symfony 1.2

-

Livres
322 pages
Lire un extrait
Obtenez un accès à la bibliothèque pour le consulter en ligne
En savoir plus

Description

Reconnu dans le monde pour sa puissance et son élégance, Symfony est issu de plus de dix ans de savoir-faire. Le framework open source de Sensio fédère une très forte communauté de développeurs PHP professionnels. Il leur offre un ensemble d'outils et un environnement MVC pour créer des applications web robustes, maintenables et évolutives.


Au fil d'une démarche rigoureuse et d'un exemple concret d'application web 2.0, ce cahier décrit le bon usage des outils Symfony mis à la disposition du développeur : de l'architecture MVC et autres design patterns à l'abstraction de base de données et au mapping objet-relationnel avec Doctrine, en passant par les tests unitaires et fonctionnels, la gestion des URL, des formulaires ou du cache, l'internationalisation ou encore la génération des interfaces d'administration...




  • Avant-Propos


  • Démarrage du projet


  • L'étude de cas


  • Concevoir le modèle de données


  • Le contrôleur et la vue


  • Le routage


  • Optimisation du modèle et refactoring


  • Concevoir et paginer la liste d'offres d'une catégorie


  • Les tests unitaires


  • Les tests fonctionnels


  • Accélérer la gestion des formulaires


  • Tester les formulaires


  • Le générateur d'interface d'administration


  • Authentification et droits avec l'objet sfUser


  • Les flux de syndication ATOM


  • Construire des services web


  • Déployer un moteur de recherche


  • Dynamiser l'interface utilisateur avec Ajax


  • Internationalisation et localisation


  • Les plug-ins


  • La gestion du cache


  • Le déploiement en production


  • A - Le format YAML


  • B - Le fichier de configuration settings.yml


  • C - Le fichier de configuration factories.yml


  • Index

Sujets

Informations

Publié par
Date de parution 07 juillet 2011
Nombre de visites sur la page 97
EAN13 9782212413045

Informations légales : prix de location à la page 0,0210 €. Cette information est donnée uniquement à titre indicatif conformément à la législation en vigueur.

Signaler un problème
FabienPotencier Hu6oHamon les Cahiers du Programmeur Symfony Mieux développer en PHP avec Symfony 1.2 et Doctrine
Groupe Eyrolles 61, bd Saint-Germain 75240 Paris cedex 05 www.editions-eyrolles.com
Remerciements à Franck Bodiot pour certaines illustrations d’ouverture de chapitre.
En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que c e soit, sans autorisation de l’éditeur ou du Centre Français d’Exploitation du Droit de Copie, 20, rue des Grands-Augustins, 75006 Paris.
ISBN 978-2-212-12494-1 © Groupe Eyrolles
Le format ePub a été préparé par Isakowww.isako.comà partir de l'édition papier du même ouvrage.
Couverture
Titre
Licence
Table
Avant-propos
TABLE
Découvrir l’étude de cas développée
En quoi cet ouvrage est-il différent ?
Organisation de l’ouvrage
Remerciements
chapitre 1 - Démarrage du projet
Installer et configurer les bases du projet
Les prérequis techniques pour démarrer
Installer les librairies du framework Symfony
Installation du projet
Générer la structure de base du projet
Générer la structure de base de la première application frontend
Configuration du chemin vers les librairies de Symfony
Découvrir les environnements émulés par Symfony
Quels sont les principaux environnements en développement web ?
Spécificités de l’environnement de développement
Spécificités de l’environnement de production
Configurer le serveur web
Méthode 1 : configuration dangereuse à ne pas reproduire
Méthode 2 : configuration sûre et recommandée
Création d’un nouveau serveur virtuel pour Jobeet
Tester la nouvelle configuration d’Apache
Contrôler le code source avec Subversion
Quels sont les avantages d’un gestionnaire de versions ?
Installer et configurer le dépôt Subversion
En résumé…
chapitre 2 - L’étude de cas
À la découverte du projet…
Découvrir les spécifications fonctionnelles de Jobeet
Les différents acteurs et applications impliqués
Utilisation de l’application grand public : le frontend
Scénario F1 : voir les dernières offres en page d’accueil
Scénario F2 : voir les offres d’une catégorie
Scénario F3 : affiner la liste des offres avec des mots-clés
Scénario F4 : obtenir le détail d’une offre
Scénario F5 : poster une nouvelle annonce
Scénario F6 : s’inscrire en tant qu’affilié pour utiliser l’API
Scénario F7 : l’affilié récupère la liste des dernières offres actives
Utilisation de l’interface d’administration : le backend
Scénario B1 : gérer les catégories
Scénario B2 : gérer les offres d’emploi
Scénario B3 : gérer les comptes administrateur
Scénario B4 : configurer le site Internet
En résumé…
chapitre 3 - Concevoir le modèle de données
Installer la base de données
Créer la base de données MySQL
Configurer la base de données pour le projet Symfony
Présentation de la couche d’ORM Doctrine
Qu’est-ce qu’une couche d’abstraction de base de données ?
Qu’est-ce qu’un ORM ?
Activer l’ORM Doctrine pour Symfony
Concevoir le modèle de données
Découvrir le diagramme UML « entité-relation »
Mise en place du schéma de définition de la base
De l’importance du schéma de définition de la base de données…
Écrire le schéma de définition de la base de données
Déclaration des attributs des colonnes d’une table en format YAML
Générer la base de données et les classes du modèle avec Doctrine
Construire la base de données automatiquement
Découvrir les classes du modèle de données
Générer la base de données et le modèle en une seule passe
Préparer les données initiales de Jobeet
Découvrir les différents types de données d’un projet Symfony
Définir des jeux de données initiales pour Jobeet
Charger les jeux de données de tests en base de données
Régénérer la base de données et le modèle en une seule passe
Profiter de toute la puissance de Symfony dans le navigateur
Générer le premier module fonctionnel « job »
Composition de base d’un module généré par Symfony
Découvrir les actions du module « job »
Comprendre l’importance de la méthode magique __toString()
Ajouter et éditer les offres d’emploi
En résumé…
chapitre 4 - Le contrôleur et la vue
L’architecture MVC et son implémentation dans Symfony
Habiller le contenu de chaque page avec un même gabarit
Décorer une page avec un en-tête et un pied de page
Décorer le contenu d’une page avec un décorateur
Intégrer la charte graphique de Jobeet
Récupérer les images et les feuilles de style
Configurer la vue à partir d’un fichier de configuration
Configurer la vue à l’aide des helpers de Symfony
Générer la page d’accueil des offres d’emploi
Écrire le contrôleur de la page : l’action index
Créer la vue associée à l’action : le template
Personnaliser les informations affichées pour chaque offre
Générer la page de détail d’une offre
Créer le template du détail de l’offre
Mettre à jour l’action show
Utiliser les emplacements pour modifier dynamiquement le titre des pages
Définition d’un emplacement pour le titre
Fixer la valeur d’un slot dans un template
Fixer la valeur d’un slot complexe dans un template
Déclarer une valeur par défaut pour le slot
Rediriger vers une page d’erreur 404 si l’offre n’existe pas
Comprendre l’interaction client/serveur
Récupérer le détail de la requête envoyée au serveur
Récupérer le détail de la réponse envoyée au client
En résumé…
chapitre 5 - Le routage
À la découverte du framework de routage de Symfony
Rappels sur la notion d’URL
Qu’est-ce qu’une URL ?
Introduction générale au framework interne de routage
Configuration du routage : le fichier routing.yml
Découverte de la configuration par défaut du routage
Comprendre le fonctionnement des URL par défaut de Symfony
Personnaliser les routes de l’application
Configurer la route de la page d’accueil
Configurer la route d’accès au détail d’une offre
Forcer la validation des paramètres des URLs internes de l’application
Limiter une requête à certaines méthodes HTTP
Optimiser la création de routes grâce à la classe de route d’objets Doctrine
Transformer la route d’une offre en route Doctrine
Améliorer le format des URL des offres d’emploi
Retrouver l’objet grâce à sa route depuis une action
Faire appel au routage depuis les actions et les templates
Le routage dans les templates
Le routage dans les actions
Découvrir la classe de collection de routes sfDoctrineRouteCollection
Déclarer une nouvelle collection de routes Doctrine
Émuler les méthodes PUT et DELETE
Outils et bonnes pratiques liés au routage
Faciliter le débogage en listant les routes de l’application
Supprimer les routes par défaut
En résumé…
chapitre 6 - Optimisation du modèle et refactoring
Présentation de l’objet Doctrine_Query
Déboguer le code SQL généré par Doctrine
Découvrir les fichiers de log
Avoir recours à la barre de débogage
Intervenir sur les propriétés d’un objet avant sa sérialisation en base de données
Redéfinir la méthode save() d’un objet Doctrine
Récupérer la liste des offres d’emploi actives
Mettre à jour les données de test pour s’assurer de la validité des offres affichées
Gérer les paramètres personnalisés d’une application dans Symfony
Découvrir le fichier de configuration app.yml
Récupérer une valeur de configuration depuis le modèle
Remanier le code en continu pour respecter la logique MVC
Exemple de déplacement du contrôleur vers le modèle
Avantages du remaniement de code
Ordonner les offres suivant leur date d’expiration
Classer les offres d’emploi selon leur catégorie
Limiter le nombre de résultats affichés
Modifier les données de test dynamiquement par l’ajout de code PHP
Empêcher la consultation d’une offre expirée
Créer une page dédiée à la catégorie
En résumé…
chapitre 7 - Concevoir et paginer la liste d’offres d’une catégorie
Mise en place d’une route dédiée à la page de la catégorie
Déclarer la route category dans le fichier routing.yml
Implémenter l’accesseur getSlug() dans la classe JobeetJob
Personnaliser les conditions d’affichage du lien de la page de catégorie
Intégrer un lien pour chaque catégorie ayant plus de dix offres valides
Implémenter la méthode countActiveJobs() de la classe JobeetCategory
Implémenter la méthode countActiveJobs() de la classe JobeetCategoryTable
Mise en place du module dédié aux catégories
Générer automatiquement le squelette du module
Ajouter un champ supplémentaire pour accueillir le slug de la catégorie
Création de la vue de détail de la catégorie
Mise en place de l’action executeShow()
Intégration du template showSuccess.php associé
Isoler le HTML redondant dans les templates partiels
Découvrir le principe de templates partiels
Création d’un template partiel _list.php pour les modules job et category
Faire appel au partiel dans un template
Utiliser le partiel _list.php dans les templates indexSuccess.php et showSuccess.php
Paginer une liste d’objets Doctrine
Que sont les listes paginées et à quoi servent-elles ?
Préparer la pagination à l’aide de sfDoctrinePager
Initialiser la classe de modèle et le nombre maximum d’objets par page
Spécifier l’objet Doctrine_Query de sélection des résultats
Configurer le numéro de la page courante de résultats
Initialiser le composant de pagination
Simplifier les méthodes de sélection des résultats
Implémenter la méthode getActiveJobsQuery de l’objet JobeetCategory
Remanier les méthodes existantes de JobeetCategory
Intégrer les éléments de pagination dans le template showSuccess.php
Passer la collection d’objets Doctrine au template partiel
Afficher les liens de navigation entre les pages
Afficher le nombre total d’offres publiées et de pages
Description des méthodes de l’objet sfDoctrinePager utilisées dans le template
Code final du template showSuccess.php
En résumé…
chapitre 8 - Les tests unitaires
Présentation des types de tests dans Symfony
De la nécessité de passer par des tests unitaires
Présentation du framework de test lime
Initialisation d’un fichier de tests unitaires
Découverte des outils de tests de lime
Exécuter une suite de tests unitaires
Tester unitairement la méthode slugify()