Vous êtes sur la page 1sur 37

Lundi 04 Janvier 2016 au

Vendredi 05 Fvrier 2016

Rapport de stage
Stage de fin dtudes

Tuteur entreprise : Ahilan THANGAVADIVEL


Tuteur acadmique : Michel VINCIGUERRA

Akram JHINGOOR
LYCE CHARLES DE FOUCAULD BTS SIO

JHINGOOR Akram

STAGE ADENIS 2016

Table des matires


Table des figures ..................................................................................................................................................... 2
Remerciements....................................................................................................................................................... 3
Introduction ............................................................................................................................................................ 4
Prsentation de lentreprise : ................................................................................................................................ 5
Prsentation des activits.................................................................................................................................. 5
Stratgie de lentreprise .................................................................................................................................... 5
Mon poste pendant le stage .............................................................................................................................. 5
Mission 1 : Formation Symfony2 ........................................................................................................................... 6
La mthode SCRUM ........................................................................................................................................... 6
1.1/ Contexte ................................................................................................................................................. 6
1.2/ Mthode SCRUM, quest-ce que cest ? ................................................................................................ 6
1.3/ La mthode SCRUM applique au stage. .............................................................................................. 7
Cheminement de la formation .......................................................................................................................... 8
2.1/Contexte de formation ........................................................................................................................... 8
2.2/ Les tches lies la formation............................................................................................................... 8
DEBUG .............................................................................................................................................................. 17
3.1/ Le principe du dbogage ...................................................................................................................... 17
3.2/ Le dbogage en temps rel .................................................................................................................. 17
Mission 2 : Prparation installation machines SDT ............................................................................................. 22
Contexte : ......................................................................................................................................................... 22
Droulement : .................................................................................................................................................. 22
Mission 3 : Intervention Salon Voyages Masson ................................................................................................. 24
Contexte ........................................................................................................................................................... 24
Liste des matriaux ncessaires : .................................................................................................................... 24
Droulement .................................................................................................................................................... 24
Exemple de paramtrage dun ordinateur ...................................................................................................... 25
Schma rseau du salon .................................................................................................................................. 29
Mission 4 : Migration Zend vers Symfony ........................................................................................................... 30
Zend, quest-ce que cest ? .............................................................................................................................. 30
Et Symfony alors, quest-ce que cest ? ........................................................................................................... 30
Zend vs Symfony .............................................................................................................................................. 31
Pourquoi choisir de migrer un projet vers Symfony2 ..................................................................................... 31
VEILLE TECHNOLOGIQUE : SYMFONY .................................................................................................................. 32
Pourquoi Symfony comme thme de veille .................................................................................................... 32
Les origines de Symfony .................................................................................................................................. 32
Pr requis matrielles et logicielles ................................................................................................................. 32
Symfony, les pour et les contres...................................................................................................................... 33
Dbuter avec Symfony ..................................................................................................................................... 33
Le routing : ....................................................................................................................................................... 34
Les contrleurs : ............................................................................................................................................... 34
Les templates : ................................................................................................................................................. 35
Doctrine : .......................................................................................................................................................... 35
Sources ............................................................................................................................................................. 35
Conclusion ............................................................................................................................................................ 36

JHINGOOR Akram

STAGE ADENIS 2016

Table des figures


Figure 1 - Cycle du SCRUM ...................................................................................................................... 7
Figure 2 - SCRUM appliqu au stage ....................................................................................................... 8
Figure 3 - Cration d'une entit Customer via CMD ............................................................................. 10
Figure 4 - Formulaire client ................................................................................................................... 11
Figure 5 - Contrleur du Formulaire Client ........................................................................................... 12
Figure 6 - La vue du Formulaire Client .................................................................................................. 13
Figure 7 - Config du swift mailer ........................................................................................................... 13
Figure 8 - Personne anonyme ............................................................................................................... 14
Figure 9 - Formulaire d'inscription ........................................................................................................ 14
Figure 10 - Security.yml ......................................................................................................................... 15
Figure 11 - Accs refus ........................................................................................................................ 17
Figure 12 - Ajouter un client TEST ......................................................................................................... 18
Figure 13 Erreur .................................................................................................................................. 19
Figure 14 - Code formulaire client......................................................................................................... 20
Figure 15 - Mthode find....................................................................................................................... 21
Figure 16 - Mthode findBy................................................................................................................... 21
Figure 17 - Rsultat des courses ............................................................................................................ 21
Figure 18 HP modle ProDesk 400 G1 Desktop Mini PC ....................................................................... 22
Figure 19 - Tableau de bord Adenis ...................................................................................................... 23
Figure 20 - Recensement des machines SDT ......................................................................................... 23
Figure 21 - Connexion au rseau local .................................................................................................. 25
Figure 22 - Protocole TCP/IPv4 .............................................................................................................. 26
Figure 23 - Ajout de l'imprimante ......................................................................................................... 26
Figure 24 - Nom de l'imprimante .......................................................................................................... 27
Figure 25 - Imprimante ajoute ............................................................................................................ 28
Figure 26 - Schma Salon Voyages Masson .......................................................................................... 29
Figure 27 - Zend Framework ................................................................................................................. 30
Figure 28 - Symfony Framework ........................................................................................................... 30

JHINGOOR Akram

STAGE ADENIS 2016

Remerciements
Je remercie spcialement M. Ahilan THANGAVADIVEL, qui a t mon tuteur sur lensemble
des deux stages effectu chez Adenis. Je le remercie pour mavoir accept en stage, pour
mavoir partag son exprience professionnelle et avoir eu la patience de recruter un
stagiaire original comme moi.

Je remercie galement Mlle Rihab ABDELHEDI qui ma encadr dans ce stage de fin dtudes
pour mavoir aid dans mon apprentissage du Framework Symfony2, pour ses excellents
conseils de dveloppeurs et pour mavoir support pendant ces 5 semaines.

Je remercie aussi M. Alain ANTISTE pour avoir partag son exprience professionnelle et
mavoir fait comprendre quel point lorganisation et la gestion de projets taient
importants. Je le remercie pour avoir pris le temps de maider dans la prparation de mon
preuve et pour ces prcieux conseils.

Et enfin, je remercie toute lquipe des techniciens, Mervyn, Marie, Giresse, Junior,
Anthony,Rmi, Ghislain, Steeve pour lambiance joviale et leur accueil qui a facilit mon
intgration. Je les remercie tous pour les conseils quils mont donne pour mon projet
professionnel et mon avenir.

JHINGOOR Akram

STAGE ADENIS 2016

Introduction
Dans le cadre de mon formation de BTS SIO spcialit SLAM, jai pu effectuer mon stage de
premire anne et de deuxime anne au sein de la socit Adenis. Durant mes stages, jai
pu obtenir une exprience significative pour ma vie professionnelle et apprendre
normment en tant que dveloppeur informatique.
Pendant ces 10 semaines de stage, jai particip deux projets sous le Framework Symfony2
avec le langage PHP. Jai aussi particip des interventions de solutions dinfrastructure
pour des clients de la socit Jai pu obtenir des connaissances en adressage IP, en
installation de solutions matrielles en base de donnes, en gestion de projet et sur le
Framework Symfony2 et Zend.
Je vais prsenter dans ce rapport de stage les diffrentes missions que jai ralis dans le
cadre de mon stage de fin dtudes :

Les interventions auquel jai particip ;

La formation Symfony2 ;

La migration dun projet Zend vers Symfony2.

Dune part, je vais prsenter lentreprise dans laquelle jai exerc mes stages et dune autre
part, je vais prsenter les missions de mon stage de fin dtudes.

JHINGOOR Akram

STAGE ADENIS 2016

Prsentation de lentreprise :
Prsentation des activits

Adenis est une SSII cre en 1999 par Jerme Benbihi et David Marciano (les actuels
dirigeants). Le sige social est bas Bagnolet, regroupant tous les services : la direction, la
comptabilit, la finance, la gestion de projet et le support. Au dpart, lentreprise se
destinait la vente de matriel informatique et au support technique.
Au fur et mesure, Adenis volue son offre afin daccompagn ses clients, allant du support
technique, de lhbergement jusquau dploiement de lien physique.
Ainsi, Adenis dveloppe une offre de communications unifie (ToIP, trunk SIP, Asterisk...) Il
fournit internet (en partenariat exclusif avec Orange) par diffrents biais soit par le
dploiement de fibre noire, optique ou de solution SDSL 1
Adenis offre galement un service daudit et de conseil en systmes et rseaux. Allant de la
cration darchitectures LAN et WAN, la conception de serveurs et de postes de travails
jusqu leurs intgrations et hbergements.

Stratgie de lentreprise

Adenis applique une politique de niche en ciblant des agences de voyages en leur proposant
des offres de services globales, des accs scuriss et une expertise avance.

Mon poste pendant le stage

Au sein dAdenis, jai pu entrevoir les diffrents aspects du poste de dveloppeur


informatique. Par exemple, lidentification du besoin des futurs utilisateurs lis un projet
en tenant compte des contraintes telles que la simplicit, la performance et ladaptabilit du
projet.
Ma principale mission tait de participer aux projets en dveloppant une partie ou un
module du projet.

JHINGOOR Akram

STAGE ADENIS 2016

Mission 1 : Formation Symfony2


La mthode SCRUM
1.1/ Contexte
Lquipe autour du projet tait compose du dveloppeur informatique, deux stagiaires
dveloppeur informatique. Le projet tait encadr par le Directeur TechniqueM. Ahilan
THANGAVADIVEL.
Dans le cadre du stage et de la gestion projet, il fallait instaurer une dmarche de travail
pour le bon suivi des tches. Les mthodes dites "Agiles" ont permis de pouvoir faciliter
l'organisation de projet et la gestion des diffrentes tches.
La mthode utilise ici pour la gestion de projet tait la mthode Agile SCRUM. Cela permet
une gestion ractive, structure et interactive des diffrents projets de lentreprise.
1.2/ Mthode SCRUM, quest-ce que cest ?
La mthode SCRUM dfinit un cadre de travail permettant la ralisation de projets
complexes. Initialement prvu pour le dveloppement de projets type Software , cette
mthode peut tre applique tout type de projet, du plus simple au plus innovant, et ce de
manire trs simple.
Les projets qui suivent la mthode Agile SCRUM sont diviss en plusieurs cycles de
travail relativement court que lon appelle sprints . Ces derniers permettent aux membres
de lquipe dvaluer rgulirement les progrs lis au projet et de planifier les prochaines
tapes de dveloppement. Mais cela permet surtout de rajuster ou rorienter la direction
prise par le projet si besoin est, partir dune base de travail dj acheve et valide (sprint).
Chaque projet utilisant la mthode SCRUM sorganise autour dune quipe auto-organise
car il ny a pas de chef dquipe qui dcide des rles de chacun, ou de la manire dont un
problme est rsolu, puisque ces problmatiques sont traites par lquipe dans son
ensemble ; et multifonctionnelle car chaque membre de lquipe est parti prenant dans le
dveloppement de chaque fonctionnalit, de lide limplmentation finale.

JHINGOOR Akram

STAGE ADENIS 2016

Figure 1 - Cycle du SCRUM

Il existe trois rles principaux pourvoir : Le responsable produit, le SCRUM Master, et le


membre de lquipe.

Le responsable produit : Ce dernier est en charge de communiquer la vision


globale du produit lquipe. Il se doit de reprsenter le client final, se mettre
sa place et donc de prioriser ses besoins. Il est celui qui a le plus de
responsabilits et dautorit. Le responsable produit est en effet celui qui est en
premire ligne lorsque quelque chose se passe mal.
Le SCRUM Master : Il ne manage pas lquipe, mais travaille liminer tous les
obstacles qui peuvent empcher lquipe datteindre les objectifs fixs pour
chaque sprint de travail. En rsum, ce rle permet lquipe de rester crative
et productive, tout en veillant ce que les ralisations soient visibles pour le
responsable produit.
Membre de lquipe : Dans la mthode SCRUM, lquipe est responsable de la
ralisation oprationnelle des travaux . Cest toute lquipe qui est
responsable du rsultat final de chaque sprint.La manire dont sont excutes les
tches est trs libre mais cette libert doit tre nanmoins cadre par lobligation
de rpondre aux objectifs du sprint.

1.3/ La mthode SCRUM applique au stage.


Afin dtre dans un cadre propice pour la ralisation de projet, nous avons appliqus la
mthode SCRUM prconis par notre chef de projet notre stage.
Javais dj des connaissances sur le Framework Symfony2 et il a fallu former lautre
stagiaire en dveloppement. Ainsi, nous avons organiss les diffrentes tches selon des
sprints.
7

JHINGOOR Akram

STAGE ADENIS 2016

Le dveloppeur informatique a eu le rle de SCRUM Master, mon tuteur, le responsable


ingnieur a le rle de Responsable produit et nous tions, les stagiaires, les membres de
lquipe.
Cette mthode nous a apport une dimension organisationnelle pour le projet et le stage en
lui-mme.

Figure 2 - SCRUM appliqu au stage

Cheminement de la formation
2.1/Contexte de formation
Ds le premier jour, nous avions pris connaissance avec lenvironnement de travail de la
socit sur laspect dveloppement. Les mthodes de travail, lenvironnement logiciel, le
langage principal utilis etc Ayant dj fait mon stage de premire anne chez ADENIS. Jai
dj une certaine connaissance de lenvironnement de travail. Lautre stagiaire dveloppeur
ne connaissait pas Symfony2 et larchitecture MVC* avec le PHP POO. Ainsi, il a donc fallu
former le stagiaire dveloppeur pour quelle puisse se familiariser avec cette technologie. La
formation a donc t organise sous forme de tches pour se positionner sur le SCRUM du
stage.

2.2/ Les tches lies la formation


Voici comment nous avons organis la formation sous forme de plusieurs tches :
Installation de Symfony2 et cration d'un projet Symfony2 ;
Contexte d'un mini projet comme appui la formation ;
Cration d'entit objet : Client et Company;
8

JHINGOOR Akram

STAGE ADENIS 2016

Cration formulaire pour ajouter, modifier ;


Envoyer un email avec Symfony2 ;
Scuriser une application avec une page de connexion et une page inscription ;
Scurit sur Symfony2.

Installation de Symfony2 et cration dun projet Symfony2


Pour linstallation de Symfony2, on a commenc par les pr requis savoir : un serveur web
(Apache*, par exemple), un moteur de base de donnes (MySQL), et PHP 5.3.2 ou plus
rcent.
Quoi de mieux pour comprendre et installer une technologie quun tutoriel bien expliqu.
Voici le lien dun trs bon tutoriel qui relate ce que nous voulons faire :
http://www.lafermeduweb.net/tutorial/demarrer-un-projet-avec-symfony-p27.html

Contexte dun mini projet comme appui la formation


Afin de pouvoir comprendre et poursuivre la formation rien de tel quun contexte. On a pris
un contexte simple : une socit et ses clients. Pour une socit, on voudrait savoir sa raison
sociale, son adresse, son code postal et sa ville. Pour le client, on voudrait connatre son
pseudo, son prnom, son nom de famille et de quelle compagnie il est client. On voudrait
pouvoir ajouter un client, des compagnies, les modifier et les supprimer. Un tableau de bord
o lon pourrait voir les clients et les compagnies.

JHINGOOR Akram

STAGE ADENIS 2016

Cration d'entit objet : Client et Company et Utilisation de la php app/console


Symfony2 a lavantage de fonctionner avec une commande et un panel dinstruction
permettant de raliser diffrentes actions comme crer une entit objet dans la base de
donnes. Pour tout ce qui concerne les bases de donnes, Symfony2 utilise Doctrine ORM*.

Figure 3 - Cration d'une entit Customer via CMD

Il suffit de passer cette commande pour lentit objet soit crer dans la base de donnes :
php app/console doctrine :schma :update --force

10

JHINGOOR Akram

STAGE ADENIS 2016

Cration formulaire pour ajouter, modifier


Les formulaires aussi ont une particularit puisquils sont grs par Symfony2. On cre un
formulaire basique et on devra le dclarer comme un objet. Par dfaut, le formulaire gnr
par Doctrine affiche des champs pour toutes les colonnes de la table. Un formulaire permet
une action sur une entit objet donc il est li une entit. On va sintresser un formulaire
dajout des clients. En partant du principe quil y a dj quelques socits dans la base de
donnes, on va crer un formulaire avec lusername, firstname et lastname du client de
type TEXTE. Pour lassocier une compagnie, on va crer une liste droulante.

Figure 4 - Formulaire client

11

JHINGOOR Akram

STAGE ADENIS 2016

Qui dit formulaire dit traitement de donnes. Le traitement du formulaire se fait dans le
contrleur et cest ici mme o on dclare le formulaire.

Figure 5 - Contrleur du Formulaire Client

12

JHINGOOR Akram

STAGE ADENIS 2016

Figure 6 - La vue du Formulaire Client

Envoyer un email avec Symfony2


Envoyer un mail est possible avec Symfony2 puisque SwiftMailer, une bibliothque base
de composants pour l'envoi d'e-mails partir d'applications PHP, gre ce service
Cest le mme principe quun formulaire sauf quil faut modifier la config de Symfony2. Un
exemple de config.yml pour cerner la chose.

Figure 7 - Config du swift mailer

13

JHINGOOR Akram

STAGE ADENIS 2016

Scuriser une application avec une page de connexion et une page inscription
Comme on peut le remarquer, on est considr comme un utilisateur anonyme.

Figure 8 - Personne anonyme

On va alors crer une page de connexion et une page dinscription pour accder aux
diffrents actions du projet. De ce fait, il nous faut crer une entit User qui rpertorie les
utilisateurs inscrits.
Une fois inscrit, on va pouvoir se connecter lapplication. La scurit sous Symfony2 est
trs pousse, on peut la contrler trs facilement.
La dmarche est simple : On cherche identifier lutilisateur qui accde lapplication et
aprs authentification, on gre laccs lutilisateur en question.
Bon dans ce cas-ci, en sinscrivant, on laisse le choix lutilisation de devenir admin ou
utilisateur.

Figure 9 - Formulaire d'inscription

14

JHINGOOR Akram

STAGE ADENIS 2016

Scurit sur Symfony2


La scurit est un processus en deux tapes dont le but est d'empcher un utilisateur
d'accder une ressource dont il ne devrait pas avoir accs.
Le composant de scurit peut tre configur via la configuration de votre application
l'aide du fichier security.yml partir du dossier app/config.
Voici un extrait pour comprendre la scurit gre par Symfony2.

Figure 10 - Security.yml

15

JHINGOOR Akram

STAGE ADENIS 2016

Partie role_hierarchy
La notion de rle est au centre du processus d'autorisation. On assigne un ou plusieurs
rles chaque utilisateur, et pour accder aux ressources on demande que l'utilisateur ait
un ou plusieurs rles. Ainsi, lorsqu'un utilisateur tente d'accder une ressource, le
contrleur d'accs vrifie s'il dispose du ou des rles requis par la ressource. Si c'est le cas,
l'accs est accord. Sinon, l'accs est refus. Le ROLE_ADMIN hrite du ROLE_USER par
dfaut et le ROLE_SUPER_ADMIN hrite du ROLE_ADMIN et donc du ROLE_USER
Partie encoders
Cette partie de la configuration permet donc de modifier l'encodeur utilis pour vos
utilisateurs, et donc la faon dont sont encods les mots de passe dans votre application. Le
mode encoders utilis ici est le sha512 pour crypter les mots de passes.
Partie providers
Un provider est un fournisseur d'utilisateurs. Les firewalls s'adressent aux providers pour
rcuprer les utilisateurs et les identifier. Dans notre cas, les firewalls chercheront dans
lentit User que lon a dfinie ici.
Partie firewalls
Un pare-feu cherche vrifier que vous tes bien celui que vous prtendez tre. Ici on
dfinit un espace scuris o il faut se connecter pour accder aux diffrentes pages.
Login_path : /loginrenvoie vers la fonction qui va soumettre le formulaire et check path
/login_check vers la fonction qui va vrifier/traiter la demande. La partie pour se
dconnecter est aussi dfini et redirige vers le formulaire de connexion.
Partie access control
Le contrle d'accs (ou access control en anglais) va s'occuper de dterminer si le visiteur a
les bons droits (rles) pour accder la ressource demande.
Ainsi, les niveaux des rles des utilisateurs sont dfinis par lintermdiaire de lentit Rles.
On peut restreindre laccs dune partie du contenu une partie des utilisateurs.

16

JHINGOOR Akram

STAGE ADENIS 2016

Figure 11 - Accs refus

DEBUG
3.1/ Le principe du dbogage

Les erreurs sont toujours frquentes quand on dveloppe et cela peut arriver tout le
monde mme au meilleur. Les erreurs amnent une recherche de solutions par le
dbogage. Cest le fait d'enlever les erreurs d'un programme, en suivent le droulement de
ce programme afin d'en reprer et corriger les dysfonctionnements. La faute a un pointvirgule, ou bien une mthode mal utilis voir un blocage au niveau du systme.
3.2/ Le dbogage en temps rel

Dans cette partie, nous allons prendre un exemple derreur DEBUG afin de comprendre la
dmarche suivre. Nous allons essayer de crer un client test qui sera associ la
compagnie CompanyTest. De ce fait, soumettre ce cas au formulaire dajout de client du
mini-projet.

17

JHINGOOR Akram

STAGE ADENIS 2016

Figure 12 - Ajouter un client TEST

Lors de la validation du formulaire, on peut apercevoir une erreur. Cest fcheux et cest tant
mieux.
Limportance lors dun dbogage est de pouvoir comprendre lerreur affich. Voicilerreur en
question:
The identifier id is missing for a query of Test\Bundle\CeriseBundle\Entity\Client
Juste aprs, nous avons la STACK TRACE qui montre et identifie la possible source du
problme avec la fonction qui renvoie lerreur affich prcdemment. Le deuxime point
nous dit quil y a une erreur quil manque le champ identifiant. Rappelons que lID est gnr
automatiquement par Symfony2.
Il est dcrit que la mthode find de lENTITY MANAGER rcupre un tableau avec les
donnes que lon a rentr dans notre formulaire.

18

JHINGOOR Akram

STAGE ADENIS 2016

Figure 13 Erreur

Daprs ce que lon comprend de lerreur, il y aura un problme avec la requte puisquil
manquerait un argument.
Dans le code, on vrifie laide de la mthode findsi lutilisateur est dj prsent dans la
base de donnes. Si ce nest pas le cas, alors on peut linsrer dans la table CLIENT.
Concrtement, lerreur serait ici dans lutilisation de la mthode find.

19

JHINGOOR Akram

STAGE ADENIS 2016

Figure 14 - Code formulaire client

La mthode find slectionne une information par une cl primaire. En gros, on donne
lidentifiant et il nous renvoie les informations associes cet identifiant. Comme on a pu le
voir dans le code, on passe en argument un tableau au lieu dun ID.

20

JHINGOOR Akram

STAGE ADENIS 2016

Figure 15 - Mthode find

Il faut donc trouver une autre mthode pour continuer le traitement. Sachant quon doit
passer un tableau en argument, il sera judicieux dutiliser la mthode findBy qui, lui,
demande un tableau en argument.

Figure 16 - Mthode findBy

Il suffit de remplacer la mthode find par la mthode findBy et hop le tour est jou. Voil,
lajout du client peut se faire.

Figure 17 - Rsultat des courses

21

JHINGOOR Akram

STAGE ADENIS 2016

Mission 2 : Prparation installation machines SDT


Contexte :
ADENIS possde plusieurs clients. Un client, SDT une agence de voyage sous traite sa partie
solution systme et rseau ADENIS. SDT a command des ordinateurs auprs dADENIS. La
responsable du systme avait assign cette mission un technicien du support ainsi qu' un
autre stagiaire du support technicien.
Malheureusement, le stagiaire-technicien s'est bless hors travail et a t contraint d'arrter
son stage. Ainsi, j'ai aid la prparation de l'intervention.

Droulement :
On devait installer une vingtaine dordinateurs dans une des agences de SDT. Il avait
command auprs dADENIS des ordinateurs. Les ordinateurs taient configurs chez
ADENIS pour les prparer pour leur installation dans lAgence SDT.
Les ordinateurs commands sont de la marque HP modle ProDesk 400 G1 Desktop Mini PC

Figure 18 HP modle ProDesk 400 G1 Desktop Mini PC

Le dmarche est simple :

Allumer les PC HP et vrifier si le produit nest pas dfectueux ;


Installer le Pack Office et activer la licence du Pack logiciel ;
Installer lAgent Adenis comprenant lanti-virus ;
Excuter le programme Agent Adenis et vrifier sil apparait dans le tableau de bord
Adenis ;
Recenser les ordinateurs par Numro de srie ;

Durant linstallation, on doit vrifier si lAgent Adenis est bien prsent sur lordinateur.
Cette Agent Adenis aide la prvention dventuels problmes ou autres soucis techniques
et au bon fonctionnement de lordinateur.
22

JHINGOOR Akram

STAGE ADENIS 2016

Figure 19 - Tableau de bord Adenis

On peut y voir les machines installes lAgence de SDT avec pour chacun les sessions et
utilisateurs des diffrentes machines.
Toute activit a besoin dtre reprsent sous la forme dun document pour avoir une trace
de celle-ci et pour quil soit compris dautres personnes extrieurs cette activit
(Responsable systme, le directeur informatique, les autres techniciens, le client etc).
Pour rpertorier les ordinateurs installs, on a recens chacun avec leurs informations dans
un document Excel.

Figure 20 - Recensement des machines SDT

23

JHINGOOR Akram

STAGE ADENIS 2016

Mission 3 : Intervention Salon Voyages Masson


Contexte
Voyages Masson, un groupe d'agences de voyage, prpare un salon au muse du cheval de
Chantilly.
Dans ce salon, le groupe Voyages Masson prsentera les diffrents services de l'entreprise
avec des coins pour chaque conseiller.
L'agence de voyage a donc fait appel Adenis pour la prparation et l'installation de
l'infrastructure informatique.

Liste des matriaux ncessaires :

HP LaserJet P2015 - Imprimante


HP LaserJet P2055dn
50m de cble Ethernet
2 routeurs NETGEAR ProSafe GS108 8-port
2 Ordinateurs portables Lenovo (proprit d'Adenis)
6Ordinateurs portables du personnel Voyages Masson

Droulement
Lespace consacr Voyages Masson tait partag par 7 espaces personnels pour chaque
conseiller. Chaque conseiller doit avoir accs la Wi-Fi du Salon et doit avoir la possibilit
dimprimer une fiche de renseignements ou autre document.
Lagence Voyages Masson possde 2 imprimantes pour le salon. Chaque ordinateur devait
aussi avoir accs au module propos par Adenis (contrle distance pour la
tlmaintenance).
Lespace Voyages Masson tait tendu. Nous avons alors regroup les espaces personnels
en 2 secteurs. Chaque secteur dispose dune imprimante. Nous avons install 4 ordinateurs
portables donc le secteur 1 avec limprimante HP LaserJet P2055dn et 3 ordinateurs
portables au secteur 2 avec limprimante HP LaserJet P2015. Un ordinateur est plac
laccueil utilisant le Wi-Fi.
On a utilis les routeurs NETGEAR pour relier les diffrents ordinateurs aux imprimantes de
leurs secteurs respectifs. On paramtre chaque ordinateur sur la plage dadresse IP utilis
pour les imprimantes.

24

JHINGOOR Akram

STAGE ADENIS 2016

Exemple de paramtrage dun ordinateur


La dmarche est simple pour que lordinateur en question accde au rseau local et
limprimante.On tablit une connexion au rseau local quon a mis en place pour le salon de
Voyages Masson.

Figure 21 - Connexion au rseau local

25

JHINGOOR Akram

STAGE ADENIS 2016

On dfinit ladresse IP via le


Protocole Internet Version 4
(TCP/IPv4) ainsi que le masque
de sous-rseau et la passerelle
par dfaut.

Figure 22 - Protocole TCP/IPv4

Une fois ladressage IP termin, on peut installer limprimante. On installe chaque


imprimante son secteur par dfaut.

Figure 23 - Ajout de l'imprimante

26

JHINGOOR Akram

STAGE ADENIS 2016

Windows va dtecter automatiquement le pilote dimpression utiliser. Pour faciliter


lidentification de chaque imprimante, on va leur donner un nom.

Figure 24 - Nom de l'imprimante

27

JHINGOOR Akram

STAGE ADENIS 2016

Voil, on a ajout limprimante lordinateur. Par soucis de prvention, on ajoute lautre


imprimante au cas o limprimante du secteur lche.

Figure 25 - Imprimante ajoute

28

JHINGOOR Akram

STAGE ADENIS 2016

Schma rseau du salon


Pour cette intervention, jai ralis un schma rseau afin de comprendre et dtre mieux
organis.
On peut y avoir la passerelle par dfaut, les plages dadresses IP attribues aux ordinateurs
et imprimantes.

Figure 26 - Schma Salon Voyages Masson

29

JHINGOOR Akram

STAGE ADENIS 2016

Mission 4 : Migration Zend vers Symfony


Zend, quest-ce que cest ?

Figure 27 - Zend Framework

Le Zend Framework est un projet PHP gratuit fourni par la socit Zend. Les objectifs du projet sont
les suivants :

Acclrer le dveloppement de sites web


Faciliter la maintenance
Industrialiser la faon de coder en PHP

Ce Framework permet de faciliter et de fiabiliser le dveloppement de sites dynamiques en PHP. Il


s'adresse notamment aux entreprises : le risque associ au dveloppement d'un site d'envergure est
significativement infrieur avec l'utilisation du Zend Framework.

Et Symfony alors, quest-ce que cest ?

Figure 28 - Symfony Framework

Symfony est un Framework cod en PHP qui va nous permettre de dvelopper une immensit
d'applications web de la plus simple la plus complexe imaginable.
Car en effet, Symfony dfinit un squelette de base respecter, mais dans lequel on peut y mettre
tout le code que l'on souhaite.
30

JHINGOOR Akram

STAGE ADENIS 2016

Zend vs Symfony
Zend FrameWork
Le Zend Framework est plus considr
comme une grosse bibliothque de
fonctionnalits plutt qu'un
Framework part entire et n'est pas
trs simple comprendre pour un
dbutant.
Dans sa version 2, il passe rellement
dans la catgorie des Framework avec
une approche trs proche de celle de
Symfony2.
Nanmoins, de solides connaissances
sont aussi prvoir afin d'exploiter
correctement l'outil.

Symfony Framework
Symfony est un Framework qui dispose
d'un bon nombre de briques de base
tout en laissant pas mal de liberts au
dveloppeur.
Cependant, Symfony peut tre dlicat
aborder pour un dbutant s'il n'a pas de
bonnes connaissances en
programmation oriente objet.
Il ncessite une certaine matrise des
technologies web pour en exploiter
toute la puissance du produit.

Pourquoi choisir de migrer un projet vers Symfony2


Une grande rputation
Lanc en 2005, Symfony est aujourd'hui un Framework stable connu et reconnu l'international.
Symfony dispose aussi une communaut active de dveloppeurs, intgrateurs, utilisateurs et
d'autres contributeurs qui participent l'enrichissement continu de l'outil.
De l'innovation
Symfony est tout ce que vous attendez d'un Framework : rapidit, flexibilit, des composants
rutilisables, etc.
De bonnes ides ont fait leur petit bout de chemin, c'est par exemple le cas de l'injection de
dpendances. Un concept tout droit venu du monde du Java !
Une grande communaut derrire
Une communaut se trouve cot de vous ! Des conversations par mail sont partages, des channels
IRC existent pour que vous exposiez vos problmes, de nombreux travaux sont publis rgulirement
et bien videment, le Site du Zro est l pour vous accompagner ! Il nexiste quasiment pas de
problme nayant pas dj eu une solution.
Le Framework de la socit Adenis
Dans la socit dAdenis, les dveloppeurs sont habitus utiliser Symfony2 et possde ainsi de
bonnes connaissances sur le sujet. Les projets sont raliss en interne avec ce Framework pour les
raisons exposs ci-dessus.

31

JHINGOOR Akram

STAGE ADENIS 2016

VEILLE TECHNOLOGIQUE : SYMFONY


Symfony est un ensemble de composants PHP, un Framework pour application web, une philosophie,
ainsi qu'une communaut le tout fonctionnant en harmonie.

Pourquoi Symfony comme thme de veille


Symfony, un Framework qui m'a beaucoup servi durant mon stage et sur lequel j'ai pu m'appuyer
pour dvelopper au sein de la socit Adenis. Ce Framework tait en quelque sorte une suite logique
dans l'apprentissage du PHP puisqu'il est recherch sur le march du travail et que la communaut
Symfony est grande.
J'ai choisi ce thme pour ma veille technologique car dans un premier temps, je devais me former sur
cette technologie afin de pouvoir participer aux projets de la socit et dans un second temps, jai
trouv cette technologie intressante puisque le PHP tait le premier langage dans lequel jai cod.
Cette veille me permet de valider des comptences suivantes :
A5.2.2 Veille technologique
A5.2.3 Reprage des complments de formation ou dauto-formation utiles lacquisition de
nouvelles comptences
A5.2.4 tude dune technologie, dun composant, dun outil ou d'une mthode.

Les origines de Symfony


Le site du Framework symfony a t lanc en octobre 2005. lorigine du projet, on trouve une
agence web franaise, Sensio, qui a dvelopp ce qui sappelait lpoque Sensio Framework pour
ses propres besoins et a ensuite souhait en partager le code avec la communaut des dveloppeurs
PHP. Le projet est alors devenu symfony (car le crateur voulait garder les initiales SF comme
Sensio Framework ), puis Symfony partir de la version 2

Pr requis matrielles et logicielles


Serveur Apache &PHP : WAMP/XAMP (Windows) ou LAMP (Linux)
Les fichiers sources de base lapplication (disponible sur le site officiel)
Un diteur de texte (Sublime Text, NotePad++, Gedit). Pour ma part, jutilisais NetBeans car ctait
trs adapt Symfony notamment avec la console qui pouvait gnrer des entits objets.

32

JHINGOOR Akram

STAGE ADENIS 2016

Symfony, les pour et les contres


Avantage :
- Open source: Symfony est distribu sous une licence Open Source, vous navez donc pas de
contraintes imposes et cela vous permet le dveloppement de solutions propritaires;
- Grande communaut d'utilisateurs : Avec une forte utilisation par les professionnels et une
grande communaut de dveloppeurs ayant utilis Symfony, Quelle que soit le problme, la
question ou le bug, vous trouverez toujours la rponse auprs du support de SensioLabs ou
auprs de la communaut.
- Gain de temps et qualit optimise : Par lutilisation de composants dj existants, on
supprime les tches faible valeur ajoute pour se concentrer exclusivement sur des aspects
plus complexes. Le temps gagn sur ces tches peut tre ddi des composants plus
spcifiques ou des tests en profondeur, vous garantissant ainsi un code solide, durable et
un projet de bonne qualit.
Inconvnients :
- L'apprentissage complexe et lourd : Apprendre un framework ncessite du temps et de la
patience mais Symfony demande un temps d'apprentissage important. Symfony est quand
mme un ensemble de composants et qu'il faut pouvoir lutiliser (moteur de templates,
Doctrine, etc...)
- Coder en Symfony, un autre langage : Il est vrai que Symfony2 est un framework PHP mais le
"PHP dur la main" n'est pas possible puisqu'il faut utiliser d'autres langages pour
comprendre (Twig pour les vues, yml pour les config de Symfony...). Programmer en
Symfony2 signifie rester strictement sur l'architecture du MVC certes mais celui propre
Symfony. Pour dbogguer, on sait dj que cela peut devenir difficile.

Dbuter avec Symfony


Le dcoupage est effectu comme suit :
/app : on y trouve les fichiers de configurations, les paramtres et le cache
/src : cest ici quest le code source (sous forme de bundles)
/web : contrleur frontal app.PHP (quivalent de index.PHP) et les fichiers de css
/vendor : les composants : Doctrine, Twig, librairies externes
En ralit, le dossier /web comporte deux contrleurs frontaux, un pour lenvironnement de
production destin aux internautes app.PHP et un second destin aux dveloppeurs
app_dev.PHP qui est optimis pour la rsolution des problmes et le dbogage.
Comme expliqu prcdemment, dans le dossier /src on trouve des bundles, ce sont simplement
des dossiers dans lesquels on y trouve des fonctions spcifiques pour telle ou telle tches effectuer
par lapplication. Cela permet, une fois de plus, de dcouper son code et ainsi faciliter la lecture de
celui-ci.

33

JHINGOOR Akram

STAGE ADENIS 2016

Le routing :
Une chose importante savoir, Symfony fonctionne grce un systme de route . Cest dire que
chaque fonction cre une route unique, ce qui permet dexcuter la fonction correspondante la
route passe dans lurl. Les routes sont dfinies dans le fichier routing.yml situ dans le dossier
/app/config/ .
Exemple de route dans le fichier routing.yml :
helloworld :
pattern: /hello-world
defaults: {
_controller: TestBundle:Test:hello
}
(Ici, lurl www.monsite.com/hello-world redirige vers la fonction hello du contrleur
TestController du bundle TestBundle ).

Les contrleurs :
Comme dit prcdemment, Symfony respecte le modle MVC et le PHP objet, ainsi le contrleur est
le chef dorchestre de lapplication. Chaque bundle a donc son propre contrleur (cependant, il
nest pas rare de trouver plusieurs contrleurs pour un seul bundle).
Exemple du contrleur TestController :
<?PHP
namespace Test\TestBundle\Controller;
useSymfony\Bundle\FrameworkBundle\Controller\Controller;
useSymfony\Component\HttpFoundation\Response;

classTestController extends Controller


{
public function helloAction()
{
$hello = Hello world ;
return $this->render(MainBundle:hello:hello.html.twig, array(hello => $hello));
}
}
(ici, la fonction helloAction() permet de gnrer la page hello.html.twig en lui passant la variable
$hello dfinie juste avant)
34

JHINGOOR Akram

STAGE ADENIS 2016

Les templates :
Symfony2 inclut un moteur de templates, Twig, les vues sont donc gnres grce ce moteur. Les
vues permettent au webdesigner davoir un code plus lisible et de scuriser les variables
automatiquement.
Exemple de la vue hello.html.twig :
<!DOCTYPE html>
<html>
<head>
<title>Hello world</title>
</head>
<body>
<h1>{{ hello }}</h1> // Affichage du contenu de la variable $hello
</body>
</html>

Doctrine :
Doctrine est, contrairement Composer, intgr par dfaut dans Symfony. Doctrine est un ORM
(Object Relation Manager), son but est donc de permettre lutilisateur de communiquer avec une
base de donnes au travers dobjets (crs grce au PHP) sans avoir besoin dcrire les requtes
(requtes MySql, par exemple). Doctrine permet aussi la cration dentits. Elles pourront tre
utilises comme objet en PHP et Doctrine se sert de ces entits pour gnrer la base de donner
automatiquement (une entit = un table dans la base de donnes).

Sources
http://symfony.com/fr/what-is-symfony
https://fr.wikipedia.org/wiki/Symfony
https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-frameworksymfony2/symfony2-un-framework-php

35

JHINGOOR Akram

STAGE ADENIS 2016

Conclusion
Durant mes dbuts dans la socit, je ntais pasassez entreprenant et je travaillais de mon ct. Au
fur et mesure des jours, toute lquipe a su faciliter mon intgration. Cela ma permis de collaborer
avec les autres. Jai pris conscience que le travail dquipe tait essentiel pour un cadre propice au
travail. Jai rencontr des personnes ayant un vcu professionnel et humain qui ma donn une ide
du mtier de dveloppeur et de travailler dans une socit.
Je suis satisfait de mon stage puisque jai pu apporter mes connaissances mais surtout apprendre
normment sur les technologies utilises en entreprise et sur le march du travail.
Jai franchi un cap dans mon projet professionnel et jai une meilleure perception de ce que je
voudrais faire plus tard.
Jespre pouvoir faire une formation en alternance avec une entreprise et pourquoi ne pas
renouveler laventure avec Adenis.

36

Vous aimerez peut-être aussi