TP2 Programmation Web - Correction



Documents pareils
Article I - Objet. Article II - Conditions d'utilisation de la eboutique

Gestion des Prospects : Adresses à exporter

Logiciel de gestion des inscriptions en CPGE

Charte de la gestion cookies groupe PVCP 25/09/2014

LE TABLEAU DE BORD REMONTEE DES COMPTES. Outils de gestion prévisionnelle, d'analyse financière et du contrôle de gestion. TABLE DES MATIERES

Les stratégies de Backup dans WSS V3

Processus des services

Nouveautés apportées à l assessment-tool

Service de mobilité interbancaire - Règlement

Basculer entre un réseau domestique et celui de votre lieu de travail

Service de mobilité interbancaire - Règlement

Utiliser les activités de cours de Moodle : le Questionnaire

GUIDE INSTALLATION IAS

GUIDE DE L UTILISATEUR

Nous proposons 3 syntaxes au choix :

Moodle en 5 minutes...

Fiche de projet pour les institutions publiques

Contenu de version

Siège social : 12, rue Massue Vincennes cedex

PROPOSITION DE CREATION DE SITE INTERNET

CYBERLEARN COURS MOODLE. SUPPORT DE TRAVAIL Pour professeur-es et assistant-es d'enseignement

A toutes les Directrices et à tous les Directeurs des établissements scolaires de l enseignement secondaire et secondaire technique

(les caractères apparaissent en vidéo inversé : blanc sur fond

Partage de documents entre tablettes et transfert de ressources

FORMATION SUR «CLOUD COMPUTING : CONCEPTS, TECHNOLOGIES ET APPROCHES DE MIGRATION»

[SIMULATEUR DE CREDIT IMMOBILIER]

Procédure d installation

esil PROJET DE MODELISATION ORIENTEE OBJET INFORMATIQUE - 3 ANNEE

ASSODESK.COM Aide en ligne

Kluwer ERP Dashboard - VERO.

2. Trouvez la version du firmware que vous souhaitez télécharger dans la rubrique Boot From CD, correspondant à votre modèle de SSD.

Note de cadrage de la version Apogée 4.10

Annexe 2 Annexe technique de la convention individuelle d habilitation «professionnel de l automobile»

MISSIONS COMMERCIALES

ENREGISTEUR NUMERIQUE USB Guide utilisateur

PROCESSUS DE CERTIFICATION DES MONITEURS JE NAGE INFORMATIONS POUR LES MAITRE ÉVALUATEURS

NOTICE POUR L IMPORT DU FICHIER «IACA» DANS CORRELYCE

KDJHU HQHUJ\ manuel de l'xwlolvdteur tebis

ACCORD SUR LE RECOUVREMENT AMIABLE EN CREDIT A LA CONSOMMATION

PROCEDURE POUR UN BESOIN DE SANTE PARTICULIER «PBSP»

Le dispositif de qualification OPQIBI pour les audits énergétiques (réglementaires)

En collaboration avec la direction territoriale du MFA

Manuel d utilisation de Nomad Trading

Vente de Capacités de Stockage de gaz du 13 mai 2015

SERVEUR HORUS NG dans les EPLE

Manuel d'utilisation: Gestion commerciale - CRM

Coefficient 4. L ACRC est validé par le contrôle des compétences suivantes :

PHASE 1 : choix et définition du sujet du TM.

Annexe 1 Annexe technique de la convention d habilitation «expert en automobile»

ÉTAPES CLÉS DE LA RÉPONSE AUX VIOLATIONS DU RESPECT DE LA

Colloque Rapport de l'atelier 1

ÉLECTIONS MUNICIPALES

Développement d applications mobiles natives avec LongRange de LANSA

Directory List & Print (Pro) by Infonautics GmbH, Switzerland

Dossier Spécial. Les 5 étapes pour vendre ACT! Apprendre à détecter un besoin en Gestion de Contacts

livraisons en centrale

Çi-dessous le livret du module de réservation de sièges. Via Thomascookagent.be (pour les agences)

PHP MySQL. 1. Introduction à PHP

Projet de renouvellement de l infrastructure informatique de la Mairie de Châtel-Guyon. Cahier des charges

Comme nous devons clôturer nos systèmes actuels avant la transition, veuillez noter les dates suivantes :

Charte de l Association Suisse de Portage des Bébés (ASPB)

BOURSE EXPLO RA SUP (Région Rhône-Alpes) Toutes destinations-séjour académique et stage

LOGICIELS ET BASES DE DONNÉES PROTECTION ET VALORISATION

Prénom et nom de l enfant : Sexe de l enfant : M F L âge de l enfant : Nom de la garderie ou du CPE : Adresse : Téléphone :

Cible de Sécurité - Blancco DataCleaner+ v4.8

GUIDE pour la CONDUITE D ENTRETIEN

Restitution. Enquête FNOGEC auprès des principaux éditeurs de logiciels. Mise en conformité aux normes SEPA

Catalogue de formation bureautique

Guide pour la rédaction d une Spécification Technique de Besoin (STB)

REGLEMENT COMPLET «3D World Koksijde»

Extensions d inventaire

FICHE DE POSTE Fonction : Chef de Division Contrôle des opérations Financières FONCTION : CHEF DE DIVISION CONTRÔLE DES OPÉRATIONS FINANCIÈRES

Fiche sur les assurances nécessaires lors d un séjour à l étranger

Concours d'admission en orthop honie Le concours d'entrée au Certificat de Capacité d'orthophonie Centre de Formation Pitié-Salpêtrière

REGLEMENT COMPLET Tentez de gagner une tablette tactile

CAHIER DES CLAUSES TECHNIQUES PARTICULIERES

L'ANALYSE DU BILAN PATRIMONIAL EN VALEURS NETTES. Approfondir l'analyse du bilan financier : retraitements du bilan comptable.

COMPTE RENDU DE LA COMMISSION COMMUNICATION

PROTECTION DES VARIÉTÉS VÉGÉTALES EN ARGENTINE

Guide de l utilisateur

Laure FANJEAU 4 IMCO Classe 1. Dossier partiel Mobile-Marketing TRUFFAUT. Plus Belle sera la Terre. Monsieur DESCOUTURES

RÈGLEMENT D ORDRE INTERIEUR

DIPLOME NATIONAL de MASTER

Dossier de Presse. 1 ier guide Interactif pour créateurs et entrepreneurs

votre lettre du vos références nos références votre correspondant date

Québec, le 26 septembre 2014

Guide d aide à la rédaction d un essai

DOSSIER DE CANDIDATURE. Programme Executive MBA

LES 3 PHASES DU PROJET EDI

a) Financement par des tiers : emprunts, crédits bancaires, leasing, crédit spontané (lors d un achat à crédit) ;

CONTRAT DE SOUSCRIPTION CA CERTIFICAT

Politique de sécurité de l information

Proposition de Veille Internet Campagnes Electorales 2012

Flux électronique de facturation XML

Flux électronique de facturation XML

Règlement de la BCL Collecte directe des données paiement. Note de guidance relative à la transmission des données paiements

Règlement du concours de POCKET FILM organisé par le Département de la Haute-Vienne

Transcription:

TP2 Prgrammatin Web - Crrectin Un Chat en PHP On veut réaliser une applicatin de chat en ligne. Chaque visiteur s identifie à sn arrivée, ce qui lui permet d apparaître dans l annuaire des persnnes cnnectées. Grâce à cet annuaire, les différents utilisateurs vnt puvir se cntacter et échanger des messages. Naturellement, chaque habitué du système peut créer sn annuaire persnnel pur référencer ses amis et ne pas avir à les chercher dans la liste lrs de ses visites successives. 1. Cmpsez un cahier des charges : a. Inscriptin préalable. L inscriptin permettra au visiteur de se cnstituer un prtrait : nm de cde, âge, sexe, pays, ville, emticne. b. Une identificatin à chaque visite : une fis inscrit le visiteur devra s identifier lrs de chaque visite. Il précisera sn nm de cde et le mt de passe qu il a chisi. Ceci fera apparaitre sn prtrait dans l annuaire, en le rendant visible aux yeux des autres cnnectés. c. Tableau de brd. Une fis cnnecté, le visiteur dit puvir accéder à tris grupes de fnctins : i. Parcurs de l annuaire des cnnectés ii. iii. Parcurs de la liste des amis Lecture et écriture des messages. 2 Décupez de plus en plus finement l applicatin et les éléments qui la cmpsent en utilisant le mdèle d architecture Mdèle, Vue, Cntrôleur (MVC). Les flux d infrmatin dans Chat PHP : Vue : A partir d un dcument XML (XHTML dans le cas général) et d un patrn XSL la vue génère une srtie. Cntrôleur : Prducteur du dcument XML qui est transfrmé par la vue. On peut identifier différents flux : Les échanges liés a l identificatin et au cntrôle de la sessin utilisateur La manipulatin de la liste des abnnés La gestin de la liste des amis La manipulatin des messages

Mdèle : l'ensemble de ces flux d infrmatin snt à destinatin u à l rigine du mdèle 3. Les interfaces en PHP décrivent les pré-requis d une spécificatin, prérequis auxquels tute implémentatin dit se cnfrmer. Ces pré-requis snt dnnés en listant les prttypes des méthdes qui devrnt exister dans l'implémentatin. Dans Chat PHP: 1. La vue. Sn seul rôle est de transfrmer le dcument XML : interface ivue{ functin transfrme($dcument, $style) ;} 2. Le cntrôleur. La plupart des flux d infrmatin que nus avns détectés snt liés aux mdèles. Le cntrôleur se cntente de réaliser les traitements sur les dnnées du mdèle. La seule méthde indispensable d un cntrôleur est celle qui est respnsable de la prductin du dcument XML. interface icntrleur { functin genere() ;} 3. Le mdèle. Il nus furnira le myen d'accéder aux dnnées. On va définir une interface prpre pur chaque type de dnnées manipulé. a. Les dnnées de sessin : L bjet sessin est lui-même élémentaire. Sn rôle cnsistera à gérer un cmpteur de temps. Lrsque l utilisateur est actif, le cmpteur est mis à jur et chaque page PHP du Chat teste la date de dernière mise à jur via ntre bjet sessin, pur décider de l expiratin u nn de la sessin en curs. Deux méthdes divent être implantées pur tut bjet sessin : i. La mise à jur du cmpteur de sessin pur préserver sa validité ; ii. Le test d'expiratin interface isessin { functin update() ; functin active() ;} b. Les listes d infrmatin. Le Chat en PHP manipule de nmbreuses listes, parmi lesquelles les listes de cnnectés et les listes d amis. On peut dnc lgiquement utiliser un design pattern très classique : l itérateur.

interface Iteratr implements Traversable { functin rewind() ; functin current() ; funtin key() ; functin next () ; functin valid() ;} Cette interface est utilisée par PHP lui-même pur certaines pératins, telles que l instructin freach, par exemple. c. Les messages. La gestin des messages cmprte tris actins clés : i. La transmissin effective d un message à un interlcuteur ii. iii. La créatin du frmulaire d envi L affichage du fil de discussin en curs Pur les premières étapes n prpse une interface : interface imessage { functin nuveau() ; functin transmet() ;} Pur le fil de la discussin n retruve le parcurs classique d une liste interface imessage extends iteratr { functin nuveau() ; functin transmet() ;} 4. Mdèle de dnnées. Dans Chat PHP n va cnfier le stckage permanent des infrmatins cntenues dans les bjets à un SGBD. Le mdèle de dnnées cnstitue cette descriptin de l infrmatin à stcker. Il existe plusieurs méthdes pur représenter et décrire ce mdèle (Merise, UML etc.) Réalisez le mdèle de dnnées cnceptuel de Chat PHP. Implémentez ce mdèle en utilisant EasyPhp.

5. Les bjets dans PHP5 : a. Pur les bjets utilisateur n purra définir une classe de cette façn : private $pseud ; private $passwrd ; functin changepseud ($nuveau_pseud) { $this -> pseud = $nuveau_pseud ;} functin changepasswrd($nuveau_passwrd) { $this -> passwrd = $nuveau_passwrd ;} functin litpseud() { Return $pseud ;} functin litpasswrd() { Return $passwrd ;}}} Le cde suivant prvque alrs une erreur : $u = new utilisateur () ; $u -> pseud = tt ; Pur que le cde fnctinne il faut écrire : $u = new utilisateur ( bla, bla ) ; b. L'héritage class utilisateurabnne extends utilisateur { private $numer_client ; functin lit_numer_client() { return $this -> numer_client ;}} class utilisateurabnne extends utilisateur implements iutilisateur, iabnne { //cde de la classe}

c. On purrait définir utilisateur cmme une classe abstraite, dnt n purrait dériver ensuite une classe utilisateur_chatphp. Il est pssible d abutir à un résultat apprchant en impsant une interface a la classe utilisateur_chatphp. A l ppsé des classes abstraites PHP 5 intègre aussi la ntin de classe finale (classes qui ne purrnt pas être étendues). Une classe, cmme une méthde, peut être déclarée finale. final functin cnnecte() { // cde}} d. Plymrphisme On cnfnd parfis la redéfinitin de certaines méthdes dans les cas du plymrphisme et de la surcharge de méthdes. La surcharge cnsiste à définir des méthdes distinctes en utilisant le même nm mais des prttypes différents. PHP 5 ne supprte pas la surcharge. Le plymrphisme cnsiste à remplacer une méthde par une autre. functin infrmatin() { return Utilisateur invité ;}} class utilisateur_abnne extends utilisateur { functin infrmatin(){ expiratin}. ;}} return Vus etes abnne(e) jusqu au {$this -> e. Cnstructeurs et destructeurs private $pseud ; private $mtdepasse ; private $age ; $age=18) { functin cnstruct ($pseud=false, $mtdepasse = false, $this->pseud=$pseud;

$this->mtdepasse=$mtdepasse; $this->age=$age;} // } Lrs de la créatin d un bjet, les différents attributs snt alrs autmatiquement initialisés, sit avec les valeurs par défaut, sit avec des valeurs furnies lrs de la créatin : $u = new utilisateur ( PHPFan, Secret, 32) Cnsidérns maintenant la classe utilisateur_abnne : class utilisateur_abnne extends utilisateur { functin cnstruct() { // } // } La créatin d un utilisateur abnné va prvquer l appel du cnstructeur de cette même classe, mais nn l appel au cnstructeur de la classe utilisateur. On peut chisir explicitement d appeler u nn le cnstructeur parent : class utilisateur_abnne extends utilisateur { functin cnstruct() { // parent :: cnstruct() ; } // }