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 DRUPAL Réalisez des développements professionnels avec PHP (2 ième édition) Collection Expert IT Table des matières
Table des matières 1 Préface Chapitre 1 Introduction 1. Les systèmes de gestion de contenu.......................... 11 2. Les avantages de Drupal.................................... 15 3. Le fonctionnement de Drupal............................... 17 4. L'environnement de développement.......................... 20 5. L'installation de Drupal.................................... 25 6. Le passage de Drupal 6 à Drupal 7............................ 35 7. Conclusion.............................................. 35 Chapitre 2 Drupal et son architecture 1. L'arborescence des répertoires............................... 37 2. La création dynamique des pages............................ 39 3. Les entités............................................... 40 3.1 Le principe........................................... 40 3.2 Les types d'entité standard.............................. 41 3.3 La gestion des champs................................. 42 4. Les structures de données : les types de contenu................ 43 5. Les contenus : les nœuds................................... 45 5.1 Le principe des nœuds................................. 45 5.2 Les révisions......................................... 48 5.3 Les traductions....................................... 50 6. La classification des données : la taxonomie.................... 51 6.1 Les vocabulaires...................................... 51
2 Drupal Réalisez des développements professionnels avec PHP 6.2 Les termes........................................... 54 6.2.1 Les termes...................................... 54 6.2.2 Les termes parents............................... 56 7. La gestion des utilisateurs et leurs droits d'accès................ 57 7.1 Les comptes utilisateurs................................ 57 7.2 Les rôles............................................. 59 7.3 Les droits d'accès...................................... 61 8. L'organisation des pages.................................... 62 8.1 Les thèmes........................................... 62 8.2 Les régions........................................... 63 8.3 Les blocs............................................ 65 9. La gestion multisite....................................... 70 9.1 Le principe........................................... 70 9.2 La pratique.......................................... 71 10. La recherche et l'indexation................................. 72 11. Conclusion.............................................. 76 Chapitre 3 Utiliser Drupal 1. La zone d'administration................................... 77 1.1 La barre d'outils....................................... 77 1.2 La zone de configuration............................... 78 2. Les types de contenu et les nœuds........................... 84 2.1 La création d'un type de contenu........................ 84 2.1.1 Les interfaces.................................... 84 2.1.2 Un cas pratique : le type Document................. 90 2.2 La création d'un nœud................................. 93 2.2.1 Les interfaces.................................... 93 2.2.2 Un cas pratique.................................. 95
Table des matières 3 3. La taxonomie ou classification.............................. 97 3.1 La création d'un vocabulaire............................ 97 3.1.1 Les interfaces.................................... 97 3.1.2 Un cas pratique.................................. 99 3.2 L'ajout de termes..................................... 101 3.2.1 Les interfaces................................... 101 3.2.2 Un cas pratique................................. 103 4. Les blocs................................................ 109 4.1 Les interfaces........................................ 109 4.2 Un cas pratique...................................... 114 5. Les utilisateurs et les droits................................ 117 5.1 La création d'un rôle.................................. 117 5.2 L'attribution des droits d'accès.......................... 119 5.2.1 Les interfaces................................... 119 5.2.2 Un cas pratique................................. 120 5.3 La création d'un utilisateur............................ 120 5.3.1 Les interfaces................................... 120 5.3.2 Un cas pratique................................. 123 6. Les champs............................................. 126 6.1 Le principe.......................................... 126 6.2 Les types de champ................................... 130 6.3 Des cas pratiques.................................... 131 6.3.1 L'ajout d'un champ à un type de contenu............ 131 6.3.2 L'ajout d'un champ à un terme.................... 138 6.3.3 L'ajout d'un champ à un utilisateur................. 141 7. Conclusion............................................. 144
4 Drupal Réalisez des développements professionnels avec PHP Chapitre 4 Étendre Drupal 1. L'importance des modules................................. 145 2. La gestion des modules.................................... 147 2.1 L'installation, la désinstallation et la mise à jour........... 147 2.1.1 L'installation................................... 147 2.1.2 La désinstallation............................... 149 2.1.3 La mise à jour.................................. 151 2.2 L'activation et la désactivation......................... 156 3. Les modules standard..................................... 157 3.1 La liste complète..................................... 157 3.2 Quelques modules en détail............................ 160 3.2.1 Agrégation de flux RSS : Aggregator................ 160 3.2.2 Le blog : Blog................................... 167 3.2.3 Le forum : Forum............................... 169 3.2.4 Le sondage : Poll................................ 178 3.2.5 La réécriture d'url : Path........................ 183 3.2.6 Les styles d'image : Image........................ 185 4. Les modules additionnels.................................. 194 4.1 Introduction........................................ 194 4.2 Un cas pratique...................................... 196 4.3 Le module Token.................................... 198 4.4 Les modules de gestion des champs..................... 199 4.4.1 Le module Entity Reference....................... 199 4.4.2 Le module Field Permissions...................... 202 4.4.3 Le module Field Group........................... 204 4.5 La gestion de l'affichage avec Views..................... 207 4.5.1 Le principe..................................... 207 4.5.2 Les principaux types de vues...................... 210 4.5.3 Les principaux types d'affichage................... 214 4.5.4 La configuration................................ 215 4.5.5 La visualisation................................. 217
Table des matières 5 4.5.6 La création d'une page de nœuds................... 218 4.5.7 La création d'un bloc de termes.................... 230 4.6 La création de sections avec Context.................... 233 5. Conclusion............................................. 239 Chapitre 5 Développer un module 1. La structure d'un module.................................. 241 1.1 Le fichier.info....................................... 241 1.2 Le fichier.module.................................... 242 1.3 Le fichier.install..................................... 244 2. Les hooks............................................... 245 2.1 Le principe de surcharge............................... 245 2.2 Le fonctionnement................................... 246 2.3 L'extension du système de hook........................ 247 2.4 Les hooks disponibles................................. 248 2.4.1 Les hooks du système............................ 248 2.4.2 Les hooks de contenu............................ 249 2.4.3 Les hooks de structure........................... 251 2.4.4 Les hooks utilitaires............................. 253 2.4.5 Les hooks de sécurité............................ 253 2.4.6 Les hooks de module............................. 254 2.4.7 Les hooks de tâche.............................. 254 2.4.8 Les hooks de recherche........................... 255 2.4.9 Les hooks utilisateur............................. 255 3. Quelques hooks en détail.................................. 256 3.1 Le hook hook_permission()............................ 257 3.2 Les hooks de gestion des blocs.......................... 257 3.2.1 Le hook hook_info()............................. 258 3.2.2 Le hook hook_block_configure()................... 259 3.2.3 Le hook hook_block_save()....................... 260
6 Drupal Réalisez des développements professionnels avec PHP 3.2.4 Le hook hook_block_view()....................... 261 3.3 Les hooks de menu................................... 262 3.3.1 Le hook hook_menu()........................... 262 3.3.2 Le hook hook_menu_alter()....................... 268 3.4 Les hooks de gestion des nœuds........................ 269 3.4.1 Le hook hook_node_insert()...................... 269 3.4.2 Le hook hook_node_update()..................... 270 3.4.3 Le hook hook_node_delete()...................... 270 3.4.4 Le hook hook_node_validate()..................... 271 3.4.5 Le hook hook_node_presave()..................... 272 3.4.6 Le hook hook_node_view()....................... 272 3.4.7 Le hook hook_node_load()........................ 273 3.5 Le hook hook_user().................................. 274 3.5.1 Le hook hook_user_insert()....................... 274 3.5.2 Le hook hook_user_update()...................... 275 3.5.3 Le hook hook_user_delete()....................... 276 3.5.4 Le hook hook_user_presave()...................... 276 3.5.5 Le hook hook_user_view()........................ 277 3.5.6 Le hook hook_user_load()........................ 278 3.5.7 Le hook hook_user_login()........................ 278 3.5.8 Le hook hook_user_logout()...................... 279 3.6 Le hook hook_theme()................................ 280 4. Les tableaux de rendu..................................... 286 4.1 Le principe.......................................... 286 4.2 L'utilisation dans Drupal.............................. 289 4.2.1 À l'affichage d'un bloc............................ 289 4.2.2 À l'affichage d'une page.......................... 290 4.2.3 À la création d'un formulaire...................... 291 5. Les formulaires.......................................... 291 5.1 L'API de formulaire................................... 291 5.1.1 Le principe de fonctionnement.................... 291 5.1.2 Les types de composant.......................... 294 5.1.3 L'attribut #autocomplete_path.................... 305
Table des matières 7 5.1.4 Les champs dynamiques.......................... 308 5.1.5 L'attribut #ajax................................. 312 5.2 Les hooks de formulaire............................... 319 5.2.1 Le hook hook_forms()........................... 319 5.2.2 Les hooks hook_form_alter() et hook_form_form_id_alter().................... 321 6. Conclusion............................................. 323 Chapitre 6 Interagir avec Drupal 1. L'accès aux données...................................... 325 1.1 Le principe.......................................... 325 1.2 Les types de requêtes................................. 327 1.2.1 Les requêtes statiques............................ 327 1.2.2 Les requêtes dynamiques......................... 331 1.2.3 Les requêtes d'insertion.......................... 336 1.2.4 Les requêtes de mise à jour........................ 339 1.2.5 Les requêtes de suppression....................... 341 1.2.6 Les requêtes de fusion............................ 341 1.3 L'enregistrement avec drupal_write_record().............. 344 2. L'utilisation de l'api...................................... 345 2.1 La gestion des nœuds................................. 346 2.1.1 La création..................................... 346 2.1.2 Le chargement.................................. 348 2.1.3 La mise à jour.................................. 348 2.1.4 Une nouvelle révision............................ 348 2.2 La gestion des utilisateurs............................. 349 2.2.1 La création..................................... 349 2.2.2 Le chargement.................................. 351 2.2.3 La mise à jour.................................. 351 2.2.4 La suppression.................................. 351
8 Drupal Réalisez des développements professionnels avec PHP 2.3 La gestion des vocabulaires et des termes................. 352 2.3.1 La création..................................... 352 2.3.2 Le chargement.................................. 353 2.3.3 La mise à jour.................................. 353 2.3.4 La suppression.................................. 354 3. La modification des en-têtes............................... 354 3.1 L'ajout de balises..................................... 355 3.2 L'ajout de feuilles de style............................. 355 3.3 L'ajout de scripts JavaScript............................ 357 4. L'API de chaînes de caractères.............................. 360 5. L'API des images......................................... 361 6. Le système de traduction.................................. 365 6.1 La traduction des chaînes avec Drupal................... 366 6.2 L'export et l'import des traductions avec POTX........... 369 7. Conclusion............................................. 372 Chapitre 7 Créer un thème 1. L'intérêt des thèmes...................................... 373 1.1 La composition d'un thème............................ 373 1.2 La séparation des responsabilités........................ 374 2. L'installation et la configuration d'un thème.................. 376 3. La structure d'un thème................................... 381 3.1 Le fichier.info....................................... 382 3.2 Le fichier template.php............................... 390 4. Les différents moteurs de template.......................... 393 5. Les régions et les blocs.................................... 395 5.1 Les régions.......................................... 395 5.2 Les blocs........................................... 397
Table des matières 9 6. Les templates........................................... 398 6.1 Le template de nœud................................. 399 6.2 Le template de bloc................................... 403 6.3 Le template de page.................................. 405 7. Les hooks de thème....................................... 409 7.1 Les fonctions de thème................................ 409 7.2 Les fonctions de preprocessing.......................... 410 7.2.1 Le hook hook_preprocess_node().................. 410 7.2.2 Le hook hook_preprocess_block().................. 412 7.2.3 Le hook hook_preprocess_page()................... 412 7.2.4 Le hook hook_preprocess()....................... 413 8. La configuration avancée.................................. 415 9. Le système de sous-thèmes................................ 417 10. L'intégration d'un framework CSS : Less..................... 419 10.1 L'intégration de Less dans Drupal....................... 420 10.2 Les principales instructions............................ 421 10.2.1Les variables................................... 422 10.2.2Les mixins..................................... 422 10.2.3L'encapsulation................................. 425 10.2.4Les fonctions et opérations....................... 426 11. Conclusion............................................. 427 Chapitre 8 Les plus 1. Configurer un site Drupal en 10 minutes..................... 429 1.1 Les modules à installer................................ 429 1.2 La configuration du site............................... 431 1.2.1 La langue française.............................. 431 1.2.2 Les informations du site.......................... 436 1.2.3 Le format de texte.............................. 438 1.2.4 Le module Menu d'administration................. 439
10 Drupal Réalisez des développements professionnels avec PHP 1.2.5 Le rôle "Webmaster"............................. 441 1.2.6 Les droits d'accès................................ 442 1.2.7 Les alias d'url................................. 442 1.2.8 Le système de fichiers............................ 444 1.2.9 Les paramètres de recherche...................... 445 1.2.10Les paramètres utilisateurs....................... 446 1.2.11Le paramétrage du thème......................... 448 1.2.12Le formulaire de contact......................... 448 1.2.13Le module WYSIWYG........................... 450 1.2.14Le fichier.htaccess.............................. 453 1.2.15Le fichier settings.php........................... 454 1.3 Une alternative : les distributions Acquia................. 455 1.4 La configuration du serveur............................ 456 1.4.1 Le serveur web : Apache.......................... 456 1.4.2 PHP.......................................... 457 1.4.3 Le serveur de bases de données : MySQL............ 459 2. Subversion.............................................. 460 2.1 Le repository........................................ 460 2.2 L'environnement de développement et de production....... 461 3. La gestion du cache sous Drupal............................ 462 4. La fourniture de services : XML-RPC........................ 463 4.1 Le client............................................ 464 4.2 Le serveur.......................................... 464 5. La FAQ des experts....................................... 467 6. Conclusion............................................. 473 Index...................................................... 475