Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières
Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage............................................. 9 2. Bref historique de PHP.......................................... 10 3. Où se procurer PHP?........................................... 10 4. Conventions d'écriture.......................................... 12 Chapitre 2 Vue d'ensemble de PHP 1. Qu'est-ce que PHP?............................................. 13 2. Structure de base d'une page PHP................................. 15 2.1 Les balises PHP............................................ 15 2.2 La fonction echo........................................... 15 2.3 Le séparateur d'instructions.................................. 17 2.4 Le commentaire........................................... 17 2.5 Mixer du PHP et de l'html................................. 18 2.6 Règles de nommage........................................ 21 3. Configuration de PHP........................................... 21 3.1 Le fichier de configuration php.ini............................ 21 3.2 Informations sur la configuration............................. 22 4. Utiliser PHP en ligne de commande................................ 25 Chapitre 3 Variables, constantes, types et tableaux 1. Constantes.................................................... 27 1.1 Définition................................................ 27 1.2 Portée.................................................... 28 1.3 Fonctions utiles............................................ 29 2. Variables...................................................... 31 2.1 Initialisation et affectation.................................. 31 2.2 Portée et durée de vie....................................... 32 2.3 Fonctions utiles............................................ 33
2 PHP 5.4 Développez un site web dynamique et interactif 2.4 Variable dynamique (ou variable variable)...................... 39 3. Types de données............................................... 39 3.1 Types disponibles.......................................... 39 3.2 Conversions............................................... 46 3.3 Fonctions utiles............................................ 50 4. Tableaux...................................................... 55 4.1 Définition................................................ 55 4.2 Création.................................................. 56 4.3 Manipulation.............................................. 61 4.4 Portée.................................................... 65 4.5 Fonctions utiles............................................ 65 5. Quelques fonctions utiles sur les chaînes de caractères, les dates et les nombres.............................. 75 5.1 Préambule................................................ 75 5.2 Manipulation des chaînes de caractères........................ 75 5.3 Utiliser les expressions rationnelles............................ 90 5.3.1 Introduction......................................... 90 5.3.2 Structure d une expression rationnelle.................... 91 5.3.3 Fonctions.......................................... 100 5.4 Manipulation des dates.................................... 105 5.5 Générer un nombre aléatoire................................ 118 Chapitre 4 Opérateurs 1. L'opérateur d'affectation par valeur............................... 119 2. L'opérateur d'affectation par référence............................. 120 3. Les opérateurs arithmétiques.................................... 122 4. L'opérateur de chaîne........................................... 123 5. Les opérateurs de comparaison................................... 123 6. Les opérateurs logiques......................................... 124 7. L'opérateur ternaire............................................ 125 8. Les opérateurs combinés........................................ 126 9. Précédence des opérateurs....................................... 126
Table des matières 3 Chapitre 5 Structures de contrôle 1. Les contrôles conditionnels...................................... 127 1.1 If....................................................... 127 1.2 Switch.................................................. 130 2. Les contrôles itératifs.......................................... 132 2.1 While................................................... 132 2.2 Do... while.............................................. 134 2.3 For..................................................... 135 2.4 Continue et break......................................... 138 3. Inclure un fichier.............................................. 139 3.1 Fonctionnement.......................................... 139 3.2 Utilisation............................................... 141 4. Interrompre le script........................................... 143 Chapitre 6 Fonctions et classes 1. Fonctions.................................................... 145 1.1 Introduction............................................. 145 1.2 Déclaration et appel....................................... 145 1.3 Paramètres............................................... 149 1.4 Valeur de retour.......................................... 153 1.5 Considérations sur les variables utilisées dans les fonctions....... 154 1.6 Les constantes et les fonctions............................... 157 1.7 Récursivité............................................... 158 1.8 Fonction anonyme........................................ 160 2. Classes...................................................... 161 2.1 Concept................................................. 161 2.2 Définir une classe......................................... 162 2.3 Instancier une classe....................................... 165 2.4 Héritage................................................. 167 2.5 Autres fonctionnalités sur les classes......................... 169 2.5.1 Classe ou méthode abstraite........................... 169 2.5.2 Classe ou méthode finale............................. 170
4 PHP 5.4 Développez un site web dynamique et interactif 2.5.3 Interface........................................... 171 2.5.4 Attribut ou méthode statique - Constante de classe........ 172 2.5.5 Traits.............................................. 174 2.6 Exceptions............................................... 176 3. Les espaces de noms............................................ 178 Chapitre 7 Gérer les formulaires 1. Vue d'ensemble............................................... 183 1.1 Petit rappel sur les formulaires............................... 183 1.2 Interaction entre un formulaire et un script PHP................ 186 2. Récupérer les données saisies dans le formulaire..................... 191 2.1 Principe................................................. 191 2.2 Les différents types de zones................................ 195 2.3 Synthèse................................................. 207 3. Construire un formulaire dynamiquement......................... 209 4. Contrôler les données saisies..................................... 214 4.1 Vue d'ensemble........................................... 214 4.2 Vérifications classiques..................................... 214 5. Les problèmes sur les données saisies.............................. 219 5.1 La fonctionnalité de "magic quotes"........................... 219 5.2 Autres problèmes sur les données saisies....................... 220 6. Utilisation des filtres........................................... 227 6.1 Principes................................................. 227 6.2 Application aux formulaires................................. 236 7. Aller sur une autre page à la fin du traitement...................... 238 Chapitre 8 Accéder aux bases de données 1. Introduction.................................................. 245 1.1 Vue d'ensemble........................................... 245 1.2 La notion de fetch......................................... 247
Table des matières 5 2. Utilisation de MySQL.......................................... 248 2.1 Préambule............................................... 248 2.2 Connexion et déconnexion................................. 249 2.3 Lire des données.......................................... 251 2.4 Mettre à jour des données.................................. 271 2.5 Gérer les erreurs.......................................... 278 2.6 Requêtes préparées........................................ 282 2.6.1 Vue d ensemble..................................... 282 2.6.2 Préparer une requête................................. 284 2.6.3 Lier des variables PHP aux paramètres de la requête........ 285 2.6.4 Exécuter la requête.................................. 286 2.6.5 Obtenir des informations sur le résultat d'une requête de mise à jour........................... 287 2.6.6 Lier des variables PHP aux colonnes du résultat d'une requête de lecture............................... 289 2.6.7 Extraire le résultat d'une requête de lecture............... 291 2.6.8 Utiliser un résultat stocké............................. 292 2.6.9 Gérer les erreurs..................................... 295 2.6.10 Fermer une requête préparée........................... 296 2.7 Utilisation de l extension MySQL............................ 297 3. Utilisation d'oracle............................................ 300 3.1 Préambule............................................... 300 3.2 Environnement NLS....................................... 301 3.3 Connexion et déconnexion................................. 301 3.4 Lire des données.......................................... 304 3.5 Mettre à jour des données.................................. 330 3.6 Appeler une procédure stockée.............................. 339 3.7 Illustration des problèmes liés à l'environnement NLS........... 343 3.8 Gérer les erreurs.......................................... 345 4. Utilisation de SQLite........................................... 349 4.1 Préambule............................................... 349 4.2 Ouvrir et fermer une base.................................. 350 4.3 Lire des données.......................................... 351 4.4 Mettre à jour des données.................................. 364 4.5 Gérer les erreurs.......................................... 371 5. PHP Data Objects (PDO)....................................... 374
6 PHP 5.4 Développez un site web dynamique et interactif 6. "Magic quotes" : le retour....................................... 377 6.1 Préambule............................................... 377 6.2 Chargement des données en provenance d'une base............. 379 6.3 Mise à jour des données dans la base.......................... 380 Chapitre 9 Gérer les sessions 1. Description du problème........................................ 385 2. Authentification.............................................. 389 2.1 Vue d'ensemble........................................... 389 2.2 Saisie de l'identification.................................... 389 2.3 Vérifier l'identification saisie................................ 395 3. Créer un identifiant unique...................................... 396 4. Passer des informations par l'url................................ 398 4.1 Principe................................................. 398 4.2 "magic quotes" : le retour................................... 403 4.3 Application à la gestion des sessions.......................... 403 4.4 Remarques et conclusion................................... 409 5. Passer des informations par une zone de formulaire cachée............ 410 5.1 Principe................................................. 410 5.2 Application à la gestion des sessions.......................... 412 5.3 Remarques et conclusion................................... 415 6. Utiliser des cookies............................................ 416 6.1 Principe................................................. 416 6.2 "magic quotes" : le retour................................... 422 6.3 Application à la gestion des sessions.......................... 422 6.4 Remarques et conclusion................................... 428 7. Utiliser la gestion des sessions de PHP............................. 429 7.1 Principes................................................. 429 7.2 Mise en œuvre............................................ 430 7.3 Gérer soi-même la transmission de l'identifiant de session........ 440 7.4 Quelques directives de configuration supplémentaires........... 446 7.5 Application à la gestion des sessions.......................... 447 7.6 Remarques et conclusion................................... 453
Table des matières 7 8. Conserver des informations d'une visite à une autre................. 456 9. Petite synthèse sur les variables Get/Post/Cookie/Session............. 462 Chapitre 10 Envoyer un courrier électronique 1. Vue d'ensemble............................................... 465 2. Envoyer un message texte sans pièce jointe........................ 465 3. Envoyer un message au format MIME............................ 468 3.1 Préambule............................................... 468 3.2 Message au format HTML.................................. 468 3.3 Message avec pièce jointe................................... 472 Chapitre 11 Gérer les fichiers 1. Manipuler les fichiers sur le serveur............................... 475 2. magic quotes................................................. 484 3. Télécharger un fichier à partir du client : "file upload"................ 485 4. Télécharger un fichier à partir du serveur : "download"............... 490 Chapitre 12 Gérer les erreurs dans un script PHP 1. Vue d'ensemble............................................... 497 2. Les messages d'erreur PHP....................................... 498 3. Les fonctions de gestion des erreurs............................... 500
8 PHP 5.4 Développez un site web dynamique et interactif Annexe 1. Variables PHP prédéfinies....................................... 513 2. Constantes PHP prédéfinies..................................... 515 3. Exemples complémentaires...................................... 516 3.1 Introduction............................................. 516 3.2 Lire un document XML.................................... 516 3.3 Générer un document PDF.................................. 521 3.4 Générer une image........................................ 526 Index........................................................ 533
Editions ENI Magento Réalisez des développements professionnels avec PHP Collection Expert IT Table des matières
Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EIMAG dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement. Avant-propos Chapitre 1 Installation de Magento 1. Objectif....................................................... 9 2. Pré-requis matériels.............................................. 9 3. Installation de Magento.......................................... 9 3.1 Étapes de l'installation....................................... 9 3.2 Fichier local.xml........................................... 16 4. Configuration de Magento....................................... 18 4.1 Accès au back office (espace d administration).................. 18 4.2 Traduction de Magento via Magento Connect.................. 18 4.2.1 Traduction du back office.............................. 23 4.2.2 Traduction du front office............................. 23 4.3 Configuration multisite, multiboutique et d'une vue magasin...... 24 4.3.1 Configuration multisite (websites)...................... 25 4.3.2 Configuration multiboutique (stores).................... 25 4.3.3 Création d'une catégorie racine.......................... 26 4.3.4 Configuration d'une vue magasin (store view)............. 26 4.3.5 Configuration des informations sur un site et une vue...... 27 4.4 Gestion des permissions..................................... 27 4.4.1 Création des rôles.................................... 27 4.4.2 Création des comptes utilisateurs....................... 28 4.5 Configuration de l'interface front office........................ 30 4.5.1 Paquet et thème...................................... 30 4.5.2 Layouts............................................. 30 4.5.3 Templates........................................... 30 4.5.4 Skins............................................... 30 4.5.5 Fichier de traduction.................................. 30 4.5.6 Configuration de l'interface............................ 31
2 Magento Réalisez des développements professionnels avec PHP Chapitre 2 Ajout d un nouveau module 1. Objectif....................................................... 35 2. Déclaration du module.......................................... 35 3. Structuration des dossiers du module.............................. 37 4. Création du fichier de configuration config.xml...................... 38 5. Création d'un contrôleur......................................... 39 5.1 Création d un contrôleur en front office........................ 39 5.1.1 Contrôleur d'arrière-plan............................... 39 5.1.2 Contrôleur accessible.................................. 42 5.2 Création d un contrôleur en back office........................ 45 6. Création d'un layout............................................ 48 6.1 Création d un layout pour le front office....................... 48 6.2 Création d un layout pour le back office........................ 52 7. Création d'un bloc.............................................. 53 8. Association d'un bloc à un template................................ 55 8.1 Association d'un bloc à un template en utilisant un layout......... 55 8.2 Association d'un bloc à un template en utilisant une variable spéciale.............................. 58 9. Création d'un helper............................................ 59 9.1 Utilisation d'un helper dans le cas général...................... 59 9.2 Utilisation d'un helper pour la traduction....................... 62 10. Création d'un modèle............................................ 65 11. Création d'un installeur.......................................... 75 11.1 Mise en place d'un script d'installation......................... 75 11.2 Mise à niveau d'un script d'installation (upgrade)................ 80 12. Définition des options de configuration............................ 83 13. Création d un menu en back office................................. 94 14. Création d un module en back office............................... 97 Chapitre 3 Surcharge des classes existantes 1. Objectif...................................................... 113 2. Surcharge d'un contrôleur....................................... 113 2.1 Surcharge d un contrôleur en front office...................... 114 2.2 Surcharge d un contrôleur en back office...................... 118
Table des matières 3 3. Surcharge d'un bloc............................................ 120 4. Surcharge d'un modèle......................................... 122 5. Surcharge d'un helper.......................................... 125 6. Observateur et événement (observer et event)...................... 127 Chapitre 4 Catalogue 1. Objectif..................................................... 133 2. Types de produits............................................. 133 2.1 Produit simple (simple product)............................. 133 2.2 Produit groupé (grouped product)............................ 133 2.3 Produit configurable (configurable product).................... 133 2.4 Produit virtuel (virtual product)............................. 134 2.5 Produit packagé (bundle product)............................ 134 2.6 Produit téléchargeable (downloadable product)................. 134 2.7 Création d'un module permettant l'ajout d'un nouveau type de produit134 3. Options personnalisables....................................... 141 4. Produits apparentés (related products)............................ 141 4.1 Présentation des produits apparentés......................... 141 4.2 Manipulation sur les produits apparentés..................... 141 4.2.1 Manipulation du layout pour le choix d un emplacement... 141 4.2.2 Manipulation de l affichage des informations sur les articles....................................... 142 5. Ventes incitatives (up-sells)..................................... 144 5.1 Manipulation sur les ventes incitatives........................ 144 5.1.1 Manipulation du layout pour le choix d un emplacement... 144 5.1.2 Manipulation de l affichage des informations sur les articles....................................... 145 6. Ventes croisées (cross-sells)...................................... 147 6.1 Manipulation sur les ventes croisées.......................... 147 6.1.1 Manipulation du layout pour le choix d un emplacement... 147 6.1.2 Manipulation de l affichage des informations sur les articles. 147 7. Attributs..................................................... 148 7.1 Gestion d un attribut produit en back office................... 148 7.1.1 Création d un attribut produit en back office............. 148 7.1.2 Assignation d un attribut produit à un jeu d attributs en back office....................................... 152
4 Magento Réalisez des développements professionnels avec PHP 7.2 Gestion des attributs produit via un installeur.................. 153 7.2.1 Création d un attribut produit via un installeur........... 153 7.2.2 Assignation d un attribut produit à un jeu d attributs via un installeur..................................... 160 7.2.3 Modification des informations sur un attribut............ 161 7.2.4 Suppression d un attribut............................. 161 7.3 Récupération des valeurs des attributs........................ 162 7.3.1 Type d entrée : Champ texte, Zone de texte, Date, Image, Prix et Taxe Fixe de Produit................ 162 7.3.2 Type d entrée : Oui/Non et Liste déroulante.............. 162 7.3.3 Type d entrée : Sélection multiple...................... 162 8. Jeux d attributs............................................... 163 8.1 Création d un jeu d attributs en back office.................... 163 8.2 Gestion des jeux d attributs via un installeur................... 163 8.2.1 Création d un jeu d attributs produit via un installeur...... 163 8.2.2 Modification d un jeu d attributs produit via un installeur.. 164 8.2.3 Suppression d un jeu d attributs produit via un installeur... 164 8.3 Module conseillé pour un changement de jeu d attributs à la volée. 165 9. Catégories.................................................... 165 9.1 Gestion des attributs catégorie via un installeur................ 165 9.2 Cas concret : ajout d'un type de catégorie et récupération de la valeur de l attribut....................... 165 Chapitre 5 Vente 1. Objectif...................................................... 169 2. Taxe........................................................ 169 2.1 Classe de taxe produit...................................... 169 2.2 Classe de taxe client....................................... 170 2.3 Gestion des zones et des taux de taxe......................... 171 2.4 Gestion des règles de taxe................................... 172 3. Commande................................................... 173 3.1 Création d un attribut commande via un installeur.............. 173 3.2 Récupération de la valeur d un attribut commande.............. 174 3.3 Manipulation des éléments autour de la commande............. 175 4. Facture...................................................... 175 4.1 Création d un attribut facture via un installeur................. 175 4.2 Récupération de la valeur d un attribut facture................. 177
Table des matières 5 4.3 Manipulation des éléments autour de la facture................ 177 5. Expédition................................................... 178 5.1 Création d un attribut expédition via un installeur.............. 178 5.2 Récupération de la valeur d un attribut expédition.............. 179 5.3 Manipulation des éléments autour de l expédition.............. 180 6. Avoir........................................................ 180 6.1 Création d un attribut avoir via un installeur.................. 181 6.2 Récupération de la valeur d un attribut avoir................... 182 6.3 Manipulation des éléments autour de l avoir................... 182 7. Mode de livraison............................................. 183 7.1 Ajout d un nouveau mode de livraison........................ 183 8. Mode de paiement............................................. 190 8.1 Ajout d un mode de paiement............................... 190 Chapitre 6 Client et groupe de clients 1. Objectif..................................................... 203 2. Gestion des attributs client via un installeur........................ 203 3. Assignation d un client à un groupe de clients...................... 204 3.1 Ajout d un groupe de clients en back office.................... 204 3.2 Assignation d un client à un groupe de clients en back office...... 205 3.3 Assignation d un client à un groupe de clients via du code........ 206 4. Module montrant l utilisation des groupes de clients en tant que filtre.. 208 5. Exemples de cas d utilisation.................................... 214 Chapitre 7 CMS et variables personnalisées 1. Objectif..................................................... 215 2. Pages........................................................ 215 2.1 Création d une page dans le back office....................... 215 2.2 Accès à la page en front office............................... 219 3. Blocs statiques................................................ 219 3.1 Création d'un bloc statique dans le back office................. 219 3.2 Exploitation d'un bloc statique.............................. 220 3.2.1 Appel dans une catégorie.............................. 220 3.2.2 Appel par l'intermédiaire d'un layout.................... 221
6 Magento Réalisez des développements professionnels avec PHP 3.2.3 Appel par l intermédiaire des variables spéciales en back office....................................... 222 3.2.4 Appel dans un template............................... 222 4. Widgets...................................................... 223 4.1 Création d'un widget en back office.......................... 223 4.2 Création d'un widget personnalisé........................... 225 4.2.1 Ajout d'un widget dans un gabarit de newsletter.......... 230 4.2.2 Ajout d'un widget dans une page statique................ 231 4.2.3 Ajout d'un widget dans un bloc statique................. 232 5. Variables personnalisées........................................ 232 5.1 Création d une variable personnalisée......................... 232 5.2 Utilisation d'une variable personnalisée....................... 233 5.2.1 Utilisation d'une variable personnalisée dans un gabarit d e-mail.............................. 233 5.2.2 Utilisation d'une variable personnalisée dans un gabarit de newsletter.......................... 234 5.2.3 Utilisation d'une variable personnalisée dans une page CMS.................................. 235 5.2.4 Utilisation d'une variable personnalisée dans un bloc statique................................. 236 5.2.5 Affichage de la valeur HTML d'une variable personnalisée par du code PHP......................... 236 Chapitre 8 Magento et Ajax 1. Objectif...................................................... 239 2. Liste des fichiers à créer......................................... 239 3. Déclaration du module......................................... 239 4. Création du fichier de configuration.............................. 240 5. Création du layout............................................. 241 6. Création du fichier JavaScript.................................... 241 7. Création du bloc............................................... 242 8. Création du template........................................... 243 9. Contrôleur................................................... 244 10. Création du helper par défaut.................................... 245 11. Résultat en front office......................................... 245
Table des matières 7 Annexe 1. Aide au développement......................................... 247 2. Modules complémentaires...................................... 253 2.1 iadvize.com.............................................. 253 2.2 ColiPoste/La Poste - Expeditor INET compatible So Colissimo.... 254 2.3 Enhanced Admin Product Grid.............................. 254 2.4 Netzarbeiter_GroupsCatalog................................ 254 2.5 PaymentFilter for Products and Customer Groups.............. 254 2.6 Simple Configurable Products............................... 254 2.7 BankPayment............................................ 254 2.8 Owebia Shipping 2........................................ 255 2.9 CashOnDelivery.......................................... 255 2.10 Simple Banners........................................... 255 2.11 Admin Custom Shipping Rate............................... 255 2.12 CyberMUT extension by Quadra Informatique................ 255 2.13 ATOS/Sips extension by Quadra Informatique................. 255 Index............................................................ 257