Cours de PHP 5 Par Guillaume Rossolini Date de publication : 12 mai 2008 Derniè

Cours de PHP 5 Par Guillaume Rossolini Date de publication : 12 mai 2008 Dernière mise à jour : 24 avril 2010 Ce cours vous apprendra à vous initier à tous les aspects du langage PHP, depuis la syntaxe jusqu'aux meilleures techniques de programmation. De nombreux exemples facilitent la compréhension par l'expérience. Nous verrons également d'autres aspects comme les méthodes de Test d'applications ainsi qu'une vision globale de la communauté PHP. Commentez Cours de PHP 5 par Guillaume Rossolini - 2 - Copyright ® 2008 Guillaume Rossolini. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://g-rossolini.developpez.com/tutoriels/php/cours/ I - Introduction..............................................................................................................................................................7 I-A - Remerciements.............................................................................................................................................. 7 I-B - Préambule...................................................................................................................................................... 7 I-C - Problématique................................................................................................................................................ 7 I-D - Communauté..................................................................................................................................................7 I-E - Outils de développement............................................................................................................................... 8 I-F - Documentation................................................................................................................................................9 I-G - Utilisations de PHP........................................................................................................................................9 I-G-1 - Exemple Web........................................................................................................................................9 I-G-2 - Exemple "CLI"..................................................................................................................................... 10 I-G-3 - Exemple "GUI".................................................................................................................................... 11 II - Exemples de scripts (mise en jambe)................................................................................................................. 12 II-A - Exécution des scripts d'exemple................................................................................................................ 12 II-B - Affichage......................................................................................................................................................12 II-C - Boucles........................................................................................................................................................13 III - Syntaxe du langage PHP................................................................................................................................... 14 III-A - Préambule.................................................................................................................................................. 14 III-B - Présentation du code.................................................................................................................................14 III-C - Parenthèses............................................................................................................................................... 15 III-D - Accolades...................................................................................................................................................15 III-E - Commentaires............................................................................................................................................ 15 III-F - Opérateurs..................................................................................................................................................16 III-F-1 - Arithmétique (+ - * / %)..................................................................................................................... 16 III-F-2 - Affectation de variable (= += -= *= /= .=)...........................................................................................16 III-F-3 - Comparaison (== === != <> !== > >= < <= instanceof).................................................................... 17 III-F-4 - Condition (?)...................................................................................................................................... 18 III-F-5 - Incrémentation / diminution (++ --).................................................................................................... 18 III-F-6 - Arithmétique logique, aka opérateurs de bits (& |)............................................................................19 III-F-7 - Comparaison logique (&& || and or)..................................................................................................20 III-F-8 - Opérateurs de tableaux (+ == === <> != !==)...................................................................................21 III-F-9 - Opérateurs spéciaux (@ ``)...............................................................................................................21 III-G - Types..........................................................................................................................................................21 III-G-1 - Préambule......................................................................................................................................... 21 III-G-2 - Type chaîne de caractères (string)...................................................................................................22 III-G-3 - Type numérique (int, float)................................................................................................................24 III-G-4 - Types spéciaux (null resource object).............................................................................................. 24 III-G-5 - Fonctions utiles................................................................................................................................. 25 III-H - Variables.....................................................................................................................................................26 III-H-1 - Syntaxe..............................................................................................................................................26 III-H-2 - Superglobales....................................................................................................................................28 III-H-3 - Références........................................................................................................................................ 28 III-H-4 - Fonctions utiles................................................................................................................................. 29 III-H-5 - Bonnes pratiques.............................................................................................................................. 29 III-I - Constantes...................................................................................................................................................30 III-I-1 - Syntaxe............................................................................................................................................... 30 III-I-2 - Constantes magiques......................................................................................................................... 31 III-I-3 - Fonctions utiles................................................................................................................................... 31 III-I-4 - Utilisation.............................................................................................................................................31 III-J - Tableaux......................................................................................................................................................32 III-J-1 - Syntaxe...............................................................................................................................................32 III-J-2 - Pointeur interne..................................................................................................................................34 III-J-3 - Fonctions utiles.................................................................................................................................. 34 III-K - Structures de contrôle................................................................................................................................35 III-K-1 - Conditionnelle "if"...............................................................................................................................35 III-K-2 - Alternative "switch"............................................................................................................................ 35 III-K-3 - Boucle "for"........................................................................................................................................37 III-K-4 - Boucle "while"....................................................................................................................................38 III-K-5 - Boucle "do while"...............................................................................................................................39 Cours de PHP 5 par Guillaume Rossolini - 3 - Copyright ® 2008 Guillaume Rossolini. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://g-rossolini.developpez.com/tutoriels/php/cours/ III-K-6 - Boucle "each".................................................................................................................................... 40 III-K-7 - Boucle "foreach"................................................................................................................................ 40 III-L - Fonctions.................................................................................................................................................... 41 III-L-1 - Syntaxe.............................................................................................................................................. 41 III-L-2 - Visibilité des variables....................................................................................................................... 42 III-L-3 - Fonctions et constantes utiles........................................................................................................... 43 IV - Programmation Orientée Objet (POO)...............................................................................................................45 IV-A - Modèle objet.............................................................................................................................................. 45 IV-A-1 - Bref historique................................................................................................................................... 45 IV-A-2 - Terminologie...................................................................................................................................... 45 IV-A-3 - Les mots réservés.............................................................................................................................45 IV-A-4 - Syntaxe..............................................................................................................................................46 IV-A-5 - Droits d'accès....................................................................................................................................46 IV-A-6 - Résolution de portée.........................................................................................................................48 IV-A-7 - Interfaces...........................................................................................................................................49 IV-A-8 - Références et clônage......................................................................................................................50 IV-A-9 - Late Static Bindings (LSB)................................................................................................................51 IV-A-10 - Exceptions.......................................................................................................................................53 IV-A-11 - Fonctions et constantes utiles.........................................................................................................53 IV-B - Espaces de noms......................................................................................................................................54 IV-B-1 - Introduction........................................................................................................................................54 IV-B-2 - Syntaxe..............................................................................................................................................54 IV-B-3 - Exemple d'utilisation..........................................................................................................................55 V - Configuration par le fichier php.ini...................................................................................................................... 58 V-A - Introduction................................................................................................................................................. 58 V-B - Core............................................................................................................................................................ 58 V-B-1 - short_open_tag...................................................................................................................................58 V-B-2 - output_buffering..................................................................................................................................59 V-B-3 - safe_mode..........................................................................................................................................59 V-B-4 - disable_*.............................................................................................................................................59 V-B-5 - max_*_time.........................................................................................................................................59 V-B-6 - memory_limit...................................................................................................................................... 60 V-B-7 - error_reporting....................................................................................................................................60 V-B-8 - display_errors.....................................................................................................................................61 V-B-9 - display_startup_errors........................................................................................................................61 V-B-10 - log_errors......................................................................................................................................... 61 V-B-11 - error_prepend_string........................................................................................................................ 61 V-B-12 - error_log........................................................................................................................................... 62 V-B-13 - register_globals................................................................................................................................ 62 V-B-14 - post_max_size..................................................................................................................................62 V-B-15 - magic_quotes_*................................................................................................................................62 V-B-16 - default_mimetype............................................................................................................................. 63 V-B-17 - default_charset.................................................................................................................................63 V-B-18 - include_path..................................................................................................................................... 63 V-B-19 - extension_dir.................................................................................................................................... 63 V-B-20 - enable_dl..........................................................................................................................................63 V-B-21 - upload_max_filesize.........................................................................................................................64 V-B-22 - allow_url_*........................................................................................................................................64 V-C - Modules...................................................................................................................................................... 64 V-C-1 - Date....................................................................................................................................................64 V-C-2 - mail function.......................................................................................................................................64 V-C-3 - Session...............................................................................................................................................65 V-C-4 - Tidy.....................................................................................................................................................65 V-D - Extensions.................................................................................................................................................. 65 VI - Concepts fondamentaux.....................................................................................................................................66 VI-A - Fonctionnement d'un script........................................................................................................................66 VI-A-1 - Introduction........................................................................................................................................66 VI-A-2 - Contrôle de l'exécution......................................................................................................................67 Cours de PHP 5 par Guillaume Rossolini - 4 - Copyright ® 2008 Guillaume Rossolini. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://g-rossolini.developpez.com/tutoriels/php/cours/ VI-A-2-a - Arrêt du script...........................................................................................................................67 VI-A-2-b - Contrôle d'erreurs.....................................................................................................................67 VI-A-3 - Contrôle du flux de sortie................................................................................................................. 67 VI-B - Structure d'un script...................................................................................................................................68 VI-C - Inclure un script dans un autre script....................................................................................................... 70 VI-C-1 - Introduction........................................................................................................................................70 VI-C-2 - Les instructions include, include_once, require et require_once......................................................72 VI-C-3 - Chargement automatique de classes (inclusion implicite)................................................................72 VI-C-4 - Dangers.............................................................................................................................................73 VI-C-5 - Bonnes pratiques.............................................................................................................................. 73 VI-D - Sécurité au niveau du script..................................................................................................................... 75 VI-D-1 - Introduction........................................................................................................................................75 VI-D-2 - Validation des données.....................................................................................................................75 VI-D-3 - Filtrage des données........................................................................................................................ 76 VI-D-4 - Utilisation des données.....................................................................................................................77 VI-D-5 - Dangers.............................................................................................................................................77 VI-D-6 - Bonnes pratiques.............................................................................................................................. 78 VI-E - En-têtes HTTP (headers).......................................................................................................................... 78 VI-E-1 - Introduction........................................................................................................................................78 VI-E-2 - Quand faut-il envoyer les en-têtes ?.................................................................................................79 VI-E-3 - Dangers.............................................................................................................................................81 VI-E-4 - Bonnes pratiques.............................................................................................................................. 81 VI-F - Liens, URLs et paramètres GET............................................................................................................... 81 VI-F-1 - Introduction........................................................................................................................................81 VI-F-2 - Utilisation........................................................................................................................................... 82 VI-F-3 - Construire une bonne URL............................................................................................................... 83 VI-F-4 - Construire un bon lien (balise HTML)...............................................................................................84 VI-F-5 - Dangers............................................................................................................................................. 84 VI-F-6 - Bonnes pratiques.............................................................................................................................. 84 VI-G - Encodage des caractères......................................................................................................................... 84 VI-G-1 - Introduction....................................................................................................................................... 84 VI-G-2 - Encodage du script : système de fichiers.........................................................................................87 VI-G-3 - Encodage du document : entités HTML...........................................................................................88 VI-G-4 - Encodage d'URL : la RFC 3986.......................................................................................................88 VI-G-5 - Entités HTML + RFC 3986...............................................................................................................90 VI-G-6 - Exemple d'encodage UTF-8.............................................................................................................91 VI-G-7 - Exemple d'encodage ISO.................................................................................................................92 VI-G-8 - Exemple de caractères UTF-8 encodés en ISO.............................................................................. 92 VI-G-9 - Exemple de caractères ISO encodés en UTF-8.............................................................................. 93 VI-G-10 - Espace occupé par l'encodage...................................................................................................... 94 VI-G-11 - Dangers...........................................................................................................................................95 VI-G-12 - Bonnes pratiques............................................................................................................................95 VI-G-13 - Le module iconv............................................................................................................................. 96 VI-G-14 - L'extension mbstring.......................................................................................................................97 VI-G-15 - Expressions régulières (PCRE) et Unicode................................................................................... 98 VII - Manipulation de données.................................................................................................................................. 99 VII-A - Bases de données relationnelles............................................................................................................. 99 VII-A-1 - Introduction.......................................................................................................................................99 VII-A-2 - Accès aux données..........................................................................................................................99 VII-A-3 - Performances................................................................................................................................. 101 VII-A-4 - Bonnes pratiques........................................................................................................................... 102 VII-B - Fichiers XML...........................................................................................................................................106 VII-B-1 - Introduction.....................................................................................................................................106 VII-B-2 - Lecture : SimpleXML......................................................................................................................106 VII-B-3 - Écriture : DOM............................................................................................................................... 107 VII-C - Services Web..........................................................................................................................................109 VII-C-1 - Introduction.....................................................................................................................................109 VII-C-2 - SOAP (anciennement "Simple Object Access protocol").............................................................. 110 Cours de PHP 5 par Guillaume Rossolini - 5 - Copyright ® 2008 Guillaume Rossolini. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://g-rossolini.developpez.com/tutoriels/php/cours/ VII-C-3 - Remote Procedure Calls (RPC).................................................................................................... 111 VII-C-4 - Service-oriented architecture (SOA)..............................................................................................112 VII-C-5 - REpresentational State Transfer (REST).......................................................................................114 VII-C-6 - Conclusion......................................................................................................................................116 VII-D - Autres formats : PDF, ZIP, Flash, images, etc....................................................................................... 116 VIII - Exemples d'application................................................................................................................................... 117 VIII-A - Introduction............................................................................................................................................ 117 VIII-B - Application simple..................................................................................................................................117 VIII-B-1 - Introduction....................................................................................................................................117 VIII-B-2 - Les scripts.....................................................................................................................................117 VIII-B-3 - Avantages......................................................................................................................................121 VIII-B-4 - Inconvénients................................................................................................................................ 121 VIII-C - Inclusions...............................................................................................................................................122 VIII-C-1 - Introduction....................................................................................................................................122 VIII-C-2 - Les scripts.....................................................................................................................................122 VIII-C-3 - Nouveaux avantages.................................................................................................................... 125 VIII-C-4 - Nouveaux inconvénients...............................................................................................................125 VIII-D - Sans l'extension ".php"..........................................................................................................................126 VIII-D-1 - Introduction....................................................................................................................................126 VIII-D-2 - Les scripts modifiés...................................................................................................................... 126 VIII-D-3 - Nouveaux avantages.................................................................................................................... 129 VIII-D-4 - Nouveaux inconvénients...............................................................................................................129 VIII-E - Modèles (classes pour la BDD).............................................................................................................129 VIII-E-1 - Introduction....................................................................................................................................129 VIII-E-2 - Les scripts.....................................................................................................................................130 VIII-E-3 - Nouveaux avantages.....................................................................................................................135 VIII-E-4 - Nouveaux inconvénients............................................................................................................... 135 VIII-F - URL Rewriting, ou Routage...................................................................................................................135 VIII-F-1 - Introduction....................................................................................................................................135 VIII-F-2 - Les scripts..................................................................................................................................... 136 VIII-F-3 - Nouveaux avantages.....................................................................................................................138 VIII-F-4 - Nouveaux inconvénients............................................................................................................... 138 VIII-G - Design pattern MVC (modèle-vue-contrôleur)...................................................................................... 139 VIII-G-1 - Introduction................................................................................................................................... 139 VIII-G-2 - Tous les scripts.............................................................................................................................140 VIII-G-3 - Conclusion.................................................................................................................................... 148 IX - Démarche qualité..............................................................................................................................................149 IX-A - Introduction.............................................................................................................................................. 149 IX-B - Environnements....................................................................................................................................... 149 IX-B-1 - Introduction......................................................................................................................................149 IX-B-2 - Serveur "dev".................................................................................................................................. 149 IX-B-3 - Serveur "staging/test"......................................................................................................................149 IX-B-4 - Serveur "production/live".................................................................................................................150 IX-B-5 - Conclusion.......................................................................................................................................150 IX-C - Tests.........................................................................................................................................................150 IX-C-1 - Introduction......................................................................................................................................150 IX-C-2 - Tests unitaires................................................................................................................................. 150 IX-C-3 - Test-driven development (TDD)......................................................................................................150 IX-C-4 - Conclusion.......................................................................................................................................151 IX-D - Débogage................................................................................................................................................ 151 IX-D-1 - Introduction......................................................................................................................................151 IX-D-2 - Xdebug............................................................................................................................................151 IX-E - Motifs de conception (design patterns)................................................................................................... 152 IX-E-1 - Introduction......................................................................................................................................152 IX-E-2 - Pattern MVC....................................................................................................................................152 IX-E-3 - Pattern Singleton.............................................................................................................................152 IX-E-4 - Conclusion.......................................................................................................................................153 IX-F - Frameworks..............................................................................................................................................153 Cours de PHP 5 par Guillaume Rossolini - 6 - Copyright ® 2008 Guillaume Rossolini. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://g-rossolini.developpez.com/tutoriels/php/cours/ IX-F-1 - uploads/s1/ cours-de-php-5.pdf

  • 25
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jul 18, 2021
  • Catégorie Administration
  • Langue French
  • Taille du fichier 1.5906MB