Architecture applicative de l application Web

Documents pareils
PHP 5.4 Développez un site web dynamique et interactif

Programmation Web. Madalina Croitoru IUT Montpellier

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Stockage du fichier dans une table mysql:

Diffuser un contenu sur Internet : notions de base... 13

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

PHP 4 PARTIE : BASE DE DONNEES

Présentation du Framework BootstrapTwitter

Utiliser un CMS: Wordpress

RÉALISATION D UN SITE DE RENCONTRE

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

Initiation à html et à la création d'un site web

Information utiles. webpage : Google+ : digiusto/

CREATION WEB DYNAMIQUE

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

TP JAVASCRIPT OMI4 TP5 SRC

Windows Server Chapitre 4 : Active Directory Gestion des utilisateurs, des ordinateurs et des groupes

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Formation : WEbMaster

Groupe Eyrolles, 2003, ISBN : X

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

STID 2ème année : TP Web/PHP

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

et Groupe Eyrolles, 2006, ISBN :

les techniques d'extraction, les formulaires et intégration dans un site WEB

Documentation de conception

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

GUIDE MEMBRE ESPACE COLLABORATIF. Février 2012

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Test de HSQLDB et Comparatif avec Sqlite

1 Position du problème

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Formation Webmaster : Création de site Web Initiation + Approfondissement

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Installation locale de JOOMLA SEPIA

Gestion des documents avec ALFRESCO

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Optimiser pour les appareils mobiles

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

Manuel du composant CKForms Version 1.3.2

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

Refonte front-office / back-office - Architecture & Conception -

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

BES WEBDEVELOPER ACTIVITÉ RÔLE

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Guide de démarrage de Business Objects Crystal Decisions

Le stockage local de données en HTML5

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

PROSOP : un système de gestion de bases de données prosopographiques

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Programmation Web. Introduction

Sage CRM. 7.2 Guide de Portail Client

Guide de démarrage rapide

Manuel d utilisation du site web de l ONRN

CATALOGUE DES FORMATIONS 2014

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

Mysql. Les requêtes préparées Prepared statements

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Comment développer et intégrer un module à PhpMyLab?

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Aperçu de la sauvegarde sous Windows 7

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

TD3 - Facturation avec archivage automatisé

La Clé informatique. Formation Internet Explorer Aide-mémoire

Présentation du logiciel Cobian Backup

Guide d'utilisation du Serveur USB

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

Ouvrir le compte UQÀM

La gestion des boîtes aux lettres partagées

Utiliser une base de données

Le modèle de données

Devenez un véritable développeur web en 3 mois!

Objet : Guide d'installation et de maintenance pour "My IC Phone 8082" connecté à un OmniPCX Office R810

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

La Clé informatique. Formation Excel XP Aide-mémoire

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Armand PY-PATINEC 2010

Comment déposer les comptes annuels des associations, fondations et fonds de dotation.

Thème : Gestion commerciale

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Notes pour l utilisation d Expression Web

Transcription:

Architecture applicative de l application Web Principes d organisation de l application PHP Gsb-AppliFrais Les principes d'organisation de l'application s'inspirent des travaux réalisés autour du contexte "Festival version allégée" : http://reseaucerta.org/cotecours/pub.php?num=390. Le code PHP a été organisé de façon à respecter les contraintes suivantes : - Les traitements ont été structurés selon les principes suivants : o la gestion des données est isolée dans un fichier à inclure : ce fichier comporte les fonctions de manipulation des données et les fonctions de connexion ; o la cinématique des cas d utilisation et la gestion de l affichage sont prises en charge dans les mêmes fichiers ; o la gestion des erreurs est décrite dans une bibliothèque de fonctions ad hoc. - Séparer la présentation des informations de leur description : avoir recours à une feuille de style CSS pour la mise en forme afin que le langage HTML ne soit utilisé que pour décrire les informations. Le langage HTML respectera la norme XHTML1.0 version stricte. Les pages seront vali- dées à l'aide du validateur du W3C : http://validator.w3.org/check. Les règles de style respecteront la norme CSS2. Elles seront validées auprès du valida- teur http://jigsaw.w3.org/css-validator/validator. Organisation du stockage des fichiers de l application Le répertoire styles contient la(les) feuille(s) de style. Le répertoire images, utilisé uniquement pour le logo, est prévu pour contenir les images figurant dans les différentes pages de l'application. Le fichier caccueil.php est le fichier de démarrage de l application. Les fichiers d inclusion : _debut.inc.html contient l'entête de la page ; _sommaire.inc.php contient le menu de la page ; _pied.inc.html contient le pied de page ; _init.inc.php procède aux initialisations de variables et à l'inclusion des fichiers bibliothèques de fonctions ; _fin.inc.php procède à la libération des ressources ; _utilitairesetgestionerreurs.lib.php est une bibliothèque de fonctions utilitaires et de gestion des erreurs ; _bdgestiondonnees.lib.php contient les fonctions de con- nexion et les fonctions de manipulation de la base de don- nées. _gestionsession.lib.php contient les fonctions de gestion d'une session tq le démarrage d'une session, la vérification d'une connexion utilisateur, la consultation/modification des va- riables de session.

Règles de nommage côté scripts PHP Outre les règles énoncées dans le document 2 "Normes de développement", viennent s'ajouter les règles de nommage suivantes : Item Règle de nommage 1 Variables jeu d enregistrements ligne du jeu d enregistrements chaîne contenant une requête SQL autre variable Fonctions fonction retournant une requête SQL fonction retournant une ligne ou une valeur fonction d'ajout ou modification ou suppression fonction de vérification Fichiers fichier contrôleur + affichage vue $idjeu suivi du rôle tableau $lg suivi du rôle $req ou $requete pas de règle (le nom choisi doit toujours être porteur de sens par rapport au rôle de la variable) obtenirreq suivi du rôle (exemple : obtenirreqeltsforfaitfichefrais est le nom de la fonction qui retourne la requête permettant d obtenir les données sur une fiche de frais) obtenir suivi du rôle (exemple : obtenirdetailfichefrais est le nom de la fonction qui retourne la ligne correspondant à la fiche de frais demandée) verbe ajouter ou modifier ou supprimer suivi du nom de la table. Si la fonction prend en charge plusieurs actions, on accole les noms des actions (exemple : ajouterfichefrais) son nom sera formé de estun ou verifier ou existe suivi du rôle Tout fichier contrôlant la cinématique des cas d utilisation et la gestion de l affichage commence par la lettre c (c comme contrôleur) Règles de nommage côté base de données Concernant le schéma de la base de données les règles d écriture suivantes ont été appliquées : - pas de blanc ni de caractère accentué dans les noms de table ou d attribut ; - chaque nom de table commence par une majuscule et est suivi de minuscules. Si elle est composée de deux mots, ils sont collés et distingués par une majuscule ; - chaque nom d attribut est écrit en minuscule. S il est composé de deux mots, ils sont collés et distingués par une majuscule. Le nom choisi pour l attribut représente le rôle de son domaine dans la table ; - une clef étrangère porte un nom significatif de son rôle dans la table. 1 Tous les noms respectent la règle «Camel» qui est notamment utilisée pour la pro- grammation en langage Java.

Structure de chaque page de l application Toutes les pages contrôleur d'un cas ou sous-cas d'utilisation sont construites selon cette structure. <? $repinclude = "./include/"; require($repinclude. "_init.inc.php"); require($repinclude. "_entete.inc.html"); require($repinclude. "_sommaire.inc.php");?> <!-- Division pour le contenu principal --> <div id="contenu"> <h2>mes fiches de frais</h2>... </div> <?php require($repinclude. "_pied.inc.html"); Le fichier _init.inc.php (voir ci-dessous) contient toutes les initialisations de variables (identifiant de connexion au serveur MySql, tableau des erreurs). L en-tête (titre et barre de menus) est affiché grâce à l exécution du code contenu dans les fichiers _entete.inc.html et _sommaire.inc.php. Dans ce fichier se trouve également la déclaration de la feuille de style styles.css. Le pied de page est affiché grâce à l exécution du code contenu dans le fichier_pied.inc.html. require($repinclude. "_fin.inc.php");?> Le fichier _fin.inc.php libère les ressources (identifiant de connexion au serveur MySql). Fichier _init.inc.php <?php require("_bdgestiondonnees.lib.php"); Fonctions pour la gestion des données. require("_utilitairesetgestionerreurs.lib.php"); Fonctions utilitaires et de gestion des erreurs. // initialement, aucune erreur... $taberreurs = array(); Création d'un tableau vide destiné à recevoir les messages d'erreur. // établissement d'une connexion avec le serveur de données // puis sélection de la BD qui contient les données des anciens $idconnexion=connecterserveurbd(); Appel de la fonction de connexion au serveur MySql. if (!$idconnexion) { ajoutererreur($taberreurs, "Echec de la connexion au serveur MySql"); Appel de la fonction de sélection de la base de elseif (!activerbd($idconnexion)) { données gsb_frais. ajoutererreur($taberreurs, "La base de données gsb_frais est inexistante ou non accessible");?>

Détail des choix pour la gestion des données et la gestion des erreurs Gestion des données (fichier _bdgestiondonnees.lib.php) Les interrogations de la base retournant une seule ligne sont entièrement prises en charge dans une fonction déportée ; cette fonction retourne alors le résultat dans un tableau (si plusieurs colonnes ont été demandées) ou dans une variable élémentaire. Exemples : - obtenirdetailutilisateur($idcnx, $unid) : retourne un tableau contenant les données de l'utilisateur d'id $unid. - obtenirderniermoissaisi($idcnx, $unidvisiteur) : retourne une chaîne correspondant au mois (forme AAAAMM) de la dernière fiche de frais du visiteur d'id $unidvisiteur. Les interrogations de la base pouvant retourner plus d un enregistrement sont traitées ainsi : - constitution de la requête dans une fonction, - exécution de la requête et traitement du jeu d enregistrements dans le code de la page appelante. Exemple : obtenirreqlibellesfraisforfait Appel à la fonction pour constituer la requête : $req=obtenirreqeltsforfaitfichefrais(); // obtenirreqeltsforfaitfichefrais est la fonction qui constitue le texte // de la requête permettant d obtenir la liste des éléments forfaitisés Exécution de la requête : $idjeueltsfraisforfait = mysql_query($req,$idconnexion); Traitement du jeu d enregistrements : $lgeltforfait = mysql_fetch_assoc($idjeufraisforfait); while ( is_array($lgeltforfait) ) {... $lgeltforfait = mysql_fetch_assoc($idjeufraisforfait); mysql_free_result($idjeufraisforfait); Les mises à jour au sens large (modification, insertion, suppression) sont entièrement réalisées dans des fonctions. Exemple : ajouterlignehorsforfait( ) Gestion des erreurs (fichier _utilitairesetgestionerreurs.lib.php) Principes de la bibliothèque de fonctions de gestion des erreurs Par convention dans cette application, lorsqu'une erreur est détectée, un message d'erreur approprié est construit et fourni au système de gestion des erreurs. Ceci est simplifié par l'utilisation de la fonction ajoutererreur. function ajoutererreur(&$taberr, $msg) { $taberr[count($taberr)]=$msg; $taberr est le paramètre formel correspondant au tableau destiné à recevoir les différents messages d erreur. Il est ici passé par référence car la fonction ajoutererreur doit modifier le contenu du tableau en y ajoutant un message dans le tableau.

Une fonction nberreurs a été écrite pour retourner le nombre d erreurs ; cela permet de tester le nombre d erreurs avant d appeler la fonction d affichage des erreurs. function nberreurs($taberr) { return count($taberr); La fonction d affichage des erreurs parcourt le tableau des erreurs et les affiche les unes sous les autres. function affichererreurs($taberr) { echo '<div class="erreur">'; echo '<ul>'; foreach($taberr as $erreur) { echo "<li>$erreur</li>"; echo '</ul>'; echo '</div>'; Principes d utilisation des fonctions de gestion d erreurs Nous illustrons ces principes grâce aux contrôles effectués sur le formulaire de modification d une fiche de frais. // l'utilisateur valide les éléments forfaitisés // vérification des quantités des éléments forfaitisés $ok = verifierentierspositifs($tabqteeltsforfait); if (!$ok) { ajoutererreur($taberreurs, "Chaque quantité doit être renseignée et numérique positive."); else { // mise à jour des quantités des éléments forfaitisés modifiereltsforfait($idconnexion, $mois, obteniriduserconnecte(),$tabqteeltsforfait); // si besoin, affichage des erreurs if ( $etape == "validersaisie" ) { if ( nberreurs($taberreurs) > 0 ) { echo tostringerreurs($taberreurs);