p. 1
du les cahiers programmeur stéphane mariel avec la contribution de jean zundel
[close]
p. 2
du les cahiers programmeur php 5
[close]
p. 3
stéphane mariel du les cahiers programmeur php 5 avec la contribution de jean zundel et jean-marie thomas
[close]
p. 4
Éditions eyrolles 61 bd saint-germain 75240 paris cedex 05 www.editions-eyrolles.com le code de la propriété intellectuelle du 1er juillet 1992 interdit en effet expressément la photocopie à usage collectif sans autorisation des ayants droit or cette pratique s est généralisée notamment dans les établissements d enseignement provoquant une baisse brutale des achats de livres au point que la possibilité même pour les auteurs de créer des oeuvres nouvelles et de les faire éditer correctement est aujourd hui menacée en application de la loi du 11 mars 1957 il est interdit de reproduire intégralement ou partiellement le présent ouvrage sur quelque support que ce soit sans l autorisation de l Éditeur ou du centre français d exploitation du droit de copie 20 rue des grands augustins 75006 paris © groupe eyrolles 2004 isbn 2-212-11234-3
[close]
p. 5
avant-propos php n a pas dix ans malgré le succès incontestable qui fait de ce langage l un des premiers outils du web et le module apache le plus installé certains peinent encore à reconnaître en php un environnement et langage professionnel pour des applications d entreprise il est vrai que depuis l explosion de la bulle internet le monde des nouvelles technologies tic est entré dans une phase d industrialisation équivalente à celle que le secteur informatique dans son ensemble a entamée depuis près d une décennie les utilisateurs d informatique et de solutions tic attendent désormais des offres et des méthodes qui au-delà de l approche « prototype » qui prévalait démontrent tout au contraire leur fiabilité et leur robustesse cette exigence impose naturellement la mise en oeuvre d outils ou méthodes adaptés à même de simplifier et de sécuriser le processus de développement c est le cas du modèle objet des design patterns et des frameworks de développement très en vogue aujourd hui dans ce contexte la version 5 de php devrait rallier les plus réticents php est en effet sur le point de parvenir à allier à sa simplicité d utilisation et de mise en oeuvre une grande richesse fonctionnelle en se dotant d un véritable support du modèle objet de capacités de spécification et d un support xml enfin mûr autant de raisons de voir php gagner en popularité y compris dans les projets les plus critiques © groupe eyrolles 2004
[close]
p. 6
les cahiers du programmeur php 5 quel est l objectif de cet ouvrage ce cahier du programmeur propose une mise en pratique simple mais caractéristique des fonctionnalités clés de php en matière de développement web qu il s agisse des nouveautés apportées par php 5 ou de fonctions déjà présentes dans php 4 que leur complexité apparente ou réelle avait pu desservir l annexe b fournit des éléments sur les extensions retenues dans php 5 loin des bibles qui peinent à s éloigner des manuels de référence disponibles pour php cet ouvrage ne vise en aucun cas l exhaustivité bien au contraire plutôt que d égrener la litanie des fonctions et des extensions l objectif est de proposer au lecteur une synergie avec le manuel de référence de php ou les livres de références existant sur ce sujet les concepts clés sont mis en pratique dans le cadre d une étude de cas que nous avons choisie simple mais fonctionnellement riche un système de chat par cette mise en situation nous nous attachons à faire connaître les possibilités exceptionnelles de php mais aussi à les rendre plus simples à appréhender cette démarche que l on pourrait qualifier d initiatique sur des sujets phares du développement web tente d offrir les moyens et le socle pour approfondir ses connaissances en tirant notamment parti de la source d informations inépuisable que constitue le manuel de référence php et les livres de référence qui existent sur le sujet À qui s adresse cet ouvrage cet ouvrage est-il accessible à un lecteur débutant en php oui mais il lui faudra une attention particulière et de la méthode et ne surtout pas négliger le chapitre d introduction cet ouvrage s adresse à tous les utilisateurs de php au-delà de l aspect syntaxe du langage il se penche sur les éléments clés de toute application web ambitieuse gestion des sessions utilisateur internationalisation etc il propose également un tour d horizon des aspects techniques les plus pointus pour réaliser des développements de qualité utilisation des interfaces paradigme objet xml comment lire cet ouvrage pour découvrir le potentiel de la nouvelle version de php nous déroulerons tout au long de l ouvrage une étude de cas qui nous servira de fil conducteur mais attention que vous soyez débutant php ou amateur averti ne faites pas l impasse sur le chapitre d introduction qui est l occasion de redécouvrir les bases du langage peut-être certains éléments surprendront-ils ceux vi © groupe eyrolles 2004
[close]
p. 7
qui pensent déjà bien connaître php passée cette étape chacun pourra dévorer le chapitre de son choix les adeptes du modèle objet pourront sans nul doute jeter leur dévolu sur les chapitres 2 4 et 6 les chapitres 7 à 10 devraient pour leur part recueillir les suffrages de ceux qu xml a conquis ou qui attendent d être conquis par lui les chapitres 5 sessions utilisateur 12 internationalisation ou encore 13 options avancées peuvent être lus et relus ponctuellement pour découvrir un sujet ou se rafraîchir la mémoire certains chapitres sont plus difficiles d approche que les autres c est le cas des chapitres consacrés à l objet et à xml le lecteur débutant pourra dans ce cas procéder en deux temps un premier survol accompagné de quelques tests clés puis en fonction des besoins une relecture plus fine de certains aspects évoqués enfin l ouvrage se complète de quatre annexes indispensables l annexe a résume ce qu il faut savoir pour héberger son serveur php à domicile l annexe b parcourt les extensions standards intégrées à php l annexe c rappelle l essence de la norme dom et enfin l annexe d offre un récapitulatif de la structure du code associé à notre étude de cas où trouver le code associé à cet ouvrage l intégralité du code source est disponible en téléchargement sur le site de l auteur par ailleurs une mise en situation réelle de l application avec son code source est aussi disponible pour des tests b http www.stephanemariel.com b http www.phpsaloon.com remerciements la création d un ouvrage est un processus de longue haleine un cheminement fait de recherches d interrogations et de réponses toutes plus ou moins partielles sur un sujet comme php 5 que sa jeunesse rend encore mouvant l aventure réclame encore plus d énergie merci donc à ceux qui m ont apporté leur enthousiasme sans compter muriel mon éditrice favorite jean qui ne m aura néanmoins pas converti à perl et xavier dont les relectures vous auront certainement préservé cher lecteur des tournures les plus alambiquées sans oublier bien sûr jean-marie ainsi que sophie anne et toute l équipe des éditions eyrolles stéphane mariel b http www.stephanemariel.com b stf@stephanemariel.com © groupe eyrolles 2004 vii avant-propos
[close]
p. 9
table des matières avant-propos v quel est l objectif de cet ouvrage vi À qui s adresse cet ouvrage vi comment lire cet ouvrage vi remerciements vii introduction lapidaire À php 3 php un langage immergé dans les documents 4 une syntaxe simple 6 des types élémentaires mais pas de typage 7 nombres et caractères 7 tableaux 7 sous-programmes et modularité 9 les structures de contrôle habituelles 11 les tableaux superglobaux 13 des facilités exceptionnelles sur les chaînes de caractères 14 méthode de survie 16 en résumé 19 la vue 42 le contrôleur 43 le modèle 43 les données de session 43 les listes d information 44 les messages 45 en résumé 47 3 modÈle de donnÉes avec sqlite 49 un modèle de données pour quoi faire 50 description avec merise 51 mise en oeuvre de sqlite 56 sqlite un sql classique 56 sqlite un sgbd sans serveur 57 implantation de notre modèle 58 tables et contraintes 58 requêtes sql dans php saloon 58 tester sqlite en direct 59 sqlite et les transactions 62 création d une vue connectes 63 en résumé 65 1 l application web exemplaire en php 5 21 php saloon un chat en php 22 php saloon en détail 22 une inscription préalable 23 une identification à chaque visite 23 un tableau de bord en trois morceaux 24 pourquoi choisir php 5 25 php 4 26 aller vers un modèle à composants 26 améliorer la gestion des erreurs 27 améliorer le support xsl 27 adopter php 5 pour conserver php 27 php un environnement simple 27 un langage glu 29 le modèle objet complet de php 5 29 un nouvel ensemble de types prédéfinis 31 refonte du support xml/xsl 31 en résumé 33 4 les objets dans php 5 67 encapsulation et protection des données 68 protection des données les 3 « p » 71 héritage 72 héritage et interfaces 74 classes abstraites et finales 74 polymorphisme 76 constructeurs et destructeurs 78 utilisation des objets et références 80 autres facilités introduites par php 5 82 méthodes et attributs dynamiques 82 chargement automatisé des classes utilisées 83 clonage 83 la classe utilisateur complète 84 en résumé 85 2 organisation et dÉcoupage du travail avec les interfaces 5 sessions 87 35 incontournables sessions 88 les outils proposés par php permettent de simplifier 89 création et maintien de la session 89 sauvegarde des données de session 96 premiers éléments de l architecture logicielle 36 les flux d information dans php saloon 37 les interfaces vues par php 39 © groupe eyrolles 2003 ix
[close]
p. 10
les cahiers du programmeur php 5 première implantation de la classe session 98 pilote de sauvegarde pour les sessions 99 pilote de session sqlite pour php saloon 101 la table sessions 101 la classe gestionnairesession 102 garbage collector 103 implantation retenue 104 décodage des données de session 105 extension de la classe session 106 en résumé 107 9 une version mozilla/xul facile avec xsl 169 mozilla une plate-forme technologique étonnante 170 rdf et les premiers tests de php saloon avec xul 172 composants graphiques 172 sources rdf 176 template et génération dynamique de l interface utilisateur 179 rafraîchissement et sécurité 181 adaptation des transformations xsl 183 nouvelles transformations 184 amélioration de la vue 185 finalisation de l interface avec css 186 en résumé 187 6 gÉrer les erreurs grÂce aux exceptions 109 le traitement classique des erreurs dans php saloon 110 un principe élémentaire 110 une réalité plus complexe 110 un risque additionnel pour les applications web 112 les exceptions comme alternative 113 le concept 113 le fonctionnement dans php 114 quels coûts pour les exceptions 116 exceptions ou erreurs une question d équilibre 116 en résumé 119 10 version i-mode allÉgÉe 189 contraintes et propositions pour une utilisation mobile 190 les contraintes physiques 190 Éléments d adaptation pour php saloon 191 adaptation des feuilles de style 193 en résumé 195 7 Échanges et contenus xml avec dom 121 pourquoi adopter xml 122 tour d horizon 122 les langages xml et la dtd de php saloon 123 xml oui mais pourquoi faire dans php saloon 130 document object model une interface disponible dans php 131 dom premier contact avec le formulaire d identification 132 xpath recherche avancée dans les documents xml 136 premières expressions xpath 137 construction de document xml à partir de zéro 141 validation des documents créés 142 simplexml une alternative très séduisante 143 en résumé 145 8 11 protection des images et opÉrations graphiques avec gd 197 problématique 198 découverte de gd 199 principes d utilisation 199 intégration des images dans les pages web traditionnelles 201 traitement des photos confiées à php saloon 202 en résumé 205 12 internationalisation 207 internationaliser php saloon 208 déterminer les attentes du visiteur et réagir avec http et apache 208 découvrir les préférences des utilisateurs 209 sélectionner les ressources avec apache 211 php et gettext 214 la modularité en question 214 sélection adaptée des éléments textuels de l application avec gnu/gettext 216 en résumé 219 affichage sur mesure avec xslt 147 principe général 148 instructions php mises en oeuvre 149 constructions des templates de php saloon 151 structure d une feuille de style xsl 151 des règles des arbres et des chemins 152 transformation de la page d identification 154 le squelette de la page 154 le message d information 155 la feuille de style complète et son interprétation 159 php saloon vue d ensemble de la version html 162 dépasser les limites d xslt avec libxsl 167 en résumé 167 13 optimisations et fonctions avancÉes 221 mutualisation du code commun avec les inclusions automatiques 222 contrôle et traitement a posteriori des documents produits 224 compression des pages à la volée 225 découplage complet entre logique métier et vue 226 optimisation de la modularité avec les flots personnalisés 228 suppression d apache 230 en résumé 234 x © groupe eyrolles 2003
[close]
p. 11
a votre serveur php À domicile 235 avantages et inconvénients 235 adresse ip et nom 237 principe 237 installation proprement dite 238 sous microsoft windows 238 installer apache 238 installer php 5 240 sous linux 243 installer apache 243 installer php 5 244 tester php saloon 245 b pear et les extensions standards de php 5 247 les extensions standards 247 pear php extension and application repository 253 c document object model dom 255 la représentation des documents avec dom 255 types élémentaires 257 interfaces fondamentales 257 domexception 258 domstringlist doml 259 namelist doml 259 domimplementation 259 domimplementationsource 260 domimplementationlist 260 node 260 nodelist 262 document 263 documentfragment 263 namednodemap 264 characterdata 264 attr 265 element 265 text 266 comment 266 typeinfo doml 266 userdatahandler doml 267 domerror doml 267 domerrorhandler doml 268 domlocator doml 268 domconfiguration doml 268 interfaces étendues pour xml 269 cdatasection 269 documenttype 269 notation 269 entity 270 entityreference 270 processinginstruction 270 d organisation du code de php saloon 271 index 273 © groupe eyrolles 2003 xi table des matières
[close]
p. 13
introduction lapidaire à php php a l immense avantage d être facile à appréhender avant d entrer dans notre étude de cas quelques rappels nous ont paru indispensables pour bien démarrer et prendre en main les éléments clés du noyau dur de php sommaire b php langage de script b php langage à la syntaxe conventionnelle b php fenêtre ouverte sur le web b php langage dopé par ses extensions mots-clÉs b structures de contrôle b variables « superglobales » b chaînes dynamiques © groupe eyrolles 2004
[close]
p. 14
les cahiers du programmeur php 5 php vous est inconnu ou vous avez besoin de raviver votre expérience cette prise en main est faite pour vous fort des quelques éléments clés qui constituent le noyau dur de php vous aurez accès à tout le potentiel du langage mais chaque chose en son temps partons pour un petit tour d horizon pratique php un langage immergé dans les documents dans la plupart des cas les langages de programmation sont conçus pour être mis en oeuvre isolément d un côté le code des programmes de l autre des informations php qui s inscrit d emblée dans une logique web est de ce point de vue totalement différent À la différence des langages comme c java voire perl php est prévu pour être intégré directement dans des documents html xml pour cette raison il est nécessaire de distinguer dans un fichier php les informations statiques squelette de page html par exemple du code php lui-même par chance le w3c a tout prévu et pas seulement pour php mais pour tout langage ayant vocation à être immergé dans des documents web ainsi le w3c définit des séquences d échappement qui délimitent les frontières entre le code et l information classique le code est alors désigné sous le terme de processing instructions deux syntaxes sont possibles la plus verbeuse rarement utilisée avec php ou asp ne vous est cependant pas inconnue car elle est malgré tout très utilisée notamment avec javascript il s agit de délimiter le code avec la balise script
[close]
p. 15
figure 1 première page dynamique avec php il existe néanmoins une syntaxe raccourcie plus répandue dans le cas de php le début du code est marqué par php et la fin par de manière plus générale la syntaxe est de la forme x où x représente le langage dans lequel est écrit le code notre exemple peut alors s écrire
[close]