PHP : Les Fondamentaux
Total Page:16
File Type:pdf, Size:1020Kb
PHP : les fondamentaux Achref El Mouelhi Docteur de l’universite´ d’Aix-Marseille Chercheur en programmation par contrainte (IA) Ingenieur´ en genie´ logiciel [email protected] H & H: Research and Training 1 / 218 Plan 1 Introduction 2 Avant de commencer 3 Premier projet PHP 4 Commentaires 5 Variables 6 Quelques operations´ sur les variables 7 Fonctions utiles pour les chaˆınes de caracteres` H & H: Research and Training 2 / 218 Plan 8 Conditions et boucles if if ... else if ... elseif ... else switch Elvis operator Null coalescing while do ... while for 9 Tableaux Tableaux indexes´ Tableaux associatifs Tableaux multidimensionnels 10 Constantes H & H: Research and Training 3 / 218 Plan 11 Fonctions Fonctions nommees´ Fonctions anonymes Valeurs par defaut´ pour les parametres` Fonctions a` nombre indetermin´ e´ de parametres` Decomposition´ Passage par ref´ erence´ Fonction de retour (callback) Fonctions flech´ ees´ (Arrow functions) Typage de parametres` Typage de valeurs de retour Typage strict Type Nullable Fonctions gen´ eratrices´ H & H: Research and Training 4 / 218 Plan 12 Variables locales et globales 13 Math 14 Date 15 Fichiers Ouverture Fermeture Utilisation H & H: Research and Training 5 / 218 Introduction PHP PHP Initialement pour Personal Home Page ensuite pour PHP : Hypertext Preprocessor) langage de programmation open-source c oriente-objet´ et procedural´ imperatif´ interpret´ e´ faiblement type´ c Achref EL MOUELHI cre´e´ en 1994 par Rasmus Lerdorf dans le cadre d’un projet personnel pour gerer´ les visiteurs de son site web syntaxe tres` proche du C (procedural),´ C++ (procedural,´ oriente-objet)´ et Java (oriente-objet)´ H & H: Research and Training 6 / 218 Introduction PHP PHP, pourquoi ? Langage de haut niveau (pas de gestion de memoire,´ pas d’allocation dynamique, pas de pointeur... comme en c C et C++) Facile a` apprendre et a` utiliser Nombreuses documentations, supports videos,´ plusieurs exemples sur internet Enorme´ communautAchrefe´ : un EL des MOUELHI langages les plus utilises´ dans le monde c Permettant de developper´ rapidement des programmes portables : Windows, Mac OS, Linux... H & H: Research and Training 7 / 218 Quelques technologies concurrentes a` PHP JSP (Java Server Pages) : contenu dynamique ecrit´ en Java ASP.Net (Active Server Pages) : contenu dynamique pouvant etreˆ ecrit´ dans tous les langages de la plateforme .Net (C#, VB.Net...) Introduction Quel type d’application ? Applications utilisables en ligne de commande (scripting) La partie serveur pour applications web c applications mobiles sites web dynamiques Services web c Achref EL MOUELHI H & H: Research and Training 8 / 218 Introduction Quel type d’application ? Applications utilisables en ligne de commande (scripting) La partie serveur pour applications web c applications mobiles sites web dynamiques Services web Achref EL MOUELHI Quelques technologies c concurrentes a` PHP JSP (Java Server Pages) : contenu dynamique ecrit´ en Java ASP.Net (Active Server Pages) : contenu dynamique pouvant etreˆ ecrit´ dans tous les langages de la plateforme .Net (C#, VB.Net...) H & H: Research and Training 8 / 218 Introduction Dates de sorties de quelques versions de PHP 8 juin 1995 : Version 1.0. 1er novembre 1997 : Version 2.0. 6 juin 1998 : Version 3.0. 22 mai 2000 : Version 4.0. 10 decembre´ 2001 : Version 4.1. c 13 juillet 2004 : Version 5.0. 24 novembre 2005 : Version 5.1. 2 novembre 2006 : Version 5.2. 30 juin 2009 : Version 5.3. 1er mars 2012 : Version 5.4. 20 juin 2013 : VersionAchref 5.5. EL MOUELHI 28 aoutˆ 2014 c : Version 5.6. 3 decembre´ 2015 : Version 7.0. 1 decembre´ 2016 : Version 7.1. 30 novembre 2017 : Version 7.2. 6 decembre´ 2018 : Version 7.3. 21 novembre 2019 : Version 7.4. H & H: Research and Training 9 / 218 Introduction PHP Requˆete Serveur HTTP Web HTTP c (index.php) index.php AchrefHTML EL MOUELHI c Interpr´eteur CSS + JS R´eponse PHP Base de HTTP donn´ees Client Serveur H & H: Research and Training 10 / 218 Sous Windows, on peut les trouver dans WAMP http://www.wampserver.com/ Introduction PHP De quoi on a besoin (le minimum) ? Un editeur´ de texte (Bloc-notes, Notepad++, Sublime Text...) Un serveur web (Apache) c Un interpreteur´ du langage PHP Et probablement un systeme` de gestion de base de donnees´ (gen´ eralement´ MySQL) c Achref EL MOUELHI H & H: Research and Training 11 / 218 Introduction PHP De quoi on a besoin (le minimum) ? Un editeur´ de texte (Bloc-notes, Notepad++, Sublime Text...) Un serveur web (Apache) c Un interpreteur´ du langage PHP Et probablement un systeme` de gestion de base de donnees´ (gen´ eralement´ MySQL) c Achref EL MOUELHI Sous Windows, on peut les trouver dans WAMP http://www.wampserver.com/ H & H: Research and Training 11 / 218 Quelques el´ ements´ dans le menu de demarrage´ de WAMP localhost : page de demarrage´ de WAMP phpMyAdmin : page web permettant la gestion des bases de donnees´ MySQL Repertoire´ www : emplacement des projets PHP sur le disque dur ... Introduction PHP Premiere` utilisation de WAMP Demarrer´ WAMP Cliquer sur WAMP dans la barre de demarrage´ et choisir Redemarrer´ les services c Si l’iconeˆ de WAMP n’est pas en vert, aller verifier´ http://forum.wampserver.com/read.php?1,88043 c Achref EL MOUELHI H & H: Research and Training 12 / 218 Introduction PHP Premiere` utilisation de WAMP Demarrer´ WAMP Cliquer sur WAMP dans la barre de demarrage´ et choisir Redemarrer´ les services c Si l’iconeˆ de WAMP n’est pas en vert, aller verifier´ http://forum.wampserver.com/read.php?1,88043 Quelques el´ ements´ Achref dans le menu de EL demarrage´ MOUELHI de WAMP localhost c : page de demarrage´ de WAMP phpMyAdmin : page web permettant la gestion des bases de donnees´ MySQL Repertoire´ www : emplacement des projets PHP sur le disque dur ... H & H: Research and Training 12 / 218 Introduction PHP On peut utiliser un IDE (Environnement de developpement´ integr´ e)´ pour eviter´ d’utiliser la console et les commandes c car un IDE integre` un compilateur lance´ memeˆ pendant l’ecriture´ du code pour profiter de la coloration syntaxique, l’auto-completion,´ l’indentation c Achref automatique... EL MOUELHI pour avoir une bonne structuration du projet H & H: Research and Training 13 / 218 Introduction PHP Exemple d’IDE pour PHP Eclipse c Netbeans WebStorm PHPStorm c Achref EL MOUELHI ... H & H: Research and Training 14 / 218 Introduction PHP Eclipse, pourquoi ? c open-source simple conseille´ pour les debutants´ Achref EL MOUELHI multi-langage c : Java, C++, PHP, Cobol, C#, JavaScript... H & H: Research and Training 15 / 218 Introduction Introduction c Eclipse : tel´ echargement´ https://www.eclipse.org/downloads/download.php?file =/oomph/epp/2019-12/R/eclipse-inst-win64.exe c Achref EL MOUELHI H & H: Research and Training 16 / 218 PHP Introduction c Achref EL MOUELHI c H & H: Research and Training 17 / 218 PHP Introduction c Achref EL MOUELHI c H & H: Research and Training 17 / 218 Introduction PHP Configuration d’Eclipse Au demarrage´ d’Eclipse, choisir le repertoire´ www de wamp64c comme workspace Aller Window > Preferences, saisir encoding Verifier´ dans toutes les sections que l’encodage utilise´ est l’UTF-8 c Achref EL MOUELHI Valider en cliquant sur Apply and close H & H: Research and Training 18 / 218 Remarque Certains anciens el´ ements´ PHP pred´ efinis´ ne respectent pas ces regles.` Avant de commencer PHP Les regles` de nommage en PHP Pour les classes : Le Pascal case c Pour les methodes,´ fonctions et variables : Le snake case Pour les noms de projets : Le Kebab case c Achref EL MOUELHI H & H: Research and Training 19 / 218 Avant de commencer PHP Les regles` de nommage en PHP Pour les classes : Le Pascal case c Pour les methodes,´ fonctions et variables : Le snake case Pour les noms de projets : Le Kebab case Achref EL MOUELHI Remarque c Certains anciens el´ ements´ PHP pred´ efinis´ ne respectent pas ces regles.` H & H: Research and Training 19 / 218 Avant de commencer PHP Le code PHP Les fichiers contenant un code PHP doivent avoir l’extension c .php Un bloc de code PHP est situe´ entre les deux balises suivantes <?php ... ?> Une page c PHPAchref est une page EL HTML MOUELHI qui contient une ou plusieurs balises PHP H & H: Research and Training 20 / 218 Avant de commencer PHP Les instructions c Chaque instruction se termine par ; Il est possible d’ecrire´ plusieurs instructions sur une memeˆ ligne (mais ce n’est pas une bonne pratique) Eclipse nousAchref facilite le formatage EL MOUELHI et l’indentation du code avec le raccourci c CTRL + Shift + F H & H: Research and Training 21 / 218 Remarque Aller verifier´ dans le repertoire´ www qu’un repertoire´ premier-cours-php a et´ e´ cre´e´ Premier projet PHP PHP Comment creer´ un projet sous Eclipse ? Aller dans File > New > PHP Project Remplir le champ Project name: avec premier-cours-php c puis cliquer sur Next Cliquer sur Finish c Achref EL MOUELHI H & H: Research and Training 22 / 218 Premier projet PHP PHP Comment creer´ un projet sous Eclipse ? Aller dans File > New > PHP Project Remplir le champ Project name: avec premier-cours-php c puis cliquer sur Next Cliquer sur Finish c Achref EL MOUELHI Remarque Aller verifier´ dans le repertoire´ www qu’un repertoire´ premier-cours-php a et´ e´ cre´e´ H & H: Research and Training 22 / 218 Premier projet PHP PHP Comment creer´ un fichier PHP ? c Faire clic droit sur le projet et aller dans New > PHP File Dans File name, saisir index.php et cliquer sur Next > Choisir New simple PHP file Achref EL MOUELHI Cliquer c sur Finish H & H: Research and Training 23 / 218 Premier projet PHP PHP Remplacer le contenu d’index.php par le suivant <!DOCTYPE html> <html> <head> c <meta charset="UTF-8"> <title>Premiere` page PHP</title> </head> <body> <?php Achref EL MOUELHI echo c "Hello world"; ?> </body> </html> H & H: Research and Training 24 / 218 Premier projet PHP PHP c Comment voir le resultat´ de cette page ? Faire clic droit sur le fichier index.php Choisir Run > PHP Web Application c Achref EL MOUELHI H & H: Research and Training 25 / 218 Premier projet PHP PHP Fonctions d’affichage : echo et print utilisables avec et sans parentheses.` echo n’a pas de valeur de retour.