Programmation Web Le langage PHP.

Slides:



Advertisements
Présentations similaires
Novembre 2005 – Michel Desconnets PHP : théorie Objectif : introduire les concepts globaux permettant d'aborder la programmation en PHP.
Advertisements

Présentation du Stage en Entreprise
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
(Classes prédéfinies – API Java)
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
TP n°1 PHP LES BASES Premier programme Affichage
Outils de développements
Personal Home Page / Hypertext Processor (PHP)
TP 3-4 BD21.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
FLSI602 Génie Informatique et Réseaux
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
Algorithme et programmation
14/06/07 Préparé par: Ing. Rodrigue Osirus (509) / , - Programmation Web coté Server avec.
Cours n°3 Les formulaires
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Développement d’applications web
Cours : Programmation Web
CPI/BTS 2 Programmation Web Introduction au PHP
HELHA informatique de gestion
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
IFT 6800 Atelier en Technologies d’information
Web dynamique PhP + MySQL AYARI Mejdi 2006
Chapitre 9 Les sous-programmes.
8PRO100 Éléments de programmation Les types composés.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Standard Template Library
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
Procédures et fonctions
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Animateur : Med HAIJOUBI
Structures des données
PHP 1° PARTIE : LES BASES © BTS IRIS 2002 [tv] Présentation Historique
PHP & My SQL.
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
Objectifs À la fin de ce cours, vous serez capables de :
JavaScript Nécessaire Web.
Gérer la sécurité des mots de passe et les ressources
LES PILES ET FILES.
La notion de type revisitée en POO
Les adresses des fonctions
JavaScript.
Créer des packages.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Strings et Tableaux en Java
Les types composés Les enregistrements.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
06:34:37 Programmation Web PHP Fonctions associées aux tableaux Jérôme CUTRONA
 Formulaires HTML : traiter les entrées utilisateur
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Mettre en formeExaminerManipuler Les fonctions printf() et sprintf Le traitement de chaîne de caractère La fonction printf() formate le contenu d'une chaîne.
Initiation au JavaScript
Cours de :.
CPI/BTS 2 Programmation Web Fonctions & Includes Prog Web CPI/BTS2 – M. Dravet – 02/11/2003 Dernière modification: 02/11/2003.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Transcription de la présentation:

Programmation Web Le langage PHP

1 - Le langage PHP Est un langage de script S’exécute : Dans un serveur, comme dépendance d’une 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

2 - Le langage PHP (1) Les avantages de PHP : De très nombreuses bibliothèques Une communauté de premier ordre : Réactivité de l’aide 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 »

3 - Le langage PHP (2) Les défauts de PHP : Des premières librairies peu rigoureuses (problème de l’open-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 »

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 d’une page WEB Le programme-script Code PHP majoritaire Le page Web doit être lue comme un « programme » La structure est celle d’un code source qui produit des sorties : echo "…", print("…"), etc.

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 : <?php function tree_up($node){ ... } function tree_down($node){ ... ?>

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 : <?php $CFG['host'] = 'localhost'; $CFG['dblogin'] = 'toto'; $CFG['dbpassword'] = 'monpasse'; ?>

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

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) ?

9 - 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

10 - 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"; substitue les VARIABLES et les retour ligne

11 - 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) for ($i = 0 ; $i < 10 ; $i++){ $var[] = rand(); } // le tableau contient 10 cases de 0 à 9

12 - 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);

13 - 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 $CFG 'host' 'localhost' 'login' 'toto' 'maxDelay' 2000 array_keys($CFG) array_values($CFG)

14 - 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

15 - 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

16 - 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.

17 - 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

18 - 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 = …; return $valretour;

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

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

21 - 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()

22 - 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){

23 - 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 Dates et heures Systeme de fichiers Calendrier Mail, Zip MySQL Images

24 - 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

25 - 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

25 - 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

26 - 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).

27 - 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.

Fin du cours