Architecture applicative de l application Web «GSB-AppliFrais»

Documents pareils
Programmation Web. Madalina Croitoru IUT Montpellier

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 5.4 Développez un site web dynamique et interactif

RÉALISATION D UN SITE DE RENCONTRE

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

Formation : WEbMaster

Dans l'article précédent, vous avez appris

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

Stockage du fichier dans une table mysql:

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

TP JAVASCRIPT OMI4 TP5 SRC

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

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

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

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

CREATION WEB DYNAMIQUE

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

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Thème : Gestion commerciale

Utiliser un CMS: Wordpress

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)

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

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

PHP 4 PARTIE : BASE DE DONNEES

PROJET ALGORITHMIQUE ET PROGRAMMATION II

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

Présentation du Framework BootstrapTwitter

Test de HSQLDB et Comparatif avec Sqlite

Manuel du composant CKForms Version 1.3.2

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

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

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

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

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

SII Stage d informatique pour l ingénieur

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

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

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

Nous vous proposons des formations à la carte et vous accompagnons dans leur mise en oeuvre au quotidien.

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

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

Guide d implémentation. Réussir l intégration de Systempay

CESI Bases de données

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

Mysql avec EasyPhp. 1 er mars 2006

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

Programmation Internet Cours 4

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

1 Position du problème

Petite définition : Présentation :

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

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

Introduction à MATLAB R

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

Algorithmique et Programmation, IMA

Bases de données cours 1

Installation locale de JOOMLA SEPIA

Présentation du PL/SQL

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

Rappel sur les bases de données

4. SERVICES WEB REST 46

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Cahier des charges Site Web Page 1 sur 9

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

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Stocker des données sur Amazon S3

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

novatis Agence Web innovatrice

Débuter avec OOo Base

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

Architectures web/bases de données

Sécurité des applications web. Daniel Boteanu

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

Programmation Web. Introduction

Information utiles. webpage : Google+ : digiusto/

25 mars. Tutoriel sur Laravel. Préparé par : Lydiane Beaulne-Bélisle. Ceci est un tutorial qui montre comment débuter avec le Framework PHP Laravel.

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Rapport de stage Nicolas PLAZE Licence Pro A2I. Rapport de Stage LICENCE PRO A2I. Société INFHOTIK. Nicolas PLAZE

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

Hébergement de site web Damien Nouvel

AWS avancé. Surveiller votre utilisation d EC2

REFONTE, DEVELOPPEMENT ET HEBERGEMENT DU SITE WEB

Intégrateur Web HTML5 CSS3

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Bases de données élémentaires Maude Manouvrier

OpenOffice Base Gestionnaire de Base de Données

CREATION d UN SITE WEB (INTRODUCTION)

Module BD et sites WEB

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

PROGRAMME DE FORMATION CONTINUE «CHEF DE PROJET WEB»

Mise à jour : Octobre 2011

Joomla! Création et administration d'un site web - Version numérique

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

PLAN DE COURS. CRM 142 Internet et multimédia 1 Hiver 2015

Transcription:

Architecture applicative de l application Web «GSB-AppliFrais» ARCHITECTURE APPLICATIVE DE L APPLICATION WEB «GSB-APPLIFRAIS»... 1 Principes d organisation de l application PHP Gsb-AppliFrais...1 Organisation du stockage des fichiers de l application...2 Règles de nommage côté scripts PHP...2 Fonctions...2 Fichiers...2 Règles de nommage côté base de données...3 Structure de chaque page de l application...3 Détail des choix pour la gestion des données et la gestion des erreurs...4 Gestion des données (fichier _bdgestiondonnees.lib.php)...4 Gestion des erreurs (fichier _utilitairesetgestionerreurs.lib.php)...5 Principes de la bibliothèque de fonctions de gestion des erreurs...5 Principes d utilisation des fonctions de gestion d erreurs...5 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 validé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 validateur http://jigsaw.w3.org/css-validator/validator. Page 1/5

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 connexion et les fonctions de manipulation de la base de donné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 variables de session. Règles de nommage côté scripts PHP Outre les règles énoncées dans le document de référence GSB-STDDEVWEB, 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) 1 Tous les noms respectent la règle «Camel» qui est notamment utilisée pour la programmation en langage Java. Page 2/5

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. 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"); require($repinclude. "_fin.inc.php"); 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. 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 elseif (!activerbd($idconnexion)) { de la base de données gsb_frais. ajoutererreur($taberreurs, "La base de données gsb_frais est inexistante ou non accessible"); Page 3/5

Détail des choix pour la gestion des données et la gestion des erreurs Gestion des données (fichier _bdgestiondonnees.lib.php) o 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. o 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); o Les mises à jour au sens large (modification, insertion, suppression) sont entièrement réalisées dans des fonctions. Exemple : ajouterlignehorsforfait( ) Page 4/5

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); Page 5/5