Accès illimité 24h/24 à tous nos livres & vidéos ! Découvrez la Bibliothèque Numérique ENI. Cliquez ici.
  1. Livres et vidéos
  2. CakePHP 3 - Le framework PHP pour le développement de vos applications web - Version en ligne

CakePHP 3 Le framework PHP pour le développement de vos applications web - Version en ligne

  • Accessible immédiatement et pour une durée de 10 ans
  • Version HTML
  • Accès illimité 24h/24, 7J/7
  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne

Présentation

Ce livre sur CakePHP (en version 3.2 au moment de l'écriture) s'adresse aux développeurs et apprentis développeurs souhaitant améliorer leur pratique et maîtriser ce framework de développement. Bien que le premier chapitre reprenne les notions importantes du langage, la connaissance de PHP est un prérequis important pour tirer pleinement profit de ce livre.

L'objectif des auteurs est de rendre le lecteur autonome dans la maîtrise de CakePHP, les frameworks étant aujourd'hui indispensables à la mise en place de projets professionnels soumis aux contraintes du développement d'applications web : être capable de développer en permanence de nouvelles fonctionnalités, assurer une maintenance aisée du code, faciliter le travail en équipe et prendre en compte les nouveaux usages.

Les chapitres s'enchaînent et, en s'appuyant sur de nombreux exemples, proposent une progression pédagogique adaptée à cet objectif : découverte du framework, mise en place de la structure MVC (Modèle, Vue, Contrôleur), découverte des tâches courantes et des plugins disponibles. Le dernier chapitre propose la réalisation d'un projet s'appuyant sur un cas concret ; l'application réalisée est disponible en téléchargement sur le site www.editions-eni.fr.


Les chapitres du livre :
Avant-propos – Avant de démarrer – Présentation de CakePHP – Installation et configuration – Les modèles – Les contrôleurs – Les vues – Tâches courantes - Utilisation avancée – Plugins indispensables – Cas pratique

Table des matières

  • Avant-propos
    • 1. Introduction
    • 2. Public visé
    • 3. Prérequis
    • 4. Organisation du livre
  • Avant de démarrer
    • 1. Introduction
    • 2. La programmation orientée objet en PHP
      • 2.1 Pourquoi utiliser la programmation orientée objet ?
      • 2.2 Le vocabulaire
        • 2.2.1 Qu’est-ce qu’un objet ?
        • 2.2.2 Qu'est-ce qu'une classe ?
        • 2.2.3 Qu'est-ce qu'une instance ?
      • 2.3 Utiliser les objets
        • 2.3.1 Déclarer une classe
        • 2.3.2 Instancier un objet
      • 2.4 L'héritage en programmation orientée objet avec PHP
        • 2.4.1 L'héritage simple
        • 2.4.2 Les traits
        • 2.4.3 Les classes abstraites
        • 2.4.4 Les interfaces
    • 3. Qu'est-ce qu'un ORM ?
    • 4. Le pattern Modèle-Vue-Contrôleur
    • 5. Les normes de développement (PSR)
      • 5.1 Introduction
      • 5.2 Le Framework Interoperability Group
      • 5.3 Normes de chargement des classes
      • 5.4 Normes d’écriture du code
        • 5.4.1 Principales règles de la norme PSR-1
        • 5.4.2 Principales règles de la norme PSR-2
    • 6. Les frameworks
  • Présentation de CakePHP
    • 1. Introduction
    • 2. Pourquoi choisir CakePHP ?
      • 2.1 Conventions plutôt que configuration
      • 2.2 Licence MIT
      • 2.3 Fourni avec tout le nécessaire
      • 2.4 Des plugins de qualité
      • 2.5 Compatibilité PHP 7
    • 3. Quelles différences entre les versions 2 et 3 ?
      • 3.1 Principales modifications
      • 3.2 Guide de migration
    • 4. Comprendre le fonctionnement
      • 4.1 Cycle de la requête
      • 4.2 La couche Modèle
      • 4.3 La couche Contrôleur
      • 4.4 La couche Vue
    • 5. Les conventions
      • 5.1 Conventions pour les contrôleurs
      • 5.2 Conventions pour les fichiers et les noms des classes
      • 5.3 Conventions pour les modèles et les bases de données
      • 5.4 Conventions pour les vues
      • 5.5 Récapitulatif
    • 6. Où obtenir de l’aide ?
      • 6.1 Le site officiel CakePHP
      • 6.2 Le CookBook
      • 6.3 L’API
      • 6.4 Stack Overflow
      • 6.5 Communauté française de CakePHP
  • Installation et configuration
    • 1. Introduction
    • 2. Prérequis
      • 2.1 Environnement de développement local
      • 2.2 Serveur HTTP et réécriture des URL
        • 2.2.1 Activer la réécriture des URL
        • 2.2.2 Désactiver la réécriture d’URL
      • 2.3 Vérifier la version de PHP
        • 2.3.1 Vérifier si le module PHP Mbstring est activé
        • 2.3.2 Vérifier si l'extension intl est activée
        • 2.3.3 Accéder au plugin DebugKit
    • 3. Installer CakePHP grâce à Composer
      • 3.1 Installer Composer
      • 3.2 Installer CakePHP
    • 4. Architecture des dossiers
    • 5. Configuration
      • 5.1 Introduction
      • 5.2 Configuration générale
        • 5.2.1 Lire des données de configuration
        • 5.2.2 Écrire des données de configuration
      • 5.3 Activer le mode débogage
      • 5.4 Configurer la base de données
      • 5.5 Configurer les e-mails
        • 5.5.1 Transport d’e-mails
        • 5.5.2 Profil d’e-mail
      • 5.6 Configurer les sessions
      • 5.7 Configurer les journaux de logs
      • 5.8 Configurer les erreurs et les exceptions
  • Les modèles
    • 1. Introduction
    • 2. Opérations de base
      • 2.1 Introduction
      • 2.2 Gérer les connexions
      • 2.3 Requête de sélection
      • 2.4 Requête d’insertion
      • 2.5 Requête de modification
      • 2.6 Requête de suppression
      • 2.7 Requête préparée
    • 3. Les tables
      • 3.1 Fonctionnement de base
      • 3.2 Associations de tables
        • 3.2.1 Association hasOne
        • 3.2.2 Association hasMany
        • 3.2.3 Association belongsTo
        • 3.2.4 Association belongsToMany
      • 3.3 Les méthodes de rappel (callback)
    • 4. Les entités
      • 4.1 Fonctionnement de base
      • 4.2 Créer une entité
      • 4.3 Accéder aux données
      • 4.4 Accesseurs et mutateurs
        • 4.4.1 Accesseurs
        • 4.4.2 Mutateurs
      • 4.5 Déterminer si une donnée a été modifiée
    • 5. Sauvegarder des données
      • 5.1 Introduction
      • 5.2 Insérer des données
      • 5.3 Modifier des données
      • 5.4 Supprimer des données
    • 6. Validation des données
      • 6.1 Validation à la construction de l’entité
        • 6.1.1 Ajouter des règles de validation
        • 6.1.2 Utiliser un autre ensemble de règles de validation
      • 6.2 Validation à la sauvegarde de l’entité
        • 6.2.1 Vérifier l’unicité d’un champ
        • 6.2.2 Vérifier la validité d’une clé étrangère
    • 7. Les requêtes
      • 7.1 Constructeur de requête
        • 7.1.1 L’objet Query
        • 7.1.2 Parcourir les résultats de la requête
        • 7.1.3 Sélectionner des colonnes
        • 7.1.4 Définir des conditions simples
        • 7.1.5 Trier les données
        • 7.1.6 Limiter le nombre de résultats
        • 7.1.7 Fonctions SQL avancées
        • 7.1.8 Regrouper les résultats
        • 7.1.9 Désactiver l’hydratation
        • 7.1.10 Combinaisons « OU » et « ET »
        • 7.1.11 Récupérer le nombre de résultats
      • 7.2 Déboguer les requêtes
      • 7.3 Récupérer une entité à partir de la clé primaire
      • 7.4 Utilisation des finders
        • 7.4.1 Retourner les résultats au format clé/valeur
        • 7.4.2 Créer des finders personnalisés
        • 7.4.3 Finders dynamiques
      • 7.5 Récupérer les données associées
        • 7.5.1 Charger les données associées avec contain()
        • 7.5.2 Filtrer par les données associées avec matching()
    • 8. Les comportements (behaviors)
      • 8.1 Utiliser un comportement
      • 8.2 CounterCache
        • 8.2.1 Utilisation basique
        • 8.2.2 Utilisation avancée
      • 8.3 Timestamp
        • 8.3.1 Introduction
        • 8.3.2 Modifier les champs
        • 8.3.3 Mettre à jour les timestamps
      • 8.4 Translate
        • 8.4.1 Introduction
        • 8.4.2 Création de la table i18n dans la base de données
        • 8.4.3 Attacher le comportement à une table
        • 8.4.4 Sélectionner une traduction
        • 8.4.5 Récupérer les traductions
        • 8.4.6 Sauvegarder des traductions
      • 8.5 Tree
        • 8.5.1 Introduction
        • 8.5.2 Prérequis
        • 8.5.3 Attacher le comportement à une table
        • 8.5.4 Rechercher des données hiérarchisées
        • 8.5.5 Réorganiser des données hiérarchisées
        • 8.5.6 Sauvegarder des données hiérarchisées
      • 8.6 Créer un comportement
  • Les contrôleurs
    • 1. Introduction
    • 2. Le contrôleur App
    • 3. Le contrôleur Pages
    • 4. Créer un contrôleur
    • 5. Les actions du contrôleur
    • 6. Les objets Request et Response
      • 6.1 Request
        • 6.1.1 Accéder aux paramètres de la requête
        • 6.1.2 Accéder aux données de la requête
        • 6.1.3 Accéder aux variables d’environnement
        • 6.1.4 Informations sur le chemin
        • 6.1.5 Vérifier la requête
      • 6.2 Response
        • 6.2.1 Définir les en-têtes
        • 6.2.2 Définir l'encodage
        • 6.2.3 Gérer les types de contenu
        • 6.2.4 Envoyer des fichiers
        • 6.2.5 Gestion du cache
    • 7. Interagir avec les vues
      • 7.1 Définir les variables de vue
      • 7.2 Afficher une vue
    • 8. Les redirections
    • 9. Les méthodes de rappel (callback)
    • 10. Les composants
      • 10.1 Auth
      • 10.2 Cookie
        • 10.2.1 Configurer les cookies
        • 10.2.2 Utiliser les cookies
      • 10.3 Csrf
      • 10.4 Flash
      • 10.5 Security
        • 10.5.1 Forcer l’utilisation du SSL
        • 10.5.2 Restreindre les requêtes entre contrôleurs
        • 10.5.3 Empêcher la falsification des formulaires
      • 10.6 Pagination
      • 10.7 RequestHandler
        • 10.7.1 Obtenir des informations sur les requêtes
        • 10.7.2 Répondre aux requêtes
      • 10.8 Créer un composant
  • Les vues
    • 1. Introduction
    • 2. Utiliser les variables
    • 3. La mise en page (layout)
    • 4. Les vues
    • 5. Les éléments
    • 6. Les assistants (helpers)
      • 6.1 Assistants disponibles
      • 6.2 Charger un assistant
      • 6.3 Html
        • 6.3.1 Définir le jeu de caractères
        • 6.3.2 Lier des fichiers CSS
        • 6.3.3 Lier des fichiers JavaScript
        • 6.3.4 Afficher une image
        • 6.3.5 Créer des liens
        • 6.3.6 Créer des listes imbriquées
      • 6.4 Form
        • 6.4.1 Créer un formulaire
        • 6.4.2 Créer des éléments de formulaire standards
        • 6.4.3 Créer des boutons
        • 6.4.4 Fermer le formulaire
      • 6.5 Flash
      • 6.6 Number
        • 6.6.1 Le formatage des nombres
        • 6.6.2 Le formatage des pourcentages
        • 6.6.3 Le formatage des nombres à virgule
        • 6.6.4 Le formatage des devises
      • 6.7 Text
        • 6.7.1 Convertir du texte
        • 6.7.2 Extraire du texte
        • 6.7.3 Mise en valeur d'un extrait
        • 6.7.4 Concaténer un tableau
        • 6.7.5 Gestion des liens et des e-mails
      • 6.8 Time
        • 6.8.1 Tester les données temporelles
        • 6.8.2 Formater les données temporelles
      • 6.9 Url
      • 6.10 Session
    • 7. Les cellules
    • 8. Les assistants personnalisés
      • 8.1 Créer un assistant
      • 8.2 Utiliser un assistant créé
  • Tâches courantes
    • 1. Introduction
    • 2. Authentification
      • 2.1 Introduction
      • 2.2 Ajouter et configurer le composant Auth
      • 2.3 Créer la table Users dans la base de données
      • 2.4 Créer le contrôleur
        • 2.4.1 Introduction
        • 2.4.2 Identifier les utilisateurs et les connecter
        • 2.4.3 Rediriger les utilisateurs après la connexion
        • 2.4.4 Déconnecter les utilisateurs
      • 2.5 Créer les vues
        • 2.5.1 Connexion
        • 2.5.2 Ajout d’un utilisateur
      • 2.6 Créer le modèle
        • 2.6.1 Ajouter des règles de validation
        • 2.6.2 Crypter le mot de passe
    • 3. Les autorisations
      • 3.1 Introduction
      • 3.2 Gérer les autorisations
      • 3.3 Autoriser des actions
    • 4. Envoyer des e-mails
      • 4.1 Fonctionnement de base
      • 4.2 Configuration des transports
      • 4.3 Envoyer des e-mails en utilisant les vues
      • 4.4 Envoyer des pièces jointes
      • 4.5 Créer des e-mails réutilisables
    • 5. Pagination
      • 5.1 Introduction
      • 5.2 Mise en place du composant Paginator
      • 5.3 Mise en place de l’assistant PaginatorHelper
        • 5.3.1 Créer des liens triés
        • 5.3.2 Créer des liens de page numérotés
        • 5.3.3 Créer des liens de saut de page
        • 5.3.4 Créer un compteur de pages
        • 5.3.5 Vérifier l’état de la pagination
    • 6. Gérer les messages Flash
      • 6.1 Introduction
      • 6.2 Utilisation du composant FlashComponent
      • 6.3 Utilisation de l’assistant FlashHelper
    • 7. Créer un formulaire sans modèle
      • 7.1 Définir le formulaire
      • 7.2 Traiter les données
      • 7.3 Créer la vue du formulaire
    • 8. Requêtes Ajax
      • 8.1 Introduction
      • 8.2 Appel de la requête depuis une vue
      • 8.3 Utiliser la mise en page Ajax
  • Utilisation avancée
    • 1. Introduction
    • 2. Routage
      • 2.1 Introduction
      • 2.2 Les scopes
      • 2.3 Créer une route
        • 2.3.1 Les éléments de route
        • 2.3.2 Passer les paramètres à l’action
        • 2.3.3 Nommer les routes
        • 2.3.4 Préfixer les routes
        • 2.3.5 Routes des plugins
        • 2.3.6 Routes et SEO
        • 2.3.7 Extensions de fichiers
      • 2.4 Définir les routes par défaut
    • 3. Sécurité
      • 3.1 Introduction
      • 3.2 Chiffrer et déchiffrer des données
      • 3.3 Hacher des données
    • 4. Événements système
      • 4.1 Introduction
      • 4.2 Événements (events)
        • 4.2.1 Introduction
        • 4.2.2 Événement du cœur
        • 4.2.3 Déclarer des événements
      • 4.3 Écouteurs (listeners)
    • 5. Internationalisation
      • 5.1 Introduction
      • 5.2 Rendre les chaînes traduisibles
        • 5.2.1 Chaîne de caractères simple
        • 5.2.2 Regrouper les messages par domaine
        • 5.2.3 Définir un contexte
        • 5.2.4 Utiliser des variables
        • 5.2.5 Gérer les pluriels
      • 5.3 Fichiers de traduction
      • 5.4 Définir la localisation par défaut
      • 5.5 Localiser les dates et les nombres
    • 6. Interface de programmation (API)
      • 6.1 Introduction
      • 6.2 Créer des routes RESTful
      • 6.3 Mise en place du contrôleur
      • 6.4 Lire une API
        • 6.4.1 Les types de requêtes
        • 6.4.2 Exécuter une requête
        • 6.4.3 Récupérer le résultat
        • 6.4.4 Paramétrer une connexion
  • Plugins indispensables
    • 1. Introduction
    • 2. Ajouter un plugin à son application
      • 2.1 Installer un plugin avec Composer
      • 2.2 Charger un plugin dans l’application
    • 3. Migrations
      • 3.1 Créer un fichier de migration
      • 3.2 Appliquer une migration
      • 3.3 Annuler une migration
      • 3.4 Connaître l'état des migrations
    • 4. Générer du code avec Bake
      • 4.1 Introduction
      • 4.2 Générer un comportement
      • 4.3 Générer une cellule
      • 4.4 Générer un composant
      • 4.5 Générer un contrôleur
      • 4.6 Générer des données d’essai
      • 4.7 Générer un formulaire
      • 4.8 Générer un assistant
      • 4.9 Générer une classe générique de mail
      • 4.10 Générer une capture de la base de données
      • 4.11 Générer un modèle
      • 4.12 Générer un plugin
      • 4.13 Générer une commande
      • 4.14 Générer l’aide d’une commande
      • 4.15 Générer les vues
      • 4.16 Générer les cas de test
      • 4.17 Générer une application complète
    • 5. Inspecter avec Debug Kit
      • 5.1 Installation de Debug Kit
      • 5.2 Utilisation de la barre de débogage
    • 6. Tester avec PHPUnit
      • 6.1 Installation de PHPUnit
      • 6.2 Les premiers tests
      • 6.3 Les fixtures
      • 6.4 Tester les classes Table
      • 6.5 Tests d’intégration sur les contrôleurs
        • 6.5.1 Simuler une requête
        • 6.5.2 Les méthodes d’assertion
    • 7. Vérifier la syntaxe avec CodeSniffer
      • 7.1 Introduction
      • 7.2 Installation du plugin CakePHP CodeSniffer
      • 7.3 Utilisation
    • 8. Gérer les suppressions logiques avec SoftDelete
      • 8.1 Introduction
      • 8.2 Installer le plugin SoftDelete
      • 8.3 Configurer le plugin
      • 8.4 Utilisation
        • 8.4.1 Restaurer des données supprimées logiquement
        • 8.4.2 Supprimer définitivement les données
    • 9. Utiliser Bootstrap dans ses formulaires
      • 9.1 Installer le plugin Bootstrap Helper
      • 9.2 Utiliser le plugin Bootstrap Helper
        • 9.2.1 Utiliser l'assistant Html
        • 9.2.2 Utiliser l'assistant Form
        • 9.2.3 Utiliser l'assistant Modal
    • 10. Exporter des données au format CSV
      • 10.1 Installation de CsvView
      • 10.2 Utilisation
        • 10.2.1 Export simple
        • 10.2.2 Exporter plusieurs variables
        • 10.2.3 Définir les propriétés à exporter
        • 10.2.4 Définir les lignes d’en-tête et de pied de tableau
        • 10.2.5 Modifier le nom du fichier
        • 10.2.6 Personnaliser la vue de l’export
    • 11. Créer des fichiers PDF
      • 11.1 Installation de CakePDF
      • 11.2 Utilisation
  • Cas pratique
    • 1. Introduction
    • 2. Conception
    • 3. Installation et paramétrage de CakePHP
    • 4. Mise en place de la base de données
      • 4.1 Les familles de produits
      • 4.2 Les produits
    • 5. Génération de code
      • 5.1 Générer les modèles
        • 5.1.1 Générer la table et l’entité du modèle Familles
        • 5.1.2 Générer la table et l’entité du modèle Produits
      • 5.2 Générer les contrôleurs
        • 5.2.1 Générer le contrôleur Familles
        • 5.2.2 Générer le contrôleur Produits
      • 5.3 Générer les vues
        • 5.3.1 Générer les vues pour la table Familles
        • 5.3.2 Générer les vues pour la table Produits
    • 6. Personnaliser l'affichage de l'application
      • 6.1 Installation de Bootstrap Helper
      • 6.2 Utilisation
        • 6.2.1 Les vues gérant les familles
        • 6.2.2 Les vues gérant les produits
    • 7. Gestion des utilisateurs
      • 7.1 Créer la table des utilisateurs
      • 7.2 Générer le code
      • 7.3 Mettre en place l’authentification
      • 7.4 Personnaliser l’affichage en fonction des droits
    • 8. Exporter en CSV
      • 8.1 Installer le plugin CsvView
      • 8.2 Mettre en place l’export
    • 9. Utiliser une fenêtre modale
    • 10. Mise en place de règles métier
      • 10.1 La gestion des quantités produites
      • 10.2 Affichage des familles
    • Index

Auteurs

Benjamin LAMPÉRIEREn savoir plus

Après quelques années passées à des postes de développeurs, Benoît GOYHENECHE et Benjamin LAMPÉRIER sont aujourd'hui gérants de leur entreprise, Iteracode. Adeptes des méthodes agiles, ils placent les besoins métiers, la satisfaction client et la qualité des développements au centre de leurs préoccupations. CakePHP est leur framework de prédilection pour les accompagner sur ces objectifs et ils partagent volontiers avec les lecteurs leur expertise et leur retour d'expérience sur cet outil.

Benoît GOYHENECHEEn savoir plus

Après quelques années passées à des postes de développeurs, Benoît GOYHENECHE et Benjamin LAMPÉRIER sont aujourd'hui gérants de leur entreprise, Iteracode. Adeptes des méthodes agiles, ils placent les besoins métiers, la satisfaction client et la qualité des développements au centre de leurs préoccupations. CakePHP est leur framework de prédilection pour les accompagner sur ces objectifs et ils partagent volontiers avec les lecteurs leur expertise et leur retour d'expérience sur cet outil.

Caractéristiques

  • Niveau Expert à Confirmé
  • Parution mai 2016
    • HTML
    • ISBN : 978-2-409-00288-5
    • EAN : 9782409002885
    • Ref. ENI : LNEP3CAK

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (279 Ko)