La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Programmation Web Le langage PHP. 2 1 - Le langage PHP Est un langage de script Sexécute : –Dans un serveur, comme dépendance dune requête –En ligne.

Présentations similaires


Présentation au sujet: "1 Programmation Web Le langage PHP. 2 1 - Le langage PHP Est un langage de script Sexécute : –Dans un serveur, comme dépendance dune requête –En ligne."— Transcription de la présentation:

1 1 Programmation Web Le langage PHP

2 2 1 - Le langage PHP Est un langage de script Sexécute : –Dans un serveur, comme dépendance dune requête –En ligne de commande comme une alternative aux scripts système (vs. shell ou perl). PHP, Perl et les shell scripts ont une puissance quasiment équivalente

3 3 2 - Le langage PHP (1) Les avantages de PHP : –De très nombreuses bibliothèques –Une communauté de premier ordre : Réactivité de laide technique Rapidité de résolution de problèmes Fréquence des correctifs et fiabilité des librairies –Une gestion pratique et efficace des variables et de la mémoire –Des structures de données et objets « opportunistes »

4 4 3 - Le langage PHP (2) Les défauts de PHP : –Des premières librairies peu rigoureuses (problème de lopen-source contributif) –Une encapsulation faible (modèle objet simple) => réutilisabilité pas évidente à organiser. –Un langage facile, donc peu élitiste (problème de légo des informaticiens, par rapport aux profanes) –Des limites de performances, dues aux limites architecturales de son environnement –Des performances faibles comparé à la programmation « lourde »

5 5 4 - Les fichiers PHP Deux grands modes du langage : –La génération de sortie : fonction initiale de son ancêtre PHP-FI HTML majoritaire La page PHP est une page Web « automatisée » Sa structure est celle dune page WEB –Le programme-script Code PHP majoritaire Le page Web doit être lue comme un « programme » La structure est celle dun code source qui produit des sorties : echo "…", print("…"), etc.

6 6 5 - Les fichiers PHP (2) Deux modes plus "mineurs" : –Le fichier librairie : Destiné à être "inclus" : include_once "treelib.inc.php"; NE contient QUE des fonctions :

7 7 6 - Les fichiers PHP (3) Deux modes plus "mineurs" (suite) : –Le fichier de paramètres : Destiné à être "inclus" : include_once "config.inc.php"; NE contient QUE des déclarations de variables :

8 8 7 - Les bases du langage Les commentaires –Trois formes de base : // commentaires ligne /* commentaires bloc */ # commentaires de type PERL/Shell –Une forme "collectable" (PhpDoc) : /** CFG object $objvalue definition *... */

9 9 8 - Les bases du langage (2) Les variables –Modèle unifié de variable : $ + un nom $var = 1; $var = 3.2E+4; $var = "du texte"; $var = array(); $var = new Object(); –Une variable peut donc être n'importe quoi, y compris rien du tout : echo (isset($var)) ? 'initialisée' ; 'rien' ; –isXXXX() permet de savoir... : ex : isarray($var) ?

10 Les bases du langage (3) En général : –Les variables n'ont pas de type déclaré –Les variables ne déclarent pas –Suivant le réglage de PHP, l'utilisation d'une variable non initialisée : ne signale rien, la variable vaut 0 ou '' ou null suivant son utilisation. Signale une notice : Notice: Undefined variable: existepas in D:\wwwroot\WWW-MOODLE1_8_2- PHP\mod\brainstorm\operators\categorize\organize.php on line 14

11 Les bases du langage (4) Les chaînes de caractères –Chaînes littérales $str = 'ne substitue ni $variables ni les \nretour lignes'; echo $str; ne substitue ni $variables ni les \nretour lignes –Chaînes "substituantes" $variable = 'VARIABLES'; $str = "substitue les $variables et les \nretour lignes"; echo $str; substitue les VARIABLES et les retour ligne

12 Les bases du langage (5) Cas particulier : les tableaux –Un tableau s'utilise, –il se déclare mais ne ne s'alloue pas ( C) $var = array(); $var[3] = 4.2; // le tableau contient 4 cases –Peut se remplir itérativement (push) $var = array(); for ($i = 0 ; $i < 10 ; $i++){ $var[] = rand(); } // le tableau contient 10 cases de 0 à 9

13 Les bases du langage (6) Tableaux suite : les tableaux associatifs –Les "hashtables" sont des structures ESSENTIELLES à PHP. –Une 'hashtable" est un tableau qui associe des clefs à des valeurs : $CFG = array(); $CFG['host'] = 'localhost'; $CFG['login'] = 'toto'; $CFG['maxDelay'] = 2000; // msec –ou encore : $CFG = array('host' => 'localhost', 'login' => 'toto', 'maxDelay' => 2000);

14 Les bases du langage (7) Tableaux suite : les tableaux associatifs (2) On peut mettre n'importe quoi dans la valeur => des objets ou des autres tableaux ou hashes !! Toutes les librairies de tableau tiennent compte de cette ambivalence 'host''localhost' 'login''toto' 'maxDelay'2000 $CFG array_keys($CFG)array_values($CFG)

15 Les bases du langage (8) Augmentation de la dimension des tableaux –Pour des tableaux simples, comme en C : $TAB = array(); $TAB[1][0] = 4; –Les "cases" non initialisées valent 0 ou chaîne vide, etc. –Un tableau à dimension multiple est TOUJOURS un tableau de tableaux : $TAB = array(1,2,6,array(2,3),array(3,4,7)); –Cas du tableau associatif : $CFG = array('forum' => array('canpost' => 1)); echo $CFG['forum']['canpost']; –Une construction associative complexe forme un arbre

16 Les bases du langage (9) Structures et objets –On parle peu de structures en PHP. Tout ce qui contient des membres est objet. –Les objets peuvent être construits de façon opportuniste : $obj->nom = 'Champagne Mumm'; $obj->prix = 10.5; $obj->quantité = 10; Constitue une instance "à la volée". –Les membres peuvent être de toute nature : valeurs texte tableaux / hashes objets

17 Les bases du langage (10) Structures et objets –Les objets peuvent être également déclarés en "classes". –Ceci permet d'ajouter des fonctions dans l'objet (méthodes -> Cf cours 2° semestre). –Le modèle objet de PHP reste un modèle léger. –En l'absence de persistance mémoire, son usage reste un "plus" mais accessoire. –Hors sujet pour ce cours.

18 Fonctions Fonction PHP –Une fonction est définie par son nom et ses paramètres : function maFonction($parm1, $parm2, $parm3=0){ … code de la fonction … } –Si des valeurs par défaut sont données on peut appeler la fonction sans ces paramètres : $ret = maFonction($val1, 'toto'); $ret = maFonction(1, 'titi', 4); sont tous deux valides

19 Fonctions Une fonction peut être définie "dans le code" : if ( condition ){ function f(…){ … code de la fonction … } … suite du if … } Retour de fonction –Une fonction renvoie toujours quelque chose (au pire false ) function maFonction(…){ $valretour = …; … code de la fonction … return $valretour; }

20 20 La visibilité des variables utilisées dans une fonction est "locale" par défaut $var = 2; function f(…){ $var = 3; echo $var."\n"; } echo $var."\n"; Affiche toujours 3 puis 2. global $var $var = 2; function f(…){ global $var; $var = 3; echo $var."\n"; } echo $var."\n"; 19 - Variables globales Espace de f Espace global Espace de f

21 21 Certaines variables sont "implicitement" accessibles de partout, sans nécessité de faire appel à global Variables superglobales Tableaux liés au contexte Web $_GET $_POST $_COOKIE $_FILES $_REQUEST $_SESSION Tableaux d'informations d'environnement système $_SERVER $_ENV

22 Variables et fonctions variables L'utilisation d'une variable correspond, en fait, à l'utilisation d'une clef dans un hash : $var = 2; $__['var'] = 2; // représentation virtuelle Il est donc possible de mettre le nom d'une variable dans une variable et d'en voir le contenu : $var = 'une variable'; $var1 = 'var'; echo $$var1; // ecrit "une variable" On peut faire la même chose avec des fonctions $var = 'unefonction'; $res = $var(); // exécute la fonction unefonction()

23 Fonctions variables (1) Les fonctions variables permettent de créer de la modularité : // Dans le module A function A_create(){ return $module; } function A_display($module){ } // Dans l'infradtructure foreach($modules as $module){ $createfunction = "{$module->name}create"; $displayfunction = "{$module->name}display"; $mod = $createfunction(); $displayfunction($mod); } // Dans le module B function B_create(){ return $module; } function B_display($module){ }

24 Librairies Le PHP contient de très nombreuses librairies. Les librairies, après un début un peu cafouilleux ont tendance à se professionnaliser. La plupart des librairies sont disponibles PAR DEFAUT. Les autres doivent être ajoutées dans php.ini. Les librairies totalement ESSENTIELLES : –Vous ne pouvez pas vous en passer : Tableaux Variables Les librairies TRES UTILES : Expressions régulières Expr. Régulières Perl Chaînes de caractères Variables Calendrier Mail, Zip MySQL Images Dates et heures Systeme de fichiers

25 Librairie "Variables" Fonctions d'interrogation de variables –empty -- Si une variable contient une valeur non nulle –is_array, is_object, is_scalar, is_resource, is_null –isset -- Si une variable est définie (existe) –is_callable -- Si l'argument peut être appelé comme fonction –is_bool, is_float, is_int, is_integer, is_numeric, is_real, is_string Fonctions de lecture de variable (transtypage) –floatval, intval, strval Fonctions de manipulation du type (transtypage) –gettype, settype Fonctions de conversion de stockage –serialize, unserialize

26 Librairie "Tableaux" Deux librairies dans une (ancienne et nouvelle array_XXXX() ) Construction de tableaux –array, list Ajout de données (unitaire) –array_pad, array_pop, array_push, array_shift, array_unshift Opérations array_diff_assoc, array_diff_uassoc, array_diff, array_intersect_assoc, array_intersect, array_reduce, array_slice, array_splice, array_sum, array_udiff_uassoc, array_udiff

27 Librairie "Tableaux" (2) Fonctions de tri –arsort, asort, sort, uasort, uksort, usort, krsort, ksort, rsort, natcasesort, natsort, array_multisort –Plus généralement : -u- : invoque un "callback utilisateur" -a- : tient compte des associations clefs-valeurs -r- : reverse Inversion clefs-valeurs –array_flip Opérations sur les valeurs –array_filter, array_change_key_case, array_reverse, array_unique

28 Librairie "Tableaux" (3) De nombreuses autres librairies ont des fonctions relatives aux tableaux. Exemple : –Dans la librairie "String" : join, split, explode, implode De nombreuses autres fonctions sont "array aware" : cela veut dire qu'elles ont un résultat différent selon qu'on leur fournit une valeur scalaire ou un tableau. (type "mixed" dans la doc).

29 Librairie "String" Près de 90 fonctions de manipulation des chaînes de caractères. Une librairie peu structurée. Les fonctions POSIX strXXXXX() –strcasecmp, strchr, strcmp, strcoll, strcspn, stripos, stristr, strlen, strncmp, strpos, strrchr, strrev, strripos, strrpos, strstr, strtok, strtolower, strtoupper, strtr Les fonctions d'échappement –strip_tags, stripcslashes, stripslashes, trim, html_entity_decode, htmlentities, htmlspecialchars, addcslashes, addslashes De très nombreuses autres.

30 30 Fin du cours


Télécharger ppt "1 Programmation Web Le langage PHP. 2 1 - Le langage PHP Est un langage de script Sexécute : –Dans un serveur, comme dépendance dune requête –En ligne."

Présentations similaires


Annonces Google