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

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

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

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

SII Stage d informatique pour l ingénieur

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

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

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

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

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

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

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

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

CESI Bases de données

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

Test de HSQLDB et Comparatif avec Sqlite

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

1 Position du problème

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

Petite définition : Présentation :

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

Cahier des charges Site Web Page 1 sur 9

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

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

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

É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

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

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

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

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

Sécurité des applications web. Daniel Boteanu

Architectures web/bases de données

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

Programmation Web. Introduction

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.

Information utiles. webpage : Google+ : digiusto/

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

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

AWS avancé. Surveiller votre utilisation d EC2

Hébergement de site web Damien Nouvel

REFONTE, DEVELOPPEMENT ET HEBERGEMENT DU SITE WEB

Intégrateur Web HTML5 CSS3

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

OpenOffice Base Gestionnaire de Base de Données

Bases de données élémentaires Maude Manouvrier

CREATION d UN SITE WEB (INTRODUCTION)

PROGRAMME DE FORMATION CONTINUE «CHEF DE PROJET WEB»

Module BD et sites WEB

Mise à jour : Octobre 2011

Présentation du logiciel Cobian Backup

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

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 3 Règles de nommage côté base de données 4 Structure de chaque page de l application 4 Détail des choix pour la gestion des données et la gestion des erreurs 6 Gestion des données (fichier _bdgestiondonnees.lib.php) 6 Gestion des erreurs (fichier _utilitairesetgestionerreurs.lib.php) Principes de la bibliothèque de fonctions de gestion des erreurs Principes d utilisation des fonctions de gestion d erreurs 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. Contexte GSB BTS SIO V 1.2 Page! 1/!

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 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 Règle de nommage $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 Contexte GSB BTS SIO V 1.2 Page! 3/!

fichier contrôleur + affichage vue 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. 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"); Le fichier _init.inc.php (voir ci-dessous) contient toutes les initialisations de variables (identifiant de connexion au serveur MySql, tableau des erreurs). 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"); 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(); // é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(); Création d'un tableau vide destiné à recevoir les messages d'erreur. if (!$idconnexion) { Appel de la fonction de connexion au serveur MySql. ajoutererreur($taberreurs, "Echec de la connexion au serveur MySql"); elseif (!activerbd($idconnexion)) { Appel de la fonction de sélection de la base de données gsb_frais. Contexte GSB BTS SIO V 1.2 Page! 4/!

ajoutererreur($taberreurs, "La base de données gsb_frais est inexistante ou non accessible");?> Contexte GSB BTS SIO V 1.2 Page! 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( ) Contexte GSB BTS SIO V 1.2 Page! 6/!

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); Contexte GSB BTS SIO V 1.2 Page! /!