Professional Documents
Culture Documents
Ce stage ingnieur,eectu au sein de l'entreprise JASSP.Tunisie ,sert dvelopper application web qui permet aux utilisateurs de rechercher les entreprises logistiques.L'application permet aussi aux utilisateurs de contacter les entreprises. Mots cls : Framework,php,symfony.
2 4 6
6 6 6 7 7
2 Etude Pralable :
de contexte : . . . . . . . . . . . . . . . . . . . . Dnition d'un site web : . . . . . . . . . . . . . L'architecture Client-Serveur : . . . . . . . . . . Le Framework Synfony : . . . . . . . . . . . . . 2.1.3.1 Origine et motivations du framework : 2.1.3.2 Points forts du framework : . . . . . . 2.1.3.3 Organisation des chiers : . . . . . . . 2.1.3.4 Traitement d'une requte : . . . . . . . 2.1.3.5 Le modle MVC [4] : . . . . . . . . . .
8 8 8 9 9 10 10 11 11
3.2 3.3
Spcication des besoins : . . . . . . . . . . . . . . . 3.1.1 Les besoins fonctionnels : . . . . . . . . . . . . 3.1.1.1 Les besoins de l'administrateur : . . 3.1.1.2 Les besoins de l'internaute : . . . . . 3.1.1.3 Les besoins de l'utilisateur : . . . . . 3.1.2 Les bsoins non fonctionnels : . . . . . . . . . Les cas d'utilisation : . . . . . . . . . . . . . . . . . . Les diagrammes de squences : . . . . . . . . . . . . . 3.3.1 Diagramme de squence d'inscription : . . . . 3.3.2 Diagramme de squence recherche d'entreprise 3.3.3 Diagramme d'envoi d'email : . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . selon . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . critre . . . .
13
13 13 13 13 13 13 14 14 15 15 16
18
4.2
4.1.1.1 Prsentation : . . . . . . . . . 4.1.1.2 Les avantages de.NET : . . . 4.1.2 J2EE : . . . . . . . . . . . . . . . . . . 4.1.2.1 Prsentation : . . . . . . . . . 4.1.2.2 Interfaces de programmation : 4.1.3 PHP( Hypertext Preprocessor) : . . . . 4.1.3.1 Prsentation : . . . . . . . . . 4.1.3.2 Fonctionnement : . . . . . . . 4.1.3.3 Les avantages de PHP5 : . . . Gestion de la base de donnes : . . . . . . . . 4.2.1 Oracle Data Base : . . . . . . . . . . . 4.2.1.1 Prsentation : . . . . . . . . . 4.2.1.2 Avantages : . . . . . . . . . . 4.2.1.3 Inconvnients : . . . . . . . . 4.2.2 MySQL : . . . . . . . . . . . . . . . . . 4.2.2.1 Prsentation : . . . . . . . . . 4.2.2.2 Avantages : . . . . . . . . . . 4.2.2.3 Inconvnients : . . . . . . . . Choix retenus : . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . : . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18 18 19 19 19 19 19 19 20 21 21 21 21 21 22 22 22 22 22
5 Conception
Conception gnrale : . . . . . . . . . . . . . . . . 5.1.1 Architecture 3 tiers : . . . . . . . . . . . . 5.1.2 Prsentation du modle MVC (Modle Vue Conception dtaille : . . . . . . . . . . . . . . . . 5.2.1 Diagramme de base donne : . . . . . . . . 5.2.2 Architecture de l'application : . . . . . . . 5.2.2.1 Application Frontend : . . . . . . 5.2.2.2 Application Backend : . . . . . . Environnement de travail : . . . . 6.1.1 Environnement matriel : 6.1.2 Environnement logiciel : . Travail ralis : . . . . . . . . . . 6.2.1 Page d'accueil : . . . . . . 6.2.2 Inscription : . . . . . . . . 6.2.3 Prole : . . . . . . . . . . 6.2.4 Ajout d'une annonce : . . 6.2.5 Recherche : . . . . . . . . 6.2.6 Administration : . . . . . 6.2.7 Problmes rencontres : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . Contrleur) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
23 23 23 24 24 25 25 25 27 27 27 28 28 28 29 30 30 31 31
6 Ralisation
6.1 6.2
27
diagramme de cas d'utilisation. . . . . . . . . Diagramme de squence de l'inscription. . . . Diagramme de squence de recherche. . . . . . Diagramme de squence d'envoie d'un e-mail.
Excution du code PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Le modle MVC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Diagramme de base de donne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Page d'acceuil. . . . . Page d'inscription. . . Prole. . . . . . . . . . Ajout annonce. . . . . Recherche. . . . . . . . Resultat de recherche. Administration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 29 29 30 30 31 31
Introduction Gnrale
26 septembre 2011
Le client est gnralement la principale source de revenus pour les entreprises. Or, avec le changement de l'conomie d notamment l'intgration des nouvelles technologies dans les relations client-entreprise, la concurrence devient de plus en plus serre et les clients peuvent ainsi dsormais se permettre de choisir leur fournisseur ou d'en changer par un simple clic. Les critres de choix des clients sont notamment des critres nanciers, de ractivit de l'entreprise mais galement des critres purement aectifs (bsoin de reconnaissance, bsoin d'tre couts, ...). Ainsi ,le web devient l'interface de communication entreprise/client le plus rpandus en eet le client n'est pas oblig de connaitre la localisation des entreprises pour chercher un emploi ou pour commander un produit . Pour amliorer ces outils facilitant communication entreprise/client il est primordial des concevoir des applications web ayant cet objectif. En premier lieu, on a introduit le cadre du stage. Le deuxime volet est consacr la prsentation d'une tude de l'existant suivi d'une partie justiant le choix du framework utilis.la toisime partie est consacre la spcication des bsoins. La conception sera l'tape suivante la quelle nous arriverons pour dnir les dirents composants formant l'application. La dernire partie sera consacre la ralisation de la solution.
1.2.1 Organisation :
JASSP est divise en 5 ples distincts : Ple de direction . Ple R&D . Ple support . Ple commerciale . Ple Production (Edition & Produit). L'organigramme de JASSP est trac par la gure 1.1 :
1.2.2 Activits :
JASSP est une socit ditrice de logiciel spcialis dans l'Excess Capacity Management et Excess Inventory Management. Les logiciels JASSP consistent en des logiciels de prvision et d'optimisation , pilotage des rseaux d'entreprise et des logiciels de Business Process Management (ou systme d'information coopratif pour l' Entreprise Etendue ). Ces logiciels sont ddis aux entreprises et consistent , en des outils d'aide l'optimisation de la cration de valeur avec les excdents et les surplus de capacit ou de stock.
Conclusion :
Ce chapitre nous a permis de faire une prsentation gnrale du cadre de notre stage en prsentant l'organisme d'accueil.
Prsentation de l'architecture :
L'architecture Client/Serveur (Figure 1.1) est tout modle de fonctionnement logiciel dans lequel plusieurs programmes autonomes communiquent entre eux par changes de messages. Cela signie que des machines clientes (des machines faisant partie du rseau) contactent un serveur, une machine gnralement trs puissante en terme de capacits d'entr- sortie, qui leur fournit des services [4].Ces services sont des programmes fournissant des donns telles que l'heure, des chiers, une connexion. . .
10
Symfony emploie la syntaxe YAML pour ses chiers de conguration. Cette syntaxe, mme si elle ne rpond pas au formalisme de XML, a cependant l'avantage de la simplicit.
toutes les donnes, en grant leur slection, leur insertion, leur modication ou leur suppression ( CRUD ). Pour cela, il propose des mthodes spciques la bonne tenue de ces actions. La Vue :il s'agit de l'interface que l'utilisateur va manipuler. Elle habille les donnes transmises par le modle et reoit toutes les actions eectues par l'utilisateur, sans en assurer le traitement : les actions sont transfres au contrleur. Le Contrleur :il prend en charge la gestion des vnements pour mettre jour la vue ou synchroniser des informations via le modle. Il reoit toutes les actions eectues par l'utilisateur, et eectue la dtection d'erreurs (vrication du remplissage correct des champs d'un formulaire, par exemple). Tout comme la vue, le contrleur n'eectue aucune modication sur les donnes, il est uniquement charg d'appeler le modle et de renvoyer la vue concerne. Pour rsumer le principe de fonctionnement du MVC, lorsqu'un client eectue un appel une application, la requte est analyse par le contrleur qui demande au modle concern d'eectuer les oprations. Enn, c'est ce mme contrleur qui va renvoyer la vue concerne au client.
Conclusion :
Dans ce qui prcde, nous avons dgag et expliqu les notions de base qui dnissent le contexte de l'application. alors nous aborderons maintenant la deuxime partie ou nous allons dcrire le travail raliser.
12
L'interface utilisateur doit ainsi tre conviviale et prsenter d'une manire simple les fonctionnalits oertes. Performance :l'application doit tre le plus optimal possible ainsi l'application doit ragir rapidement. Maintenabilit :l'application doit tre facile maintenir .
14
15
Conclusion :
Dans ce chapitre, nous avons dni en premier lieu les dirents bsoins. Ensuite nous les avons formaliss avec un diagramme de cas d'utilisation et des divers scnarios. Maintenant on va faire une tude des solution possible et on va choisir la meilleur.
17
18
4.1.2 J2EE :
4.1.2.1 Prsentation :
Java Enterprise Edition, ou Java EE (anciennement J2EE), est une spcication pour la technique Java de Sun plus particulirement destine aux applications d'entreprise. Ces applications sont considres dans une approche multi-niveaux1. Dans ce but, toute implmentation de cette spcication contient un ensemble d'extensions au framework Java standard (JSE, Java Standard Edition) an de faciliter la cration d'applications rparties. Pour ce faire, Java EE dnit les lments suivants : Une plate-forme (Java EE Platform), pour hberger et excuter les applications. Une suite de tests (Java EE Compatibility Test Suite) pour vrier la compatibilit. Une ralisation de rfrence (Java EE Reference Implementation), qui est GlassFish. Un catalogue de bonnes pratiques (Java EE BluePrints).
4.1.3.2 Fonctionnement :
Dans une utilisation Web, l'excution du code PHP se droule ainsi : lorsqu'un visiteur demande consulter une page Web, son navigateur envoie une requte au serveur HTTP correspondant. Si la page est identie comme un script PHP (gnralement grce l'extension .php), le serveur appelle l'interprte PHP qui va traiter et gnrer le code nal de la page (constitu gnralement
19
d'HTML ou de XHTML, mais aussi souvent de CSS et de JS). Ce contenu est renvoy au serveur HTTP, qui l'envoie nalement au client. La gure 3.1 explique ce fonctionnement :
20
4.2.1.2 Avantages :
Fonctionne sur de nombreuses plateformes. Dispose d'API pour C, C++, Eifel, Java, Perl, PHP, Python. Completement multi threads, grace aux threads du noyau. Cela signe qu'on peut l'utiliser facilement sur un serveur avec plusieurs processeurs. Tables B-tee trs rapide, avec compression d'index. Systeme d'allocation mmoire trs rapide, exploitant les threads. Tables en memoire, pour raliser des tables temporaires. Les fonctions SQL sont implmentes grce une librairie de classes optimises, qui sont aussi rapides que possible.
4.2.1.3 Inconvnients :
Prix lev, tant au point de vue des licences que des composants matriels (RAM, CPU) fournir pour de bonnes prformances. Administration complexe , lie la richesse fonctionnelle . Fort demandeur de ressources, ce qui n'arrange rien au point prcit, Oracle est bien plus gourmand en ressource mmoire que ses concurrents, ce qui implique un investissement matriel non ngligeable. La connexion utilisateur ncessite par exemple prs de 700 Ko/utilisateur, contre une petite centaine sur des serverus MS-SQL ou Sybase ASE. Gourmand aussi en espace disques puisque la plupart des modules requirent leur propre ORACLE_HOME de par le versionning de patches incontrle . Porosit entre les schmas : dicile de faire cohabiter de nombreuses applications sans devoir crer plusieurs instances. Il manque rellement la couche "base de donnes" au sens Db2/Microsost/Sybase du terme. Mtamodle propritaire, loin de la norme. Tables partitionnes, RAC... uniquement possible l'aide de modules payants complmentaires sur la version Enterprise. Gestion des verrous mortels mal conue (suppression d'une commande bloquante sans rollback) . Faiblesses de l'optimiseur (ne distingue pas les pages en cache ou en disque, n'utilise pas d'index lors de tris gnraux, statistiques rgnres par saccade...) .
21
4.2.2 MySQL :
4.2.2.1 Prsentation :
MySQL est un systme de gstion de base de donnes (SGBD). Selon le type d'application, sa licence est libre ou propritaire. Il fait partie des logiciels de gestion de base de donnes les plus utiliss au monde, autant par le grand public (applications web principalement) que par des professionnels, en concurrence avec Oracle et Microsoft SQL Server.
4.2.2.2 Avantages :
Solution trs courante en hbergement public. Trs bonne intgration dans l'environnement Apache/PHP. OpenSource, bien que les critres de licence soient de plus en plus diciles supporter. Version cluster depuis la version 4. ordonnanceur ds la version 5.1. Partitionnement ds la version 5.1. Facilit de dploiement et de prise en main. Plusieurs moteurs de stockage adapts aux direntes problmatiques, congurable au niveau table.
4.2.2.3 Inconvnients :
Ne supporte qu'une faible partie des standards SQL-92 . Support incomplet des triggers et procdures stockes . Gestion des transactions avec les moteurs Falcon ou InnoDb uniquement .
Conclusion :
L'analyse et l'numeration des besoins fonctionnels et non fonctionnels ont permis une meilleure assimilation des direntes dicults rsoudre travers l'application. Il est donc indispensable de choisir la technique la plus approprie qui permettra de satisfaire toutes les contraintes. A la n de cette tape, nous pouvons commencer la partie conceptuelle de l'application qui sera le thme du chapitre suivant.
22
Chapitre 5 Conception
Introduction
Aprs avoir fait l'analyse et la spcication de notre application nous allons passer faire une conception gnrale qui consiste laborer les spcications de l'architecture gnrale de l'application ainsi qu'une conception dtale qui dnit prcisment chaque sous-ensemble de notre application.
application logicielle. Ce paradigme divise l'IHM en un modle (modle de donnes), une vue (prsentation, interface utilisateur) et un contrleur (logique de contrle, gestion des vnements, synchronisation) Le modle MVC lui, est une approche dirente de l'organisation de l'interface homme- machine. Le code est spar en 3 morceaux, distincts, qui permettent une meilleure comprhension du code, et un travail de groupe plus ais.
Le modle :
Le modle reprsente l'interaction avec la base de donnes, il dcrit les donnes dont l'application se sert. Il contient les mthodes d'accs au donnes, pour les lire et les modier (insertion, suppression, mise jour). On l'appelle aussi Mtier .
La vue :
La vue correspond l'interface avec laquelle l'utilisateur ragit. Elle ache les donnes renvoy par le modle et reoit les actions de l'utilisateur (remplissage de formulaire, clic de boutons ou encore clic de souris. . .). La vue n'eectue aucune opration, elle renvoie toute ces informations au contrleur.
Le contrleur :
Le controleur peut tre quali comme une sorte d'intermdiaire entre la vue et le modle, il prend en charge la gestion des vnements pour mettre jour l'un ou l'autre, et les synchroniser. En cas de modication de donnes, ce n'est pas le contrleur qui s'en charge, mais le modle, le contrleur lui faisant la demande. Une fois ces donnes modies, le contrleur averti la vue qu'elle doit se recharger pour acher les donnes mise jour.
24
Inscription :
Nous avons dit avant que la base de donn est l'origine de tous dans symfony, le model utilisateur est l'origine de ce module. Ce module assure l'inscription du client.
C'est le module qui permet d'ajouter ,modier ou supprimer une annonce. C'est le module qui permet la recherche.
Conclusion :
Etant donns les besoins des utilisateurs de notre application, la phase de conception vient pour permettre la dtermination des dirents objets contribuant assurer les fonctionnalits souhaites. Cette phase est une prparation la phase du codage garantissant une organisation claire et prcise et une facilite d'implmentation des classes invoques, des structures de donnes utilises et les relations qui existent entre les direntes classes. Nous essayons dans le chapitre ralisation d'implmenter les direntes classes et de montrer les fonctionnalits ralises suite cette implmentation .
26
Chapitre 6 Ralisation
Introduction :
Cette partie contient le dernier volet de ce rapport, elle a pour objectif d'exposer le travail achev. Nous allons commencer, tout d'abord, par la prsentation de l'environnement matriel et logiciel utilis pour dvelopper l'application demande. Ensuite, nous prsentons le travail accompli tout au long de la priode du projet. Enn, nous montrons le chronogramme de la ralisation du projet.
27
6.2.2 Inscription :
L'utilisateur peut creer un compte .C'est en appuillant sur Creer un compte dans la page d'acceuil . Il apparait le formulaire suivant :
28
6.2.3 Prole :
Aprs la connexion ,on se trouve dans notre prole ,on a beaucoups d'option :
29
6.2.5 Recherche :
En appuillant sur recherche on obtient l'interface suivant :
6.2.6 Administration :
L'application Backend est la zone rserv pour l'administrateur .Il peut manipuler la liste des utilisateurs,des annonces et reoit et envoit des messages au utilisateurs .
Conclusion :
Dans ce chapitre, nous avons prsent l'environnement de dveloppement matriel et logiciel avec lesquels ce projet a t ralis. Nous avons prsent aussi une vue du produit nal via quelques prises d'cran et nous avons ni par donns les dicults rencontrs durant ce projet. Nous allons clturer le prsent rapport par une conclusion gnrale.
32
Conclusion gnrale :
Dans ce projet nous avons ralis une annuaire d'entreprise .Pour ce faire, nous avons dvelopp un site web dynamique qui joue le role d'une interface de communication client -entreprises. Ce rapport est compos de six chapitre :le premier chapitre consiste une prsentation genrale du sujet .le deuxime chapitre prsente une tude pralable suivie d'une analyse et spcication des besoins dans un troisime chapitre .Les solutions possibleset le choix retenus sont traits dans le quatrime chapitre.dans le cinquime chapitre on a fait une conception globale du projet ainsi qu'une conception detaille .Nous avons nis par des prises d'crans de notre application pour expliquer la ralisation de notre projet. Ce projet d't m'a oert la possibilit d'approfondir certaines connaissances dans le langage de modlisation UML qui constitue un outil de conception extrmement dvelopp .De point vue technique,ce projet m'a permi d'approfondir mes connaissances dans les domaines du dveloppement et la conception. Il m'a oert une vritable opportunit pour se familiariser au framework Symfony-PHP. De plus cette exprience a t trs bnque . Mais cela n'empche que des amliorations peuvent tre eectues sur l'application en essayant d'orir plus de facilits l'utilisateur ,plus de securit qui demeura l'objectif de tout les applications informatiques.
33
Bibliographie
Hugo Hamon et Fabien Potencier -Les Cahiers du Programmeur : Symfony Mieux dvelopper en PHP avec Symfony 1.2 et Doctrine Editions EYROLLES .
34
Netographie
http ://www.wikipeadia.org http ://www.symfony-project.org http ://java.developpez.com
35