1. Livres et vidéos
  2. Phalcon 3 - Développez des applications web complexes et performantes en PHP

Phalcon 3 Développez des applications web complexes et performantes en PHP

  • 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
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

Ce livre sur le framework Phalcon 3 donne les connaissances nécessaires pour développer des applications web en PHP, avec à la fin de chaque chapitre une présentation des nouveautés apportées par la version 4 du framework et, lorsque cela est nécessaire, les informations utiles pour réaliser une migration de la v3 à la v4. Ainsi, que vous soyez développeur débutant ou plus expérimenté souhaitant vous intégrer rapidement dans un projet développé avec Phalcon, lead-developer à la recherche d'un framework performant ou DevOps désirant améliorer l'infrastructure d'un projet Phalcon, ce livre est fait pour vous.

Le livre débute avec l'installation et le paramétrage d'un environnement de travail sous Windows ou Linux et avec Docker. Puis, progressivement, l'auteur vous mène vers les grandes étapes de développement d'un projet web avec Phalcon. Création d'un projet, services de Phalcon, gestion de requêtes HTTP, création de formulaires, génération de vues et gestion des différentes pages, interactions avec les bases de données sont autant d'étapes détaillées et illustrées par des cas concrets et des exemples variés.

Puis l'auteur étudie des fonctions avancées de Phalcon comme la gestion des logs, des erreurs, des événements, des droits d'accès et de la sécurité. La gestion du cache, la manipulation d'images ainsi que l'amélioration des performances sont aussi présentées. L'auteur propose plusieurs mises en application de Phalcon permettant notamment d'exécuter des tâches Phalcon en lignes de commandes ou de créer une API REST.

Pour finir, le dernier chapitre permet au lecteur de passer à la pratique avec un projet de développement de cours en ligne dans lequel l'auteur détaille les différentes étapes de paramétrage de Phalcon pour concevoir à la fois la partie Back-End et la partie Front-End du projet.

Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.



Quizinclus dans
la version en ligne !
  • Testez vos connaissances à l'issue de chaque chapitre
  • Validez vos acquis

Table des matières

  • Avant-propos
    • 1. Au commencement
    • 2. Les raisons d'être de ce livre
    • 3. Le public visé
    • 4. Le contenu du livre
    • 5. Remerciements
  • Présentation de Phalcon
    • 1. Introduction
    • 2. Historique du framework
    • 3. Caractéristiques techniques de Phalcon
    • 4. Versions de Phalcon
    • 5. Pourquoi choisir Phalcon ?
  • Installation
    • 1. Présentation des éléments à installer
      • 1.1 Serveur web
      • 1.2 Langage PHP
      • 1.3 Choix de la version de Phalcon
      • 1.4 Gestionnaire de dépendances PHP
      • 1.5 Moteur de base de données
    • 2. Configuration sous Windows
      • 2.1 Installation d'Apache 2
      • 2.2 Installation de PHP
      • 2.3 Compilation depuis les sources
      • 2.4 Ajout de l'extension
      • 2.5 Installation de Composer
      • 2.6 Installation de PostgreSQL
      • 2.7 Installation de DBeaver
    • 3. Configuration sous Ubuntu
      • 3.1 Installation d'Apache 2
      • 3.2 Installation de PHP
      • 3.3 Compilation depuis les sources de Phalcon
      • 3.4 Ajout de l'extension
      • 3.5 Installation de Composer
      • 3.6 Installation de PostgreSQL
      • 3.7 Installation de DBeaver
    • 4. Docker
      • 4.1 Création d'un fichier Dockerfile
      • 4.2 Création d'un fichier docker-compose.yml
    • 5. Initialisation d’une base de données PostgreSQL
      • 5.1 Connexion à une base de données
      • 5.2 Import d’un schéma avec des données
    • 6. Nouveautés de la version 4
    • 7. Migration vers la version 4
      • 7.1 Configuration sous Windows
        • 7.1.1 Mise à jour de Phalcon
        • 7.1.2 Téléchargement et installation de l'extension psr
      • 7.2 Configuration sous Ubuntu
        • 7.2.1 Téléchargement, compilation et installation de l'extension psr
        • 7.2.2 Mise à jour de Phalcon
      • 7.3 Docker
        • 7.3.1 Modification du Dockerfile
        • 7.3.2 Modification du docker-compose
  • Création d'un premier projet
    • 1. Initialisation avec Phalcon DevTools
    • 2. Installation avec Composer
    • 3. Création du projet
      • 3.1 Exploration du Hello World
        • 3.1.1 Présentation des fichiers à la racine du projet
        • 3.1.2 Présentation des répertoires à la racine
    • 4. Compréhension du squelette de base de Phalcon
      • 4.1 Configuration
        • 4.1.1 Utilisation des constantes de base
        • 4.1.2 Configuration d'une base de données
        • 4.1.3 Intégration des répertoires clés d'un projet Phalcon
        • 4.1.4 Ajout de données complémentaires
      • 4.2 Routage des pages
        • 4.2.1 Description du fichier de base
        • 4.2.2 Gestion par défaut des liens
        • 4.2.3 Définition d'URL
        • 4.2.4 Gestion des paramètres d'URL
      • 4.3 Contrôleurs
        • 4.3.1 Récupération de paramètres provenant du router.php
      • 4.4 Modèles
        • 4.4.1 Création d'une classe Modèle
        • 4.4.2 Description du modèle généré
        • 4.4.3 Récupération de données
      • 4.5 Vues
        • 4.5.1 Passage des données à la vue
        • 4.5.2 Affichage des données dans une vue
      • 4.6 Zone publique
        • 4.6.1 Présentation
        • 4.6.2 Import des fichiers
        • 4.6.3 Intégration des fichiers de la zone publique dans une vue
    • 5. Débogage d'un projet
      • 5.1 Installation de Xdebug
        • 5.1.1 Installation sous Windows
        • 5.1.2 Installation sous Linux
        • 5.1.3 Installation sous Docker
        • 5.1.4 Vérification d'installation de l'extension
        • 5.1.5 Installation de l'extension pour navigateur
      • 5.2 Configuration sur PHPStorm
        • 5.2.1 Paramétrage de Xdebug
        • 5.2.2 Intégration du code de Phalcon
    • 6. Nouveautés de la version 4
      • 6.1 Fonction handle
        • 6.1.1 Changement dans l'objet Application
        • 6.1.2 Changement dans l'objet router
      • 6.2 Changement de l'espace de nom de la classe Url
      • 6.3 Changement dans les options de Volt
      • 6.4 Modification au niveau des modèles de bases de données
        • 6.4.1 La fonction find
        • 6.4.2 La fonction getSource
      • 6.5 Création d'un plugin pour PHPStorm
    • 7. Migration vers la version 4
      • 7.1 Phalcon DevTools
        • 7.1.1 Mise à jour classique
        • 7.1.2 Autre méthode d'installation
      • 7.2 Mise à jour de phalcon/ide-stubs
      • 7.3 Modification de la fonction handle
        • 7.3.1 Modification du point d'entrée
        • 7.3.2 Modification du fichier de routage
      • 7.4 Modification de l'espace de nom de la classe Url
      • 7.5 Modification des options de Volt
      • 7.6 Modification de la fonction find
  • Services de Phalcon
    • 1. Injection de dépendances (DI)
      • 1.1 Une dépendance simple
        • 1.1.1 Explication
        • 1.1.2 Mise en œuvre d'un service avec une simple instanciation
        • 1.1.3 Mise en œuvre d'un service avec une fonction anonyme
      • 1.2 Une dépendance partagée
        • 1.2.1 Explication
        • 1.2.2 Mise en œuvre
        • 1.2.3 Liste des dépendances de Phalcon
    • 2. Inclusion de nouveaux répertoires
      • 2.1 Ajout du dossier dans la configuration
      • 2.2 Chargement du contenu d'un répertoire
      • 2.3 Ajout d'un espace de noms pour un répertoire
    • 3. Nouveautés de la version 4
      • 3.1 Les collections
        • 3.1.1 Construction d'une collection
        • 3.1.2 Récupérer le nombre d'éléments d'une collection/tableau
        • 3.1.3 Réutilisation d'une collection
        • 3.1.4 Récupération d'un élément
        • 3.1.5 Vérification de la présence d'un élément
        • 3.1.6 Modification d'un élément
        • 3.1.7 Ajout d'un élément
        • 3.1.8 Suppression d'un élément
        • 3.1.9 Parcours d'une collection
        • 3.1.10 Sérialisation d'une collection
        • 3.1.11 Désérialisation d'une collection
        • 3.1.12 Transformation en un tableau standard
        • 3.1.13 Transformation en JSON
      • 3.2 La lecture seule
      • 3.3 La classe Registry
      • 3.4 La classe d'aide pour les tableaux
        • 3.4.1 Récupération de la première valeur
        • 3.4.2 Récupération de la première valeur en suivant une fonction
        • 3.4.3 Récupération de la première clé
        • 3.4.4 Récupération de la première clé en suivant une fonction
        • 3.4.5 Récupération de la dernière valeur
        • 3.4.6 Récupération de la dernière valeur en suivant une fonction
        • 3.4.7 Récupération de la dernière clé
        • 3.4.8 Récupération de la dernière clé en suivant une fonction
        • 3.4.9 Récupération d'un élément
        • 3.4.10 Ajout d'un élément
        • 3.4.11 Modification d'un élément
        • 3.4.12 Vérification de la présence d'une clé
        • 3.4.13 Groupement de données
        • 3.4.14 Groupement de données en suivant une fonction
        • 3.4.15 Groupement de données avec une liste d'objets
        • 3.4.16 Trier un tableau
        • 3.4.17 Trier un tableau en précisant le sens
        • 3.4.18 Vérification de l'unicité des valeurs d'un tableau
        • 3.4.19 Récupération des valeurs d'une clé spécifique
        • 3.4.20 Suppression d'un niveau de profondeur dans un tableau
        • 3.4.21 Mise à plat d'un tableau
        • 3.4.22 Séparation d'un tableau en tronçon
        • 3.4.23 Extraction d'une partie d'un tableau
        • 3.4.24 Séparation des clés et des valeurs d'un tableau
        • 3.4.25 Transformation en objet
        • 3.4.26 Validation des données
        • 3.4.27 Validation partielle d'un tableau
        • 3.4.28 Filtrage des données avec une liste d'inclusion
      • 3.5 La classe d'aide pour les fichiers
        • 3.5.1 Récupération du nom du fichier à partir d'un chemin
      • 3.6 La classe d'aide pour les nombres
        • 3.6.1 Vérification de la présence d'un chiffre dans un intervalle donné
      • 3.7 La classe d'aide pour les chaînes de caractères
        • 3.7.1 Transformation d'une chaîne de caractères en CamelCase (Casse de chameau)
        • 3.7.2 Transformation d'une chaîne de caractères en SnakeCase
        • 3.7.3 Remplacement d'espaces par des tirets du bas
        • 3.7.4 Concaténation de chaînes de caractères
        • 3.7.5 Compter le nombre de voyelles
        • 3.7.6 Transformation de la première lettre en minuscule
        • 3.7.7 Incrémentation d'un nombre dans une chaîne de caractères
        • 3.7.8 Décrémentation d'un nombre dans une chaîne de caractères
        • 3.7.9 Génération d'une structure de dossier à partir d'un nom de fichier
        • 3.7.10 Contrôle et mise à jour du chemin d'un répertoire
        • 3.7.11 Génération de chaînes aléatoires
        • 3.7.12 Génération de caractères aléatoires
        • 3.7.13 Vérification des caractères présents au début d'une chaîne
        • 3.7.14 Vérification des caractères présents à la fin d'une chaîne
        • 3.7.15 Vérification de la présence d'un mot ou d'une expression dans une chaîne
        • 3.7.16 Vérification de la présence de majuscules sur l'ensemble de la chaîne
        • 3.7.17 Vérification de la présence de minuscules sur l'ensemble de la chaîne
        • 3.7.18 Vérification du fait que deux chaînes de caractères sont des anagrammes
        • 3.7.19 Vérification du fait qu'une chaîne de caractères est un palindrome
        • 3.7.20 Récupération de la première occurrence d'une chaîne comprise entre deux délimiteurs
        • 3.7.21 Rendre plus lisible une chaîne de caractères
        • 3.7.22 Transformation d'une chaîne de caractères en minuscules
        • 3.7.23 Transformation d'une chaîne de caractères en majuscules
        • 3.7.24 Suppression de slashs en trop
  • Gestion de requête HTTP
    • 1. Récupération des données d'une requête
      • 1.1 Méthode GET
      • 1.2 Méthode POST
        • 1.2.1 Envoi de données avec un formulaire
        • 1.2.2 Analyse de la requête émise
        • 1.2.3 Récupération des données émises en POST
        • 1.2.4 Nettoyage des données avec des filtres
        • 1.2.5 Récupération de fichiers
    • 2. Gestion des cookies
      • 2.1 Présentation
      • 2.2 Usage
        • 2.2.1 Ajout du service de cryptage
        • 2.2.2 Création et envoi d’un cookie
        • 2.2.3 Vérification de la présence d’un cookie
        • 2.2.4 Récupération d’un cookie
        • 2.2.5 Suppression d’un cookie
        • 2.2.6 Désactivation du cryptage des cookies
    • 3. Gestion des sessions
      • 3.1 Présentation
      • 3.2 Usage
        • 3.2.1 Gestion des sessions avec un moteur tiers
        • 3.2.2 Enregistrement d’information en session
        • 3.2.3 Vérification de la présence d’une propriété en session
        • 3.2.4 Récupération d’information en session
        • 3.2.5 Suppression d’un élément en session
        • 3.2.6 Suppression de tous les éléments en session
        • 3.2.7 Séparation des sessions par application
    • 4. Gestion des réponses
      • 4.1 Envoi d’une réponse simple
      • 4.2 Envoi d’une réponse avec un contenu JSON
      • 4.3 Envoi d’une réponse d’un type particulier
      • 4.4 Modification de l’en-tête de la requête HTTP
      • 4.5 Gestion du cache sur les requêtes HTTP
        • 4.5.1 Utilisation d’identifiant par donnée envoyée
        • 4.5.2 Expiration temporelle du cache
        • 4.5.3 Expiration du cache en précisant une date
      • 4.6 Redirection de page HTTP
        • 4.6.1 Redirection sur une URL interne
        • 4.6.2 Redirection sur le nom d’une route
        • 4.6.3 Redirection sur une URL externe
    • 5. Nouveautés de la version 4
      • 5.1 Changement dans la gestion des filtres
        • 5.1.1 Changement dans le code de Phalcon
        • 5.1.2 Utilisation des filtres avec la version 4
        • 5.1.3 Changement dans les types de filtres
      • 5.2 Changement dans la gestion de session
        • 5.2.1 Changement dans les classes de session
        • 5.2.2 Création d’un service de session en version 4
    • 6. Migration vers la version 4
      • 6.1 Les filtres
      • 6.2 Les sessions
      • 6.3 Les cookies
  • Mise en place de formulaires
    • 1. Présentation
    • 2. Élaboration d'un formulaire
      • 2.1 Création du répertoire contenant les formulaires
      • 2.2 Contenu basique d'un formulaire
    • 3. Présentation de la classe mère Element
      • 3.1 Attributs communs à tous les éléments
      • 3.2 Initialisation d'un élément
      • 3.3 Mise en place d'une valeur par défaut
      • 3.4 Création d'un libellé
      • 3.5 Modification des attributs
    • 4. Gestion des types de champs d'un formulaire
      • 4.1 Types basiques
        • 4.1.1 Texte
        • 4.1.2 Mot de passe
        • 4.1.3 Liste déroulante simple
        • 4.1.4 Liste déroulante à valeur multiple
        • 4.1.5 Case unique à choisir
        • 4.1.6 Case à cocher multiple
        • 4.1.7 Zone de texte
        • 4.1.8 Champ caché
        • 4.1.9 Fichier
        • 4.1.10 Date
        • 4.1.11 Numérique
        • 4.1.12 Bouton de soumission de formulaire
      • 4.2 Création de types personnalisés
        • 4.2.1 Création d'une nouvelle classe
        • 4.2.2 Ajout de paramètre à l'initialisation du champ
        • 4.2.3 Création du rendu de l'élément HTML
        • 4.2.4 Utilisation du nouveau champ dans un formulaire
    • 5. Gestion des validateurs
      • 5.1 Fonctionnement
      • 5.2 Usage des validateurs existants
        • 5.2.1 Alphanumérique
        • 5.2.2 Alphabétique
        • 5.2.3 Intervalle de valeur
        • 5.2.4 Validateur personnalisé
        • 5.2.5 Confirmation de valeur
        • 5.2.6 Numéro de carte de paiement
        • 5.2.7 Date
        • 5.2.8 Numérique
        • 5.2.9 E-mail
        • 5.2.10 Exclusion de valeur
        • 5.2.11 Fichier
        • 5.2.12 Valeur identique
        • 5.2.13 Inclusion de valeur
        • 5.2.14 Valide numériquement
        • 5.2.15 Non nulle
        • 5.2.16 Expression régulière
        • 5.2.17 Nombre de caractères
        • 5.2.18 Valeur unique
        • 5.2.19 URL
    • 6. Gestion des formulaires
      • 6.1 Ajout d'un élément au formulaire
      • 6.2 Passage et intégration des champs dans la vue
        • 6.2.1 Instanciation du formulaire
        • 6.2.2 Passage des données à la vue
        • 6.2.3 Affichage des champs dans une vue
      • 6.3 Passage des valeurs dans le formulaire
        • 6.3.1 Utilisation d'une entité
        • 6.3.2 Utilisation d'une classe d'entité
        • 6.3.3 Passage de données diverses
      • 6.4 Validation du formulaire
      • 6.5 Renvoi des erreurs à la vue
      • 6.6 Enregistrement des données
        • 6.6.1 Nouvelle entrée
        • 6.6.2 Mise à jour d'une entrée
      • 6.7 Affichage personnalisé des variables
    • 7. Astuces avec PHPStorm
      • 7.1 Utilisation de file and code templates
        • 7.1.1 Création de modèles de fichiers dans PHPStorm
        • 7.1.2 Utilisation du modèle de fichiers avec PHPStorm
      • 7.2 Utilisation des live templates
        • 7.2.1 Les live templates disponibles dans PHPStorm
        • 7.2.2 Association d'un modèle de code à un type de fichier/contexte
        • 7.2.3 Utilisation d'un modèle de code
        • 7.2.4 Création d'un modèle de code
      • 7.3 Import des modèles
    • 8. Nouveautés de la version 4
      • 8.1 Changement dans la création d’éléments personnalisés
        • 8.1.1 Changement de classe
        • 8.1.2 Ajout de PSR
    • 9. Migration vers la version 4
      • 9.1 Changement de nom de la classe Element
      • 9.2 Typage de la fonction rendue
  • Création de vues HTML
    • 1. Présentation générale des vues
    • 2. Hiérarchisation des vues
    • 3. Volt ou PHTML ?
    • 4. Utilisation de PHTML
      • 4.1 Affichage des variables
      • 4.2 Utilisation générale de PHTML
    • 5. Utilisation de Volt
      • 5.1 Gestion des commentaires
      • 5.2 Gestion des variables
        • 5.2.1 Affichage de variables simples
        • 5.2.2 Création et initialisation des variables
        • 5.2.3 Expressions mathématiques
        • 5.2.4 Expression globale
      • 5.3 Utilisations de conditions
        • 5.3.1 Structure de condition Si (If)
        • 5.3.2 Conditions préconstruites par Phalcon
        • 5.3.3 Structure de condition ternaire
        • 5.3.4 Structure selon le cas (Switch case)
        • 5.3.5 Opérateurs de comparaison et logiques
      • 5.4 Gestion des tableaux et objets
        • 5.4.1 Parcours de tableaux
        • 5.4.2 Mot-clé loop
        • 5.4.3 Conditions dans les tableaux
      • 5.5 Fonctions de base de Volt
        • 5.5.1 Fonctions pour des nombres
        • 5.5.2 Fonctions pour des chaînes de caractères
        • 5.5.3 Fonctions pour des tableaux
        • 5.5.4 Fonctions pour tout type de variable
    • 6. Gestion des ressources
      • 6.1 Intégration de ressources lien par lien
        • 6.1.1 Au niveau d’une action d’une page
        • 6.1.2 Au niveau d’un contrôleur
        • 6.1.3 Au niveau du contrôleur principal
        • 6.1.4 Intégration en PHTML
        • 6.1.5 Intégration en Volt
      • 6.2 Gestion des collections
        • 6.2.1 Création dans le contrôleur principal
        • 6.2.2 Intégration dans les vues
        • 6.2.3 Minification des ressources
    • 7. Nouveautés de la version 4
      • 7.1 Changement dans la gestion de fichier JavaScript et CSS
    • 8. Migration vers la version 4
      • 8.1 Suppression des filtres
  • Gestion avancée des vues
    • 1. Création de fonctions utilisables dans les vues
      • 1.1 Ajout de fonctions provenant de PHP
      • 1.2 Ajout d’une fonction personnalisée
    • 2. Création de filtres utilisables dans les vues
      • 2.1 Ajout de filtre provenant d’une fonction PHP
      • 2.2 Ajout d’un filtre personnalisé
    • 3. Utilisation des tags HTML
      • 3.1 Génération du Doctype
        • 3.1.1 Écriture dans la vue
      • 3.2 Génération du titre (title)
        • 3.2.1 Écriture dans la vue
      • 3.3 Déclaration de style CSS
        • 3.3.1 Écriture dans la vue
      • 3.4 Déclaration de script JavaScript
        • 3.4.1 Écriture dans la vue
      • 3.5 Génération d’image
        • 3.5.1 Écriture dans la vue
      • 3.6 Génération de lien hypertexte
        • 3.6.1 Écriture dans la vue
      • 3.7 Génération de formulaire
        • 3.7.1 Écriture dans la vue
      • 3.8 Génération de champs de texte
        • 3.8.1 Écriture dans la vue
      • 3.9 Génération de mots de passe
        • 3.9.1 Écriture dans la vue
      • 3.10 Génération de champs cachés
        • 3.10.1 Écriture dans la vue
      • 3.11 Génération de zones de texte
        • 3.11.1 Écriture dans la vue
      • 3.12 Génération de listes déroulantes statiques
        • 3.12.1 Écriture dans la vue
      • 3.13 Génération de listes déroulantes dynamiques
        • 3.13.1 Écriture dans la vue
      • 3.14 Génération d’un bouton soumission de formulaire
        • 3.14.1 Écriture dans la vue
    • 4. Création de macros
      • 4.1 Génération de code HTML avec des paramètres
      • 4.2 Génération de code HTML avec des paramètres nommés
      • 4.3 Création de macro avec des paramètres par défaut
      • 4.4 Retour de données avec une macro
    • 5. Gestion de l’internationalisation
      • 5.1 Installation
        • 5.1.1 Pour Windows
        • 5.1.2 Pour Linux
        • 5.1.3 Extension PHP
        • 5.1.4 Pour Docker
      • 5.2 Gestion du logiciel de traduction
        • 5.2.1 Téléchargement et installation de Poedit
        • 5.2.2 Ajout de l'extracteur Volt
        • 5.2.3 Création du dictionnaire de traduction pour le projet
        • 5.2.4 Paramétrage du projet
        • 5.2.5 Indication des fichiers sources à analyser
        • 5.2.6 Ajout des mots-clés de reconnaissance de traduction
        • 5.2.7 Mise à jour et traduction de texte
      • 5.3 Mise en place du service sur un projet
      • 5.4 Intégration du service de traduction dans toutes les vues
      • 5.5 Utilisation de la fonction de traduction dans les vues
        • 5.5.1 Traduction simple
        • 5.5.2 Traduction avec variable
    • 6. Création de plans (layouts) avancés
      • 6.1 Gestion des modèles
      • 6.2 Inclusion de vues multiples
      • 6.3 Gestion des layouts par extends
    • 7. Affichage de différents niveaux de rendu
      • 7.1 Désactivation de certains niveaux de vues
      • 7.2 Désactivation de la génération de vue
    • 8. Nouveautés de la version 4
      • 8.1 Changement dans les tags
        • 8.1.1 L’affichage du title HTML
        • 8.1.2 La liste déroulante dynamique
      • 8.2 Changement dans le module de traduction
      • 8.3 Ajout de classe HTML\Helper
        • 8.3.1 Création d'un lien hypertexte
        • 8.3.2 Création d'un lien hypertexte brut
        • 8.3.3 Création d'un bouton
        • 8.3.4 Création d'une image
        • 8.3.5 Création d'une zone de texte
        • 8.3.6 Création de balise de fin
        • 8.3.7 Création d'un formulaire
        • 8.3.8 Création du corps (body)
        • 8.3.9 Création d'un libellé (label)
        • 8.3.10 Création d'un champ générique
        • 8.3.11 Création d'un champ générique brut
        • 8.3.12 L'usine à éléments HTML
        • 8.3.13 Création d'un fil d'Ariane
    • 9. Migration vers la version 4
      • 9.1 Modification des tags
        • 9.1.1 L’affichage du title HTML
        • 9.1.2 L’affichage de liste déroulante dynamique
      • 9.2 Modification du module de traduction
  • Bases de données - Les modèles Phalcon
    • 1. Préambule : connexion aux différents types de bases de données gérés
      • 1.1 Modification de la configuration
      • 1.2 Modification du service de connexion à la base de données
      • 1.3 Ajout d'options complémentaires au service de base de données
    • 2. Gestion des modèles
      • 2.1 Création de modèles
        • 2.1.1 Avec Phalcon DevTools
        • 2.1.2 Manuellement
      • 2.2 Récupération simple des données
        • 2.2.1 Liste des éléments d'une table
        • 2.2.2 Récupération de la première ligne
        • 2.2.3 Récupération de la dernière ligne
      • 2.3 Sélection de colonnes
      • 2.4 Conditions
        • 2.4.1 Simple
        • 2.4.2 Personnalisée
        • 2.4.3 Avec typage des valeurs
      • 2.5 Limitation du nombre de lignes
      • 2.6 Saut de ligne
      • 2.7 Tri des données
      • 2.8 Groupement de données
      • 2.9 Récupération du nombre de lignes
      • 2.10 Gestion du curseur
        • 2.10.1 Accès à la position courante du curseur
        • 2.10.2 Déplacement du curseur
      • 2.11 Différents formats de résultats
        • 2.11.1 Changement du format de résultat après la requête
        • 2.11.2 Changement du format de résultat par requête
      • 2.12 Opérations mathématiques sur les tables
      • 2.13 Insertion de lignes
        • 2.13.1 Méthode classique
        • 2.13.2 Sauvegarde par tableau
        • 2.13.3 Sauvegarde par formulaire
        • 2.13.4 Forçage d'insertion d'une ligne
        • 2.13.5 Gestion d'erreur à la sauvegarde
      • 2.14 Mise à jour d'une ligne
        • 2.14.1 Méthode classique
        • 2.14.2 Forçage de la mise à jour d'une valeur
      • 2.15 Suppression d'une ligne
      • 2.16 Validation des données
        • 2.16.1 Ajout de validateurs
        • 2.16.2 Modification des messages d'erreurs
      • 2.17 Pagination des résultats
      • 2.18 Mise en place de relations entre les tables
        • 2.18.1 Relation 1 à 1 (1-1)
        • 2.18.2 Relation 1 à plusieurs (1-N)
        • 2.18.3 Relation plusieurs à 1 (N-1)
        • 2.18.4 Relation plusieurs à plusieurs (N-N)
        • 2.18.5 Accès à une table grâce aux relations
        • 2.18.6 Utilisation d'alias pour des requêtes récurrentes
        • 2.18.7 Message d'erreur sur les clés étrangères
      • 2.19 Conservation des changements d'un objet du modèle (Snapshots)
        • 2.19.1 Initialisation du système de conservation des changements
        • 2.19.2 Les fonctions associées aux Snapshots
      • 2.20 Mise en place d'un préfixe sur toutes les tables
      • 2.21 Connexion à différentes bases de données
        • 2.21.1 Ajout de nouvelles bases de données
        • 2.21.2 Connexion d'une table à une base de données
        • 2.21.3 Gestion lecture/écriture par table
      • 2.22 Mise en place d'un comportement spécifique
        • 2.22.1 Gestion du temps
        • 2.22.2 Gestion des suppressions
      • 2.23 Mise en cache des résultats d'une requête
        • 2.23.1 Mise en place du cache
        • 2.23.2 Mise en cache simple d'une requête
        • 2.23.3 Mise en cache d'une requête avec un temps d'expiration
        • 2.23.4 Mise en cache d'une requête sur un service différent
      • 2.24 Gestion des événements du modèle
        • 2.24.1 Liste des événements existants associés au modèle
        • 2.24.2 Intégration et utilisation des événements dans une classe
    • 3. Nouveautés de la version 4
      • 3.1 Changement dans les classes d’interactions avec la base de données
      • 3.2 Changement dans l’assignation des valeurs
      • 3.3 Ajout du PSR
      • 3.4 Changement dans le système de pagination
    • 4. Migration vers la version 4
      • 4.1 Modification des modes de récupération de données
      • 4.2 Modification dans l’assignation des valeurs
        • 4.2.1 Ajout/modification de ligne
        • 4.2.2 Ajout/modification de ligne en spécifiant les colonnes
        • 4.2.3 Création d’une nouvelle ligne
      • 4.3 Prise en compte du PSR
      • 4.4 Modification dans le système de pagination
      • 4.5 Modification dans les classes de gestion d'événements
  • Bases de données - Utilisation de PHQL
    • 1. PHQL - Phalcon Query Language
    • 2. Récupération de données
      • 2.1 Requête simple
      • 2.2 Utilisation de mots-clés réservés
    • 3. Requêtes avec paramètres
      • 3.1 Empêchement de l'intégration d'un paramètre sans contrôle
      • 3.2 Construction d'une requête avec des paramètres simples
      • 3.3 Construction d'une requête avec des paramètres typés
    • 4. Mise en cache des requêtes PHQL
    • 5. Constructeur de requête
      • 5.1 Récupération de plusieurs lignes d'une table
      • 5.2 Récupération d'une ligne
      • 5.3 Limitation du nombre de résultats
      • 5.4 Limitations et sauts de lignes
      • 5.5 Jointure naturelle entre deux tables
      • 5.6 Sélection de colonnes
      • 5.7 Mise en place d'alias sur les tables
      • 5.8 Jointure manuelle
      • 5.9 Conditions
        • 5.9.1 Condition simple
        • 5.9.2 Combinaison de conditions avec l'opérateur ET
        • 5.9.3 Combinaison de conditions avec l'opérateur OU
        • 5.9.4 Conditionnement d'une colonne dans un intervalle de valeurs
        • 5.9.5 Conditionnement d'une colonne avec une liste de valeurs inclusive
        • 5.9.6 Conditionnement d'une colonne avec une liste de valeurs exclusive
      • 5.10 Groupement de données
        • 5.10.1 Sans condition
        • 5.10.2 Avec une condition
      • 5.11 Passage de paramètres dans la fonction d'exécution de requête
    • 6. Nouveautés de la version 4
      • 6.1 Changement sur la sélection des colonnes du QueryBuilder
    • 7. Migration vers la version 4
      • 7.1 Modification sur la sélection des colonnes de QueryBuilder
      • 7.2 Modification dans le système de cache
  • Bases de données - Abstraction Layer
    • 1. Manipulation directe de la base de données
      • 1.1 Récupération de données - de ligne à ligne
        • 1.1.1 Lancement d'une requête
        • 1.1.2 Récupération du nombre de lignes retournées
        • 1.1.3 Lecture ligne à ligne
      • 1.2 Récupération de données - toutes les lignes
        • 1.2.1 Fonctionnement basique
        • 1.2.2 Les différents modes de récupération
        • 1.2.3 Spécification du mode de récupération des données
        • 1.2.4 Paramétrage du mode de récupération par défaut
      • 1.3 Récupération de la première ligne
      • 1.4 Passage de paramètres
        • 1.4.1 Construction d'une simple requête
        • 1.4.2 Construction d'une requête préparée
      • 1.5 Ajout/Modification/Suppression des données
        • 1.5.1 Par requête SQL
        • 1.5.2 Avec une fonction simple
        • 1.5.3 Avec un dictionnaire de données
      • 1.6 Gestion des événements
        • 1.6.1 Liste des événements disponibles
        • 1.6.2 Mise en place d'une classe d'événements
      • 1.7 Gestion des transactions
    • 2. Manipulation du schéma d'une base de données
      • 2.1 Description du schéma
        • 2.1.1 Liste des tables d'un schéma
        • 2.1.2 Vérification de l'existence d'une table
        • 2.1.3 Description des colonnes d'une table
        • 2.1.4 Récupération des index d'une table
        • 2.1.5 Récupération des clés étrangères d'une table
        • 2.1.6 Récupération des vues d'un schéma
        • 2.1.7 Vérification de l'existence d'une vue
      • 2.2 Modification de la structure de la base de données
        • 2.2.1 Création de colonnes
        • 2.2.2 Création d'index
        • 2.2.3 Création de clés étrangères
        • 2.2.4 Création d'une table
        • 2.2.5 Ajout d'une colonne à une table
        • 2.2.6 Suppression d'une colonne
        • 2.2.7 Suppression d'une table
    • 3. Migration vers la version 4
      • 3.1 Modification des constantes de PDO
      • 3.2 Modification de la classe d'événement
      • 3.3 Modification du système de log
  • Gestion des logs et des erreurs
    • 1. Gestion des logs
      • 1.1 Création du service de log
      • 1.2 Les différents stockages de logs disponibles
        • 1.2.1 Log classique par fichier
        • 1.2.2 Log par flux pour Docker
        • 1.2.3 Log système
      • 1.3 Adaptation du formatage des logs
        • 1.3.1 Formatage par ligne
        • 1.3.2 Formatage JSON
        • 1.3.3 Formatage Syslog
      • 1.4 Gestion du niveau de logs
      • 1.5 Création d'un log
        • 1.5.1 Fonctionnement
        • 1.5.2 Liste des fonctions utilisables
    • 2. Gestion des erreurs
      • 2.1 Surcharge du service Dispatcher
      • 2.2 Gestion de la classe ExceptionPlugin
        • 2.2.1 Création de la classe ExceptionPlugin
        • 2.2.2 Surcharge de l'évènement
      • 2.3 Création d'une exception
        • 2.3.1 Erreur 404
        • 2.3.2 Erreur 500
    • 3. Nouveautés de la version 4
      • 3.1 Changement dans la gestion des logs
        • 3.1.1 Les adaptateurs
        • 3.1.2 La nouvelle de classe Logger
        • 3.1.3 Le niveau de log
        • 3.1.4 Le formatage
      • 3.2 Changement dans la gestion des exceptions
      • 3.3 Changement dans les constantes d'erreur du dispatcher
    • 4. Migration vers la version 4
      • 4.1 Modification dans la création d'un service de logs
        • 4.1.1 Modification de l'adaptateur
        • 4.1.2 Création d'un Logger
        • 4.1.3 Modification du niveau de log
        • 4.1.4 Modification du formatage
  • Gestion des événements
    • 1. Présentation
    • 2. Liste des événements de Phalcon
    • 3. Mise en place
      • 3.1 Assignation d'une classe de gestion d'événements
        • 3.1.1 Création de la classe
        • 3.1.2 Création d'une fonction d'événement
        • 3.1.3 Intégration du gestionnaire d'événements dans le service
      • 3.2 Attribution d'une fonction anonyme par événement
      • 3.3 Attribution d'une fonction anonyme pour tous les événements
    • 4. Cas concret - Sécurisation de l'accès aux pages
    • 5. Nouveautés de la version 4
      • 5.1 Changement dans les classes de gestion d'événements
    • 6. Migration vers la version 4
      • 6.1 Modification dans les classes de gestion d'événements
  • Gestion des droits d’accès (ACL)
    • 1. Présentation
      • 1.1 Les cas traditionnels
      • 1.2 Le service ACL (Access Control Lists) de Phalcon
        • 1.2.1 Fonctionnement de base
        • 1.2.2 Technologie
    • 2. Mise en place d'une stratégie de gestion de droits
      • 2.1 Création de l'objet de gestion des droits
        • 2.1.1 Création de la fonction dans SecurityPlugin
        • 2.1.2 Instanciation de la classe ACL
        • 2.1.3 Définition de la stratégie par défaut
      • 2.2 Gestion des rôles
        • 2.2.1 Création d'un rôle
        • 2.2.2 Ajout du rôle à la stratégie de droits
        • 2.2.3 Structure de rôle
      • 2.3 Gestion des ressources
        • 2.3.1 Création d'une ressource
        • 2.3.2 Ajout de la ressource à la stratégie de droits
        • 2.3.3 Structure de ressource
      • 2.4 Autorisation/blocage d'élément(s)
      • 2.5 Structure d'autorisation
      • 2.6 Optimisation de stockage
        • 2.6.1 Session
        • 2.6.2 Sérialisation
    • 3. Accès aux informations
      • 3.1 Existence d'un rôle
      • 3.2 Existence d'une ressource
      • 3.3 Vérification de l'accès
        • 3.3.1 Usage
        • 3.3.2 Intégration
        • 3.3.3 Fonction de vérification avancée
      • 3.4 Héritage de rôle
        • 3.4.1 En ajoutant un nouveau rôle
        • 3.4.2 En liant deux rôles déjà créés
      • 3.5 Evénements
        • 3.5.1 Avant la vérification de l'accès
        • 3.5.2 Après vérification de l'accès
        • 3.5.3 Logs après une opération de contrôle d'accès
    • 4. Nouveautés de la version 4
      • 4.1 Changement dans les constantes
    • 5. Migration vers la version 4
      • 5.1 Modification des constantes
      • 5.2 Modification de nom de la classe Resource
        • 5.2.1 Définition des objets
        • 5.2.2 Modification des fonctions
  • Gestion de la sécurité
    • 1. Cryptage/décryptage de données
      • 1.1 Installation de l'extension
      • 1.2 Usage de la cryptographie
        • 1.2.1 Avec les valeurs par défaut
        • 1.2.2 Cryptage/décryptage en base64
        • 1.2.3 En choisissant un cipher
        • 1.2.4 Spécification de la clé et du cipher dans les services
        • 1.2.5 Signature d'une donnée cryptée
    • 2. Hachage de données
      • 2.1 Hachage simple
      • 2.2 Vérification d'une donnée hachée
      • 2.3 Cas pratique
      • 2.4 Accroissement de la sécurité du hachage
    • 3. Protection CRSF (Cross-Site Request Forgery)
      • 3.1 Présentation de l'attaque
      • 3.2 Principe du CRSF
      • 3.3 Mise en place
    • 4. Les valeurs aléatoires
      • 4.1 Génération d'un nombre aléatoire
      • 4.2 Génération d'un UUID
      • 4.3 Génération d'une valeur binaire
      • 4.4 Génération d'une valeur hexadécimale
      • 4.5 Génération d'une valeur en base 58
      • 4.6 Génération d'une valeur en base 62
      • 4.7 Génération d'une valeur en base 64
      • 4.8 Génération d'une valeur en base 64 pour une URL
  • Gestion du cache
    • 1. Présentation
    • 2. Configuration
      • 2.1 Les adaptateurs Front-End proposés par Phalcon
      • 2.2 Les adaptateurs Back-End proposés par Phalcon
    • 3. Usage
      • 3.1 Utilisation basique du cache
      • 3.2 Utilisation du cache avec un temps d'expiration défini
      • 3.3 Liste des clés de cache disponibles
      • 3.4 Recherche de clés de cache
      • 3.5 Vérification de l'existence d'une clé en cache
      • 3.6 Suppression du cache d'une clé en particulier
    • 4. Nouveautés de la version 4
      • 4.1 Mise en conformité avec la PSR-16
      • 4.2 Changement dans les classes
        • 4.2.1 Classes ajoutées
        • 4.2.2 Classes renommées
        • 4.2.3 Classes supprimées
      • 4.3 Changement dans la création d'un service de cache
      • 4.4 Changement dans les fonctions
        • 4.4.1 Fonction modifiée
        • 4.4.2 Fonction supprimée
    • 5. Migration vers la version 4
      • 5.1 Modification de classes
      • 5.2 Modification de la création du service
      • 5.3 Modification dans les fonctions
        • 5.3.1 La fonction queryKeys
        • 5.3.2 La fonction save
        • 5.3.3 La fonction get
        • 5.3.4 La fonction exists
  • Manipulation d’image
    • 1. Présentation
    • 2. Installation
    • 3. Utilisation
      • 3.1 Chargement d'une image
      • 3.2 Accès aux données de l'image
        • 3.2.1 Le fichier
        • 3.2.2 Le MIME (type)
        • 3.2.3 Le chemin de l'image
        • 3.2.4 Le type détecté par la librairie
        • 3.2.5 La largeur
        • 3.2.6 La hauteur
      • 3.3 Sauvegarde d'une image
      • 3.4 Conversion d'image
      • 3.5 Réduction de qualité
      • 3.6 Redimensionnement
        • 3.6.1 En largeur
        • 3.6.2 En hauteur
        • 3.6.3 En hauteur/largeur avec la proportion la plus petite
        • 3.6.4 En hauteur/largeur avec la proportion la plus grande
        • 3.6.5 En hauteur/largeur sans proportion
      • 3.7 Rognage d'image
      • 3.8 Rotation d'image
      • 3.9 Retournement d'image
        • 3.9.1 Vertical
        • 3.9.2 Horizontal
      • 3.10 Ajout d'un filigrane
      • 3.11 Floutage d'une image
      • 3.12 Ajout d'un reflet sur l'image
      • 3.13 Pixelisation d'une image
      • 3.14 Ajout de texte sur une image
      • 3.15 Création d'une image
    • 4. Nouveautés de la version 4
      • 4.1 Ajout d'une classe de constantes
    • 5. Migration vers la version 4
      • 5.1 Modification de la classe des constantes
  • Amélioration des performances
    • 1. Ajout du profileur
      • 1.1 SQL
      • 1.2 PHP
        • 1.2.1 Mise en place d'une solution de profilage
        • 1.2.2 Analyse du fichier avec PHPStorm
    • 2. Lancement des tâches en arrière-plan
      • 2.1 Présentation
        • 2.1.1 Les tâches longues
        • 2.1.2 Les tâches planifiées
      • 2.2 Création d'un projet CLI (Command LIne)
        • 2.2.1 Présentation de la structure d'un projet CLI
        • 2.2.2 Présentation d'une classe de tâches
        • 2.2.3 Lancement de la tâche par défaut
        • 2.2.4 Lancement d'une tâche spécifique
        • 2.2.5 Passage de paramètres
      • 2.3 Fusion d'un projet simple avec un projet CLI
    • 3. Nouveautés de la version 4
      • 3.1 Changement dans le mode Cli de Phalcon
        • 3.1.1 Passage de paramètre
    • 4. Migration vers la version 4
      • 4.1 Modification dans le mode Cli de Phalcon
        • 4.1.1 Modification du passage de paramètre
  • Architecture de projet
    • 1. Présentation
    • 2. Gestion d'un projet Micro
      • 2.1 Présentation
      • 2.2 Création d'un projet Micro
      • 2.3 Présentation de la structure d'un projet Micro
      • 2.4 Gestion des routes
        • 2.4.1 Définition d'une route
        • 2.4.2 Passage de la variable $app
        • 2.4.3 Passage de paramètres sans contrôle
        • 2.4.4 Passage de paramètres avec contrôle
        • 2.4.5 Les différentes méthodes HTTP
      • 2.5 Gestion des contrôleurs
        • 2.5.1 Création d'un contrôleur
        • 2.5.2 Intégration de la collection dans l'application
        • 2.5.3 Chargement optimisé d'une collection
        • 2.5.4 Redirection
      • 2.6 Gestion des vues
        • 2.6.1 Spécification de la vue à utiliser
        • 2.6.2 Passage de paramètres
        • 2.6.3 Génération d'une URL
      • 2.7 Gestion des réponses
        • 2.7.1 Réponse JSON
        • 2.7.2 Réponse typée
      • 2.8 Gestion des événements avec une fonction anonyme
      • 2.9 Gestion des événements avec un Middleware
        • 2.9.1 Présentation
        • 2.9.2 Mise en place de la structure
        • 2.9.3 Création d'un Middleware simple
        • 2.9.4 Création d'un Middleware avec surcharge d'événement existant
        • 2.9.5 Intégration d'un Middleware dans l'application
    • 3. Gestion d'une API Rest avec une architecture Micro
      • 3.1 Gestion des événements
        • 3.1.1 Création de SecurityMiddleware
        • 3.1.2 Contrôler l'accès à l'API
        • 3.1.3 CORS - Cross-Origin resource sharing
        • 3.1.4 Vérification des données reçues par l'API
        • 3.1.5 Page introuvable
        • 3.1.6 Architecture complète de SecurityMiddleware
        • 3.1.7 Intégration de SecurityMiddleware dans l'application
      • 3.2 Gestion des exceptions
        • 3.2.1 Présentation
        • 3.2.2 Mise en place
        • 3.2.3 Les exceptions générales de Phalcon
      • 3.3 Gestion automatique des réponses
        • 3.3.1 Création de ReponseMiddleware
        • 3.3.2 Intégration de ReponseMiddleware
      • 3.4 Intégration des routes d'une API
        • 3.4.1 Récupération de données
        • 3.4.2 Ajout d'un nouvel élément en base de données
        • 3.4.3 Modification d'un élément en base de données
        • 3.4.4 Suppression d'un élément en base de données
      • 3.5 Test de l'API
        • 3.5.1 Création de requête
        • 3.5.2 Test avec PHPStorm
      • 3.6 Documentation/annuaire des routes de l'API
        • 3.6.1 Installation d'ApiDoc
        • 3.6.2 Commentaire dans le code PHP
        • 3.6.3 Fichier de configuration pour ApiDoc
        • 3.6.4 Génération de la documentation
        • 3.6.5 Affichage de la documentation depuis l'index de l'API
        • 3.6.6 Démonstration de la documentation
    • 4. Gestion d'un projet API Rest avec une architecture complète
      • 4.1 Gestion des événements
        • 4.1.1 Création de SecurityPlugin
        • 4.1.2 Création de ReponsePlugin
        • 4.1.3 Intégration des événements dans le dispatcher
      • 4.2 Gestion des routes
      • 4.3 Récupération des données issues de la requête
        • 4.3.1 Paramètre d'URL
        • 4.3.2 Données de la requête
      • 4.4 Documentation
    • 5. Nouveautés de la version 4
      • 5.1 Changement dans les projets Micro
        • 5.1.1 Changement dans la fonction handle
    • 6. Migration vers la version 4
      • 6.1 Modification dans les projets Micro
        • 6.1.1 Ajout d'un paramètre dans la fonction handle
  • Projet de cours en ligne
    • 1. Présentation du projet
      • 1.1 Description du projet
      • 1.2 Architectures possibles
        • 1.2.1 Premier cas : API et interface utilisateurs distincts
        • 1.2.2 Deuxième cas : application en un seul bloc
    • 2. Caractéristique du projet
    • 3. Organisation du projet
      • 3.1 Gestion des répertoires
      • 3.2 Structure de la base de données
        • 3.2.1 Description des colonnes des tables
        • 3.2.2 Script SQL de création de table et d'initialisation des données
      • 3.3 Structure Docker
        • 3.3.1 Dockerfile
        • 3.3.2 Docker-compose
    • 4. Préparation de l'API - Une route de santé
      • 4.1 Suppression des vues
      • 4.2 Présentation
      • 4.3 Résultat attendu
      • 4.4 Solution possible
        • 4.4.1 Création de la route
        • 4.4.2 Création de l'action santé
        • 4.4.3 Création automatique d'une réponse JSON
      • 4.5 Test de la route
    • 5. Le Front-End interroge l'API
      • 5.1 Présentation de la librairie de requête
        • 5.1.1 Téléchargement de Guzzle dans le projet
        • 5.1.2 Intégration du vendor dans le projet
      • 5.2 Lancement d'une requête à l'API
        • 5.2.1 Création d'un Client HTTP
        • 5.2.2 Lancement d'une requête API
        • 5.2.3 Récupération des données de la réponse HTTP
    • 6. Gestion des appels API
      • 6.1 Création de la classe ClientApi
      • 6.2 Création du constructeur de ClientApi
      • 6.3 Création d'une méthode d'envoi de requête HTTP
        • 6.3.1 Méthodologie
        • 6.3.2 Mise en place
      • 6.4 Utilisation du ClientApi
    • 7. Un service API
      • 7.1 Création d'un service API
      • 7.2 Utilisation du nouveau service api
      • 7.3 Intégration de la configuration Phalcon
        • 7.3.1 Modification du fichier de configuration
        • 7.3.2 Modification du fichier de service
    • 8. Connexion d'un utilisateur au service web
      • 8.1 Interaction simple
        • 8.1.1 Présentation du processus
        • 8.1.2 Connexion à la base de données côté API
        • 8.1.3 Création de l'espace de noms pour les modèles de l'API
        • 8.1.4 Création des modèles Utilisateurs et Cours dans l'API
        • 8.1.5 Création d'une route API de connexion
        • 8.1.6 Création d'une fonction API pour une connexion simple
        • 8.1.7 Envoi d'une requête de connexion du Web à l'API
      • 8.2 Connexion avec un formulaire
        • 8.2.1 Présentation du processus
        • 8.2.2 Création et intégration du répertoire forms
        • 8.2.3 Création du formulaire web
        • 8.2.4 Intégration simple du formulaire dans le contrôleur
        • 8.2.5 Intégration des champs du formulaire dans une vue
        • 8.2.6 Validation du formulaire
        • 8.2.7 Utilisation des identifiants de connexion
        • 8.2.8 Stockage en session et redirection de l'enseignant connecté
      • 8.3 Protection des échanges entre l'utilisateur connecté et l'API
        • 8.3.1 Présentation du processus
        • 8.3.2 Création de la classe SecurityPlugin dans l'API
        • 8.3.3 Importation d'une librairie de gestion de jetons dans l'API
        • 8.3.4 Création d'un générateur de jetons utilisateurs dans l'API
        • 8.3.5 Génération d'un jeton API à la connexion d'un utilisateur
        • 8.3.6 Stockage du jeton en session du Web
        • 8.3.7 Envoi automatique du jeton par le Web
        • 8.3.8 Récupération des données présentes dans le jeton de l'API
        • 8.3.9 Création d'une route API pour récupérer les cours d'un enseignant
        • 8.3.10 Récupération des cours d'un enseignant connecté avec le Web
    • 9. Simplification de la récupération de l'utilisateur connecté
      • 9.1 Présentation du processus
      • 9.2 Création du service API
      • 9.3 Utilisation du nouveau service
    • 10. Une fondation solide
    • Index

Auteur

Jérémy PASTOURETEn savoir plus

Lead-developer, Jérémy PASTOURET met à profit toute son expertise sur le framework Phalcon dans le développement de deux grands projets mis en production avec Kubernetes, DreamAudit et Circulariz, auxquels il participe depuis plus de 5 ans en mode agile. En parallèle, il a à coeur de partager régulièrement ses découvertes et ses astuces de développeur sur son site les-enovateurs.com et fait partie des contributeurs de Phalcon ayant contribué à la version 4. L'écriture de ce livre est pour lui l'occasion de prolonger cette expérience en proposant au lecteur un livre réellement efficace sur le développement d'applications web avec Phalcon.

Caractéristiques

  • Niveau Confirmé à Expert
  • Nombre de pages 850 pages
  • Parution janvier 2020
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-02274-6
    • EAN : 9782409022746
    • Ref. ENI : EPPHALC
  • Niveau Expert
  • Parution janvier 2020
    • HTML
    • ISBN : 978-2-409-02275-3
    • EAN : 9782409022753
    • Ref. ENI : LNEPPHALC

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 (53,8 Mo)