1. SOUTENANCE PUBLIQUE
DIPLÔME UNIVERSITAIRE DE TECHNICIEN
MISE EN PLACE D’UNE SOLUTION WEB EN PHP
Armel Roland DIAMESSO
IHEM-ISTI – 2012 – 2013
Informatique de Gestion – Génie Logiciel
2. Introduction
Afin de valider concrètement ma formation par alternance en Informatique
de gestion, option Génie Informatique, à IHEM – ISTI, mon établissement me
confronte à un jury pour défendre et soutenir publiquement mon thème : La
mise en place d’une solution web en PHP.
4. CHATTOON : mon application web
exemplaire
À la fin de mon stage, j’ai élaboré une solution web complète, pour
l’agence MAG-SYS. Cette solution a pour but d’illustrer les possibilités
offertes par le langage de programmation PHP. Elle est un système de
partage en interne pour le MAG-SYS, un projet nommé CHATTOON.
5. Présentation de Chattoon
Le Chattoon est un site web dynamique. Il met en scène les éléments
classiques attendus pour tout service web professionnel :
création de sessions personnalisées ;
accès à des services réservés ;
délivrance d’informations ;
parcours d’un catalogue.
6. Description du Chattoon
Chattoon est une plateforme de partage en interne, une sorte d’intranet de
l’agence. Il offre l’accès à des services de partage aux agents de l’agence.
7. Objectifs du Chattoon
accès sécurisé : authentification à l’espace membre
Délivrance d’information intègre: publication d’article et commentaire
Parcours d’un catalogue : annuaire membre, messagerie
8. Ebauche de solution
Préparation de l’application
Outils: méthode, langage et application
9. Méthode d’étude: MERISE
Merise est une méthode d’analyse qui permet de concevoir et
développer des systèmes d’informations informatique.
C’est l’acronyme de Méthode d’Etude et de Réalisation Informatique pour les
Systèmes d’Entreprises (Tardieu, 83).
10. Conception de la base de données
Chattoon est un système qui manipulera plusieurs données, il faut donc
assurer la sauvegarde et l’accès partagé à l’information.
Pour manipuler et modifier ces données, une base de données sera
indispensable, ce qui implique le choix d’un SGBD. MySQL serra notre SGBD
(Système de Gestion de Base de Données) de prédilection qui va
permettre de stocker et manipuler l’ensemble de données circulant dans
Chattoon.
11. Modèle de données de Chattoon
Construire un modèle de données, c’est mettre à plat et décrire
toutes les informations qui devront être conservées, même après l’exécution
d’un programme.
Pour permettre à la base de données de conserver, manipuler et assurer la
gestion des accès concurrents à une même information, il va falloir en
amont décrire ces informations. Le modèle de données constitue cette
description.
12. Modèle conceptuel de données
Pour élaborer le modèle conceptuel de données, il faut
d’abord dégager les différentes entités de la base de
données, spécifier leurs attributs, et décrire leurs
contrainte de stockage
13. Modèle physique de données
Notre choix étant fait pour le type de stockage (un SGBD relationnel),
nous pouvons transformer ce modèle conceptuel en un modèle physique,
qui va décrire non plus des entités mais des tables et des contraintes portant
sur celles - ci.
15. Bootstrap
Bootstrap est un Framework côté client, spécialisé en CSS, permettant à
organiser le code informatique pour la mise en forme des pages web :
organisation, aspet visuel, animation …
16. PHP
Langage de programmation web, permettant de développer des sites web
dynamiques, particulièrement lorsqu’ils sont reliés à des bases de données.
17. WAMPSERVER
WampServer est une plate-forme de développement Web sous Windows pour des
applications Web dynamiques regroupant le serveur web Apache2, le langage de scripts
PHP et la base de données MySQL. Il possède l’environnement PHPMyAdmin pour gérer
plus facilement les bases de données.
18. Sublime Text
Sublime Text est un éditeur de texte générique codé en C++ et Python, disponible sur
Windows, Mac et Linux. Depuis la version 2.0, l'éditeur prend en charge 44 langages de
programmation majeurs, tandis que des plugins sont souvent disponibles pour les
langages plus rares.
20. PDO
Extension PHP permettant de travailler de façon unifiée peut importe le SGBD
PDO est un socle commun pour les connecteurs vers les SGBD. Il s’occupe
d’offrir des fonctions de base ainsi que d’unifier les interfaces utilisateur.
22. PHP et les base de données
Connexion au SGBD
Sélection de la base de données
Elaboration des requêtes
Exploitation des résultats
Fermeture de la connexion
24. Gestion d’erreurs
Par défaut, PDO utilise le mode silencieux ; les erreurs sont cependant
stockées et consultables en faisant appel aux méthodes errorCode() et
errorInfo().
25. Exemple
<?php
$sql='SELECT * FROM articles ORDER BY date_pub DESC LIMIT 0,9;';
$Error_info = $cnx->errorInfo();
$sth=$cnx->query($sql) or Die(‘Error Sql ::’.$cnx->errorCode().
‘<br>’. $Error_info);
$result = $sth->fetchAll();
? >
Je suis Armel Roland DIAMESSO, étudiant à IHEM – ISTI en Informatique de gestion option Génie Logiciel.
Je fais face à vous ce matin pour défendre mon thème par le biais de mon rapport de stage, passé au sein de MAG-SYS.
Ce qui m’a permis de mettre en place une solution web afin de concrétiser mon apprentissage.
Ainsi pour illustrer mes connaissance sur PHP et les possibilités offertes par son modèle objet sur le web, j’ai élaboré une solution web dynamique
Pour le service interne du MAG – SYS, un système de partage en interne j’ai nommé CHATTOON.
L’objet de cette solution est la publication d’articles et évènements, ainsi que la messagerie
interne.
Le Chattoon représente le prototype même du site dynamique.
Il met en scène les éléments classiques attendus pour tout service web
professionnel :
création de sessions personnalisées ;
accès à des services réservés ;
délivrance d’informations ;
parcours d’un catalogue.
Chattoon est une plateforme de partage en interne. Il offre la possibilité aux agents de la structure de
publier des articles, de partager des fichiers et de se faire des mails. Le système n’est pas très éloigné des principes d’un blog sur
internet, mais contrairement au blog, le Chattoon est ouvert à plusieurs utilisateurs d’un même cercle
Qui se partagent des informations. Et seul les membres de ce cercle ont accès à ces services.
Cela dit, chaque agent devra créer un compte sur la plateforme, qui lui permettra de se connecter à chaque visite et
de se créer un profil qui va permettre à d’autres agents de l’identifier dans
l’annuaire de l’entreprise.
Chaque visiteur s’identifie à son arrivée à partir d’un login, ce qui lui permet
d’accéder aux services de la plateforme. Une fois connecté, les différents
utilisateurs vont pouvoir se contacter, en parcourant l’annuaire, et publier sur la plateforme.
Connaissant les attentes de notre système, un choix technologique s’impose pour la conception de cette application.
Il faut alors préparer la conception du Chattoon.
Dans le génie logiciel, on dispose de plusieurs méthode d’études:
AXIAL : analyse et conception des systèmes d’informations assistés par logiciel (IBM, 86).
SADT : Structured Analysis and Design Technique (Softech, 77).
MERISE : Méthode d’Etude et de Réalisation Informatique pour les Systèmes d’Entreprises (Tardieu, 83).
SSADM : Structured Systems Analysis and Design Method (CCTA, 80).
RUP : Rational Unified Process (IBM, 2003).
Toutes ces méthodes sont basées sur le même principe : découpler l’analyse du
problème de son implantation sur machine.
MERISE impose de découper l’analyse des données en deux phases.
Une première étape conceptuelle permet de décrire les entités et les relations
(associations) entre elles, sans entrer dans les contraintes du système de stockage.
Une solution abstraite, indépendant de toute technologie informatique particulière.
La deuxième étape consiste à traduire, pour un type de stockage donné, le modèle
conceptuel en un modèle physique adapté. Dans cette étape, les entités du modèle
conceptuel sont transformées en tables et les associations donnent lieu à la création
de contraintes d’intégrité entre tables (clés étrangères).
Ainsi cette méthode nous permettra de concevoir une base de données pour notre système.
Une base de données permettra la sauvegarde, la manipulation et la définition de l’ensemble de données circulant dans Chattoon.
Pour ce faire nous avons opté pour MySQL, car une base de données web libre jusqu’à lors, puissante et légère qui a fait ses preuve sur le web.
Pour mettre en œuvre cette base de données, il va falloir se construire un modèle de données.
Construire un modèle de données c’est simplement dire quelles sont les informations qui devront êtres conservées
Pendant et après l’exécution du programme.
Pour permettre à la base de données de conserver, manipuler et assurer la gestion des accès concurrents
à une même information, il va falloir en amont décrire ces informations. Le modèle de données constitue cette description.
Plus ancienne que UML, MERISE reste la méthode de référence pour cette description.
Comme dit plus tôt, la conception d’une base de données avec MERISE se fait à un niveau conceptuel puis à un niveau physique.
Dans le cas de Chattoon, il est donc nécessaire en premier lieu d’identifier pour
chaque classe d’objets les informations à stocker de manière permanente. Si l’on
considère par exemple le cas d’un utilisateur, il est nécessaire de mémoriser son
pseudo ou login, son email, le mot de passe associé et son pôle de travail. À ceci
s’ajoute un identifiant unique, qui va nous servir de clé d’accès à toutes ces
informations (dans notre cas le login est utilisé comme identifiant). On obtient
ainsi l’entité suivante :
Chaque attribut de l’entité dispose d’un type, qui n’est pas le type physique qui
sera utilisé au final, mais plutôt un type logique. Cette technique assure une
relative indépendance du modèle conceptuel par rapport au SGBD qui
implémentera le modèle physique. Ainsi, VARCHAR30 indique une chaîne de
caractères de taille variable (d’où le VARCHAR) d’au maximum 30 caractères.
Nous devons procéder de même pour toutes les entités manipulées dans
Chattoon, sans oublier de préciser les différentes associations.
Une association va mettre en évidence la relation entre deux ou plusieurs
entités. On précisera en général les attributs qui sont corrélés et les cardinalités.
On obtient ainsi le MCD suivant pour le Chattoon
Notre choix étant fait pour le type de stockage (un SGBD relationnel), nous
pouvons transformer ce modèle conceptuel en un modèle physique, qui va
décrire non plus des entités mais des tables et des contraintes portant sur celles -
ci.
On obtient alors notre modèle de données final.
Une fois que nous avons notre base de données, il va falloir à présent porter un choix sur la technologie à utiliser pour l’implémentation
Sur le web on rencontre pas mal de langage traitant sur la question d’ergonomie, tel CSS qui aujourd’hui est devenu
La référence même du webdesign. On ce qui concerne le chattoon, nous avons utilisé aussi
Jquery qui est une bibliothèque javascript, pour le comportement graphique de certains éléments
du site, et bien entendu HTML pour l’affichage sur le navigateur.
Tous regroupé au sein d’un seul et même frontend spécialisé en CSS : la version 3 de Bootstrap.
PHP avec son modèle objet, nous permettra de développer le côté dynamique du site web. L’interacton avec le serveur de base de données.
PHP peut s’utiliser sur de nombreuses plates-formes. Le système
d’exploitation le plus utilisé sur les postes de travail restant MS Windows, il
est bien entendu possible d’y installer une plate-forme WAMP, regroupant le trinôme (Windows
Apache MySQL et PHP).
Il existe plusieurs distributions permettant d’installer en quelques clics une
plate-forme WAMP. La plus intéressante éttant WampServer.
Celle-ci permet en plus de disposer d’un environnement Windows Apache
MySQL PHP, de passer de PHP 4 à PHP 5 en un clic de souris.
la coloration syntaxique personnalisable, l’auto complétion, le système de plugins avancé,
l’énorme richesse fonctionnelle, la portabilité et la simplicité d’édition de code, l’organisation de l’espace de travail
De sublime text suffiraient pour porter notre choix sur ce puissant éditeur de code.
Connaissant nos outils, voyons comment le modèle objet de PHP nous aidera à concevoir notre application
Il existe plusieurs possibilités pour utiliser une base de données avec PHP. On peut,
pour chaque type de SGBD, utiliser une extension native dédiée (mysqli pour MySQL,
oci8 pour Oracle). Bien que ces extensions aient des similitudes entre elles, on aura
alors à manipuler des fonctions spécifiques différentes selon le SGBD. Avec PHP, on
peut utiliser PDO par exemple. Il s’agit d’une extension qui permet de travailler de
manière unifiée quel que soit le SGBD.
Pour Chattoon nous allons utiliser cette extension, car elle constitue une méthode
résolument tournée vers l’avenir, offrant beaucoup de souplesse et de puissance.
PDO est un socle commun pour les connecteurs vers les SGBD. Il s’occupe d’offrir
des fonctions de base ainsi que d’unifier les interfaces utilisateur. Il ne s’agit pas à
proprement parler d’un système d’abstraction aux bases de données, bien qu’il
puisse servir en ce sens. Mais plutôt il nous permettra de se connecter à n’importe quelle base de données.
L’utilisation de la base de données avec PHP se fait conventionnellement en cinq étapes:
- connexion au SGBD
- Sélection de la base de données
- Elaboration des requêtes
- Exploitation des résultats
- Fermeture de la connexion
Cependant, cette dernière n’est pas indispensable car la
connexion est automatiquement fermée après l’exécution du script.
PDO utilise un code d’erreur unifié pour nous faciliter un éventuel changement de SGBD.
Bien entendu, PDO nous donne aussi accès aux codes et aux messages d’erreurs natifs associés à la base que nous utilisons.
D’autres parts, avec PDO, nous pouvons définir le déclencheur d’erreurs. Nous pouvons demander à PDO :
de ne pas afficher les erreurs (défaut) ;
d’utiliser le mode d’erreur classique (lance une erreur de niveau E_WARNING)
d’utiliser les exceptions.
Par exemple dans ce bout de code où nous faisons une sélection dans la base de données, nous
Utilisons les codes d’erreur pour afficher un message si une erreur se produit lors de l’exécution de la requête.
Le « point CG » (.cg) étant l’identité visuelle de la République du Congo sur internet, le
MAG-SYS souhaite héberger Chattoon sous le nom de domaine mag-sysinfo.cg. Ainsi en
attendant la disponibilité de ce nom de domaine chez l’ACNIC (l’agence congolaise de
nommage Internet du Congo), notre site sera temporairement hébergé chez Olympe,
une plateforme d’hébergement libre sur internet (http://www.olympe.net).
Olympe est une plateforme d’hébergement libre de site internet. Il offre la possibilité d’ajouter un nom de domaine
Au compte qui héberge le site. Voila pourquoi, pour le moment, le site sera disponible sous le nom de domaine
Mag-sys.olympe.in. Cette adresse est imposé par l’hébergeur.