Syntaxe du langage PHP

Cours utilisations de Langage PHP, tutoriel & guide de travaux pratiques en pdf.

I – Introduction
I-A – Remerciements
I-B – Préambule
I-C – Problématique
I-D – Communauté
I-E – Outils de développement
I-F – Documentation
I-G – Utilisations de PHP
I-G-1 – Exemple Web
I-G-2 – Exemple « CLI »
I-G-3 – Exemple « GUI »
II – Exemples de scripts (mise en jambe)
II-A – Exécution des scripts d’exemple
II-B – Affichage
II-C – Boucles
III – Syntaxe du langage PHP
III-A – Préambule
III-B – Présentation du code
III-C – Parenthèses
III-D – Accolades
III-E – Commentaires
III-F – Opérateurs
III-F-1 – Arithmétique (+ – * / %)
III-F-2 – Affectation de variable (= += -= *= /==)
III-F-3 – Comparaison (== === != <> !== > >= < <= instanceof)
III-F-4 – Condition (?)
III-F-5 – Incrémentation / diminution (++ –)
III-F-6 – Arithmétique logique, aka opérateurs de bits (& |)
III-F-7 – Comparaison logique (&& || and or)
III-F-8 – Opérateurs de tableaux (+ == === <> != !==)
III-F-9 – Opérateurs spéciaux (@ « )
III-G – Types
III-G-1 – Préambule
III-G-2 – Type chaîne de caractères (string)
III-G-3 – Type numérique (int, float)
III-G-4 – Types spéciaux (null resource object)
III-G-5 – Fonctions utiles
III-H – Variables
III-H-1 – Syntaxe
III-H-2 – Superglobales
III-H-3 – Références
III-H-4 – Fonctions utiles
III-H-5 – Bonnes pratiques
III-I – Constantes
III-I-1 – Syntaxe
III-I-2 – Constantes magiques
III-I-3 – Fonctions utiles
III-I-4 – Utilisation
III-J – Tableaux
III-J-1 – Syntaxe
III-J-2 – Pointeur interne
III-J-3 – Fonctions utiles
III-K – Structures de contrôle
III-K-1 – Conditionnelle « if »
III-K-2 – Alternative « switch »
III-K-3 – Boucle « for »
III-K-4 – Boucle « while »
III-K-5 – Boucle « do while »
III-K-6 – Boucle « each »
III-K-7 – Boucle « foreach »
III-L – Fonctions
III-L-1 – Syntaxe
III-L-2 – Visibilité des variables
III-L-3 – Fonctions et constantes utiles
IV – Programmation Orientée Objet (POO)
IV-A – Modèle objet
IV-A-1 – Bref historique
IV-A-2 – Terminologie
IV-A-3 – Les mots réservés
IV-A-4 – Syntaxe
IV-A-5 – Droits d’accès
IV-A-6 – Résolution de portée
IV-A-7 – Interfaces
IV-A-8 – Références et clônage
IV-A-9 – Late Static Bindings (LSB)
IV-A-10 – Exceptions
IV-A-11 – Fonctions et constantes utiles
IV-B – Espaces de noms
IV-B-1 – Introduction
IV-B-2 – Syntaxe
IV-B-3 – Exemple d’utilisation
V – Configuration par le fichier php.ini
V-A – Introduction
V-B – Core
V-B-1 – short_open_tag
V-B-2 – output_buffering
V-B-3 – safe_mode
V-B-4 – disable_*
V-B-5 – max_*_time
V-B-6 – memory_limit
V-B-7 – error_reporting
V-B-8 – display_errors
V-B-9 – display_startup_errors
V-B-10 – log_errors
V-B-11 – error_prepend_string
V-B-12 – error_log
V-B-13 – register_globals
V-B-14 – post_max_size
V-B-15 – magic_quotes_*
V-B-16 – default_mimetype
V-B-17 – default_charset
V-B-18 – include_path
V-B-19 – extension_dir
V-B-20 – enable_dl
V-B-21 – upload_max_filesize
V-B-22 – allow_url_*
V-C – Modules
V-C-1 – Date
V-C-2 – mail function
V-C-3 – Session
V-C-4 – Tidy
V-D – Extensions
VI – Concepts fondamentaux
VI-A – Fonctionnement d’un script
VI-A-1 – Introduction
VI-A-2 – Contrôle de l’exécution
VI-A-2-a – Arrêt du script
VI-A-2-b – Contrôle d’erreurs
VI-A-3 – Contrôle du flux de sortie
VI-B – Structure d’un script
VI-C – Inclure un script dans un autre script
VI-C-1 – Introduction
VI-C-2 – Les instructions include, include_once, require et require_once
VI-C-3 – Chargement automatique de classes (inclusion implicite)
VI-C-4 – Dangers
VI-C-5 – Bonnes pratiques
VI-D – Sécurité au niveau du script
VI-D-1 – Introduction
VI-D-2 – Validation des données
VI-D-3 – Filtrage des données
VI-D-4 – Utilisation des données
VI-D-5 – Dangers
VI-D-6 – Bonnes pratiques
VI-E – En-têtes HTTP (headers)
VI-E-1 – Introduction
VI-E-2 – Quand faut-il envoyer les en-têtes ?
VI-E-3 – Dangers
VI-E-4 – Bonnes pratiques
VI-F – Liens, URLs et paramètres GET
VI-F-1 – Introduction
VI-F-2 – Utilisation
VI-F-3 – Construire une bonne URL
VI-F-4 – Construire un bon lien (balise HTML)
VI-F-5 – Dangers
VI-F-6 – Bonnes pratiques
VI-G – Encodage des caractères
VI-G-1 – Introduction
VI-G-2 – Encodage du script : système de fichiers
VI-G-3 – Encodage du document : entités HTML
VI-G-4 – Encodage d’URL : la RFC 1738
VI-G-5 – Entités HTML + RFC 1738
VI-G-6 – Exemple d’encodage UTF-8
VI-G-7 – Exemple d’encodage ISO
VI-G-8 – Exemple de caractères UTF-8 encodés en ISO
VI-G-9 – Exemple de caractères ISO encodés en UTF-8
VI-G-10 – Espace occupé par l’encodage
VI-G-11 – Dangers
VI-G-12 – Bonnes pratiques
VI-G-13 – Le module iconv
VI-G-14 – L’extension mbstring
VI-G-15 – Expressions régulières (PCRE) et Unicode.
VII – Manipulation de données
VII-A – Bases de données relationnelles
VII-A-1 – Introduction
VII-A-2 – Accès aux données
VII-A-3 – Performances
VII-A-4 – Bonnes pratiques
VII-B – Fichiers XML
VII-B-1 – Introduction
VII-B-2 – Lecture : SimpleXML
VII-B-3 – Écriture : DOM
VII-C – Services Web
VII-C-1 – Introduction
VII-C-2 – SOAP (anciennement « Simple Object Access protocol »)
VII-C-3 – Remote Procedure Calls (RPC)
VII-C-4 – Service-oriented architecture (SOA)
VII-C-5 – REpresentational State Transfer (REST)
VII-C-6 – Conclusion
VII-D – Autres formats : PDF, ZIP, Flash, images, etc
VIII – Exemples d’application
VIII-A – Introduction
VIII-B – Application simple
VIII-B-1 – Introduction
VIII-B-2 – Les scripts
VIII-B-3 – Avantages
VIII-B-4 – Inconvénients
VIII-C – Inclusions
VIII-C-1 – Introduction
VIII-C-2 – Les scripts
VIII-C-3 – Nouveaux avantages
VIII-C-4 – Nouveaux inconvénients
VIII-D – Sans l’extension « .php »
VIII-D-1 – Introduction
VIII-D-2 – Les scripts modifiés
VIII-D-3 – Nouveaux avantages
VIII-D-4 – Nouveaux inconvénients
VIII-E – Modèles (classes pour la BDD)
VIII-E-1 – Introduction
VIII-E-2 – Les scripts
VIII-E-3 – Nouveaux avantages
VIII-E-4 – Nouveaux inconvénients
VIII-F – URL Rewriting, ou Routage
VIII-F-1 – Introduction
VIII-F-2 – Les scripts
VIII-F-3 – Nouveaux avantages
VIII-F-4 – Nouveaux inconvénients
VIII-G – Design pattern MVC (modèle-vue-contrôleur)
VIII-G-1 – Introduction
VIII-G-2 – Tous les scripts
VIII-G-3 – Conclusion
IX – Démarche qualité
IX-A – Introduction
IX-B – Environnements
IX-B-1 – Introduction
IX-B-2 – Serveur « dev »
IX-B-3 – Serveur « staging/test »
IX-B-4 – Serveur « production/live »
IX-B-5 – Conclusion
IX-C – Tests
IX-C-1 – Introduction
IX-C-2 – Tests unitaires
IX-C-3 – Test-driven development (TDD)
IX-C-4 – Conclusion
IX-D – Débogage
IX-D-1 – Introduction
IX-D-2 – Xdebug
IX-E – Motifs de conception (design patterns)
IX-E-1 – Introduction
IX-E-2 – Pattern MVC
IX-E-3 – Pattern Singleton
IX-E-4 – Conclusion
IX-F – Frameworks
IX-F-1 – Introduction
IX-F-2 – CakePHP
IX-F-3 – eZ Components
IX-F-4 – PEAR
IX-F-5 – symfony
IX-F-6 – Zend Framework
IX-F-7 – Conclusion
X – Optimisation
X-A – Optimiser un script PHP
X-B – Mise en cache
X-C – Compiler un script PHP
X-D – Compiler PHP
X-E – Développer une extension
XI – Aider la communauté
XI-A – Introduction
XI-B – Détection et correction de bugs
XI-C – Tester le code source de PHP
XI-D – Documentation
XI-E – Éducation
XII – Conclusion
XII-A – Épilogue
XII-B – Liens
XII-C – L’auteur

Introduction

Préambule
PHP est un l’un des langages de script les plus actifs sur le Web. Il permet de créer principalement des pages Web HTML mais aussi d’autres types de contenu comme des images, des animations Flash, des documents PDF, etc. Nous allons voir comment débuter dans ce langage et quels outils, quelles méthodes peuvent nous aider dans notre progression.
PHP peut être utilisé soit comme un langage de script répondant à des besoins simples et à court terme (c’est ce qu l’a fait connaître), soit comme un langage de programmation complexe permettant de mettre en place des applications d’entreprise ( programmation orientée objet, design patterns etc.).
Certaines parties de ce cours semblent répéter ce qui est déjà documenté sur le site officiel de PHP. Je ne souhaite pas reformuler le site entier, mais aborder certains concepts à ma manière. En cas de désaccord entre mes explications et la documentation officielle, c’est cette dernière qui fait foi et je vous serais reconnaissant de m’en faire part.

Problématique
À l’aube de l’an 2008, il n’est plus question de faire sa  » page Web perso » comme c’était la mode il y a quelques années. Le HTML statique est mort depuis longtemps, tandis qu’aujourd’hui le dynamisme a pris son envol avec AJAX(nous y reviendrons). Plus personne ne code son site  directement en HTML, mais utilise plutôt des scrits qui génèrent des pages HTML selon les informations qui sont en base de données.
Un langage de script permet d’utiliser une base de données pour construire un document HTML, qui n’est donc pas nécessairement identique à chaque consultation, sans que le webmestre n’ait eu à intervenir manuellement. Charge au développeur de choisir son langage de prédilection : ASP, JSP, PHP, RoR… Nous allons nous attacher ici exclusivement à PHP.

PHP est un langage de script, c’est-à-dire que le code est enregistré sous forme de fichier texte sur le disque dur, et qu’il est exécuté à la demande par un programme chargé de l’interpréter. C’est habituellement l’internaute (par l’intermédiare de son navigateur Web) qui demande l’exécution d’un script lorsqu’il consulte une page Web. La demande est reçue par le serveur Web (par exemple Apache HTTPD), qui se rend compte qu’il doit la sous traiter à PHP.
Notre objectif en tant que développeurs est de ne pas répéter le code source (ni le code HTML ni le code PHP, autant que possible). Nous allons utiliser des techniques permettant de « factoriser » le code source lorsque nous avons besoin d’un même bloc à plusieurs endroits, ainsi que d’autres techniques permettant à un collaborateur de savoir comment est structuré notre code avant même de l’avoir consulté.

Communauté
PHP est maintenu par une communauté ouverte d’utilisateurs dont l’auteur original, Rasmus Lerdorf, fait encore partie. Tout le monde est invité à aider dans la mesure de ses disponibilités et de ses compétences. Aider le projet peut prendre diverses formes comme la programmation du core ou d’extensions en langage C, une aide à la documentation, etc.
Les contributeurs de PHP viennent d’horizons très différents. Certains sont de simples utilisateurs du langage qui ont voulu participer à son amélioration, d’autres sont des chefs d’entreprise ou des responsables informatiques désireux de s’assurer que le langage qu’ils utilisent est maintenu ou qu’il correspond à leurs besoins, d’autres encore sont des chercheurs (IBM etc.) souhaitant ouvrir de nouveaux horizons au langage…

Outils de développement
Afin de commencer sur de bonnes bases, je vous propose de vous choisir un environnement de développement qui vous convient. Vous ne saurez probablement pas avec certitude que vous avez choisi le plus adapté tant que vous ne connaîtrez pas un peu PHP ; cependant, des sélections et des comparatifs ont déjà été faits, je vous propose donc de vous y reporter.
Pour le moment, le plus important est que votre éditeur sache colorer le code PHP et HTML. Le reste est secondaire, mais qu’il vous donne un accès facile à la documentation sera très appréciable. Vous pourrez changer d’éditeur à tout moment sans aucune conséquence.
Il vous faudra également installer un serveur sur votre machine de développement.

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Langage PHP (1844 KO) (Cours PDF)
Syntaxe du langage PHP

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *