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

WebÉducation – 10 Juin 2004 Jonathan Dumas

Présentations similaires


Présentation au sujet: "WebÉducation – 10 Juin 2004 Jonathan Dumas"— Transcription de la présentation:

1 WebÉducation – 10 Juin 2004 Jonathan Dumas
Technicien en informatique Conseil du statut de la femme Téléphone : (418)

2 1ere Partie Introduction au PHP
Le PHP 1ere Partie Introduction au PHP

3 Historique « Le besoin est la mère de toutes les inventions... »
Besoin primaire: Pages Web dynamiques Applications Web Outils existant C/C++ Grande complexité Pas du tout taillé pour le besoin initial Perl (cgi) Processeur de texte Commun et largement utilisé Un peu plus d'affinité avec le besoin initial, on approche de la solution.

4 Formulaire simple en langage C
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #define ishex(x) (((x) >= '0' && (x) <= '9') || ((x) >= 'a' && (x) <= 'f') || ((x) >= 'A' && (x) <= 'F')) int htoi(char *s) { int value; char c; c = s[0]; if(isupper(c)) c = tolower(c); value=(c >= '0' && c <= '9' ? c - '0' : c - 'a' + 10) * 16; c = s[1]; value += c >= '0' && c <= '9' ? c - '0' : c - 'a' + 10; return(value); } void main(int argc, char *argv[]) { char *params, *data, *dest, *s, *tmp; char *name, *age; puts("Content-type: text/html\r\n"); puts("<html><head><title>Form Example</title></head>"); puts("<body><h1>My Example Form</h1>"); puts("<form action=\"form.cgi\" method=\"GET\">"); puts("Name: <input type=\"text\" name=\"name\">"); puts("Age: <input type=\"text\" name=\"age\">"); puts("<br><input type=\"submit\">"); puts("</form>"); data = getenv("QUERY_STRING"); if(data && *data) { params = data; dest = data; while(*data) { if(*data=='+') *dest=' '; else if(*data == '%' && ishex(*(data+1))&&ishex(*(data+2))) { *dest = (char) htoi(data + 1); data+=2; } else *dest = *data; data++; dest++; } *dest = '\0'; s = strtok(params,"&"); do { tmp = strchr(s,'='); if(tmp) { *tmp = '\0'; if(!strcmp(s,"name")) name = tmp+1; else if(!strcmp(s,"age")) age = tmp+1; } while(s=strtok(NULL,"&")); printf("Hi %s, you are %s years old\n",name,age); puts("</body></html>"); Et avec le Perl, c'est comment?

5 Formulaire simple en Perl
use CGI qw(:standard); print header; print start_html('Form Example'), h1('My Example Form'), start_form, "Name: ", textfield('name'), p, "Age: ", textfield('age'), submit, end_form; if(param()) { print "Hi ",em(param('name')), "You are ",em(param('age')), " years old"; } print end_html; Et en PHP ...

6 Formulaire simple en PHP
<html><header><title>Form Example</title></header> <body><h1>My Example Form</h1> <form action="form.php" method="POST"> Name: <input type="text" name="name"> Age: <input type="text" name="age"> </form> <?PHP if($name): ?> Hi <?echo $name?>, you are <?echo $age?> years old <?endif?> </body></html>

7 Historique des versions
1994 « Personnal HomePage Tool » de Rasmus Leidorf Conception automne 1994 Version 1.0: Personal Home Page Tools au début 1995 Version 2.0: PHP/FI Été 1997 Zeev Suraski & Andi Gutmans (ZEND engine) Version 3.0: PHP (Syntaxe et sémantique actuelle) Version 4.0: PHP mid-2000 (PHP: Hypertext Preprocessor) Version 4.1: 10 Dec 2001 Version 4.2: 22 Apr 2002 Version 5 Release Candidate 3: 8 juin 2004

8 PHP en bref Le PHP est : À la fois un langage de programmation (Java, C#) et une plate-forme globale d'entreprise (.Net et J2EE) Langage mature et évolué. (OO) Extrêmement versatile et comporte plusieurs atouts: Simplicité Modèle de développement simple Proche du style de programmation Java/C/C++ Souplesse Deux syntaxe ou mode: orienté scripting et orientée objet Peut s'adapter autant à la couche présentation (WWW dynamiques) qu'aux tâches plus complexes (applications client-serveur) Interropérabilité Champion de l'intégration bas niveau: COM, JAVA, .NET pear::SOAP Adapté à la quasi-ensemble des moteurs de base de données...

9 PHP en bref Oracle, SQL Serveur, MySQL, dbase,PostgreSQL, ODBC, XML, LDAP, etc.), Supporte de nombreux protocoles (SMTP, IMAP, FTP, HTTP, TCP, etc.) Support des Socket (TCP/IP) Repose sur des standards ouvert Tonnes de ressources (IDE, Modules, Classes) dont la plupart sont gratuites Communauté solide (SourceForge, PHP Québec, PHPBuilder) Portabilité PHP est disponible sur l’ensemble des systèmes d’exploitation du marché :Windows toutes versions, Linux et Unix toutes versions,IBM iSeries (AS/400), SGI IRIX 6.5.x, RISC OS, Novell Netware, Mac OS X, AmigaOS, etc. Performance et stabilité Performances et stabilité inégalées en comparaison aux langages et plateformes utilisés dans le même but : ASP, JSP .NET

10 PHP en bref Performance (suite)
Commande SELECT effectuée 40 fois de suites sur un serveur Microsoft SQL Server 7 en utilisant l'extension PHP's MSSQL7 extension, l'extension PHP ODBC et COM.

11 PHP en bref Utilisation sur l'Internet:
PHP: 15,528,732 Domains, 1,343,899 IP Addresses Source: Netcraft

12 PHP en bref Se prête à de multiples utilisations :
Utilisations nombreuses et variées WebApplications(HTML, WML, XML, XHTML.) Modèle :server-side scripting CMS :OpenSourceCMS, phpWebSite, Mambo, XOOPS Systèmes de gestion (Au CSF: GESCOUR, GCP+) Intégration à des services web reposant sur SOAP Client-serveur (PHP-GTK et PHP4Delphi) Ligne de commande (CLI) Un fier compétiteur aux plateformes de développement .NET, J2EE, Oracle et plus

13 « It's about getting things done. »
PHP en bref Le PHP n'est PAS : Un simple langage de script Une nouveauté ou une mode passagère Un langage réservé aux débutants et aux hobbyistes Un langage destiné à remplacer le C/C++ (bien qu'il en soit capable dans bien des cas) En un mot: « It's about getting things done. »

14 PHP: Un écosystème L'écosystème PHP Architecture technique
Diversification de la faune PHP Outils, Classes, API, Framework, Librairies Relations entres les différentes composantes d'un envirronnement PHP Fonctionnement global et modèle d'exécution Hypertext Preprocessor? Zend Engine Relations Serveur HTTP et PHP et Base de donnée Exemples de déploiement typique LAMP Envirronement de développement mono-utilisateur Envirronement de développement multi-utilisateurs Envirronement de production

15 PHP: Un écosystème Diversification de la faune PHP
Extensions de l'engin Zend Optimizer Zend Encoder Framework PEAR (PHP Extension and Application Repository) Une librairie structurée de code source libre pour les utilisateurs de PHP Un système de distribution du code source et de maintenance des packages (modules) Des Classes PHP Fondamentales (PFC - PHP Foundation Classes) Un style de codage pour les programmes écrit en PHP(Coding Standard) Extensions PHP-GTK, PHP4DELPHI Classes PDF, EXCEL (Biffwriter), très nombreuses et variées

16 PHP: Fonctionnement Architecture Technique

17 PHP: Fonctionnement Fonctionnement global et modèle d'exécution
Hypertext Preprocessor? HYPERTEXT: Généralement, tout texte qui contient des liens à d'autres documents - des mots ou des expressions dans le document qui peut être choisi par un lecteur et qui causent un autre document d'être recherché et affiché. Contexte PHP :On travaille avec le Hyper Text Markup Language PREPROCESSOR : Une phase du compilateur qui examine le programme source pour des marqueurs (balise, « tags ») qui sont alors exécutés, ayant pour résultat le changement du programme source. Contexte PHP : L'interpréteur (le Zend engine) trouve et exécute le code PHP entre les balises PHP et génère un fichier HTML

18 PHP: Fonctionnement Modèle d'exécution simplifié
L'interpréteur exécute le code PHP entre les balises <?PHP ?> et renvoi un fichier html consommable par un navigateur standard

19 PHP: Fonctionnement Fonctionnement global et modèle d'exécution avancé

20 PHP: Déploiement Déploiement typique
Environnement de développement mono-utilisateur

21 PHP: Déploiement Déploiement typique
Environnement de développement multi-utilisateurs

22 PHP: Déploiement Déploiement typique Environnement de production

23 PHP: Déploiement Particularité selon les installations
Environnement de production Qualités recherchées Haute disponibilité Stabilité Performance Sécurité

24 PHP: Déploiement Environnement de production Solutions
Matérielle et logicielles : Ex. « Clustering fail-over » BeoWulf Installer l'ensemble sur un OS stable: Ex: BSD,Linux Utiliser les versions dites « stable » des logiciels serveurs (Apache, mySQL) À la limite aller chez un produit comme Oracle pour la BD si disponible Compiler ses propres sources en incluant le support pour les extensions les plus utilisées: EX: ./configure' '--prefix=/usr/local/php' '--with- apxs2=/usr/local/apache2/bin/apxs' '--with-mysql=/usr/local/mysql' '-- with-ldap=/usr/local/ldap-3.3' '--with-gettext' Configuration réseau appropriée (firewall, ssl, DMZ) Analyse et programmation orientée vers la sécurité Respecter les standards de programmation Utiliser un modèle relations données-processus-interractions (workflow) sécuritaire

25 PHP: Déploiement Particularité selon les installations
Environnement de développement multi-utilisateurs Qualités recherchées Stabilité Sécurité Coopérativité

26 PHP: Déploiement Environnement de développement multi-utilisateurs
Solutions Linux ou Windows au choix Apache ou IIS au choix Concurrent Versions System (CVS) Part of the open-source toolcraft, CVS is used for collaborative software configuration management on the Internet. Developers favor CVS for making current work available and also for bringing together and managing configurations using configurations developed at different locations around the world. Des outils afin de centraliser les ressources et encourager le coopération et le partage Groupware Bibliothèques et librairies de code réeutilisable Répertoire d'outils Forums Analyse et programmation orientée vers la sécurité Respecter les standards de programmation Utiliser un modèle relations données-processus-interractions (workflow) sécuritaire

27 PHP: Mini Projet BUT: Monter une application web de style « Carnet d'adresse » en utilisant la technologie PHP. Outils et technologies utilisées Modélisation des données avec DB Designer Utilisation d'outils (win32) MySQLFront, MySQL Administrator && MySQL Contro Center NVU, PHPEdit PHP (!), CSS, HTML, Javascript, Et bien plus...

28 2e Partie Développement d'une mini application
Le PHP 2e Partie Développement d'une mini application

29 PHP: Mini Projet BUT: Monter une application web de style « Carnet d'adresse » en utilisant la technologie PHP. Outils et technologies utilisées Modélisation des données avec DB Designer Utilisation d'outils (win32) MySQLFront, MySQL Administrator && MySQL Contro Center NVU, PHPEdit PHP (!), CSS, HTML, Javascript, Et bien plus...

30 PHP: Étapes de conception
Planification Description du besoin et mini-analyse Montage d'un modèle de travail (Workflow) Modélisation des données Description des processus Modularisation du projet Exécution Préparation de la DB Configuration des accès Insertion des données tests

31 PHP: Étapes de conception (suite)
(Exécution) Programmation Classes et librairies (OO) utilisées Identification (Minos) Sanitarisation des données Module principal Listing Ajout Modification Suppression Recherche Gestion des accès appliquée (Minos) Interaction avec la base de données

32 PHP: Un mot sur le SQL SQL Structured Query Language
Langage développé par IBM dans les années 1970 comme étant un moyen de placer, modifier, supprimer ou extraire de l'information logées dans un système de base de données relationnelles. Exemple: « INSERT INTO tblClients SET NomClient = 'Pierre'; » Pour insérer une nouvelle entrée (Pierre) dans le champ NomCLient de la table tblCLients. « En PHP on utilise le SQL et les bases de données relationnelles pour ranger de l'informations que l'on voudra utiliser plus tard » Principes: Un bon modèle de données (tables, relations, etc) qui respecte les formes normales (FN) telles que définis par le modèle relationnel réduit à néant le risque de perte de données (intégrité) tout en augmentant la productivité et évite de se retrouver dans des impasses et pièges logiques. Plus on optimise ses requêtes SQL plus le PHP et donc le système au complet s'en trouve amélioré. Des gains considérable en vitesse d'exécution sont à faire en optimisant son code au niveau des requêtes SQL.

33 PHP: Planification Description des besoins
Application accessible via un intranet Multi-utilisateurs Possibilité d'administration à distance Sécuritaire Recherche

34 PHP: Planification Modèle de travail Décortiquer le problème
Module : Gestion des accès Sécurité Multi-utilisateurs Administration à distance Fichier journal Paramétrages Module : Corps de l'application Saisie de données Validation Gestion des erreures Modification / Suppression de données Recherche

35

36 PHP: Planification Modèle de travail pour notre application:

37 PHP: Exécution Préparation de la DB

38 Programmation des modules principaux:
PHP: Exécution Programmation des modules principaux: carnet.php modifications.php utils.inc.php

39 Ajout de l'authentification
PHP: Exécution Ajout de l'authentification index.php login.php minos.class.php erreurs.php

40 Ajout de la journalisation log.class.php
PHP: Exécution Ajout de la journalisation log.class.php

41 Varia Ajustements finaux
PHP: Exécution Varia Ajustements finaux

42 PHP: Conclusion Question et réponses

43 FIN


Télécharger ppt "WebÉducation – 10 Juin 2004 Jonathan Dumas"

Présentations similaires


Annonces Google