Vous êtes sur la page 1sur 25

2009

Olivier Versanne

Matre de stage
Ronan Lequere [RAPPORT DE STAGE]
Encadrant ESIAL Deuxime anne ESIAL
Herv Panetto

SQLI > Web Agency > PAGT > Dveloppeur PHP

Dveloppement du site web dune grande maison de luxe sous


eZ Publish, au sein de lquipe technique du groupe SQLI.

SQLI Paris - Sige social ESIAL

Immeuble le Pressens Campus Aiguillettes


268 avenue du Prsident Wilson 193 avenue Paul Muller
93210 La Plaine Saint-Denis CS 90172
54602 Villers-ls-Nancy

Tl : +33 (0) 1 55 93 26 00 Tl. : +33 (0) 3 83 68 26 00


Fax : +33 (0) 1 55 93 26 01 Fax : +33 (0) 3 83 68 26 09

www.sqli.com www.esial.uhp-nancy.fr
[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

Avant-propos
Ce rapport traite du stage effectu en deuxime anne de lESIAL. Le stage a pour but
deffectuer un travail de niveau technicien afin de valider la deuxime anne. Il sinscrit dans le
cursus ESIAL et prcde le stage ingnieur de six mois lanne suivante. La dure du stage est dun
minimum de 8 semaines.

Mon stage sest droul du 2 juin 2009 au 28 aot 2009 dans la socit SQLI situe Paris.
Jai t accueilli par Ronan Lequere qui fut mon matre de stage et mon encadrant universitaire fut
Herv Panetto.

Remerciements

Je remercie Ronan Lequere pour mavoir donn la chance dintgrer lquipe SQLI Agency.
Merci aussi pour toutes les aides que tu as pu mapporter lors du stage et ce, mme avec les faibles
disponibilits que tu avais.

Merci galement Ly Lo Cong, mon matre eZ Publish , qui ma normment apport dans
la connaissance de cet immense Framework.

Merci Marie Lange, ma chef de projet, pour avoir su nous mettre la pression juste comme il
fallait pour que le projet avance bien. Je te souhaite bon courage pour la suite.

Enfin, je tiens galement remercier toute lquipe PAGT de SQLI Agency qui ma accueilli
chaleureusement, et avec qui jai pass de trs bons moments pendant ces trois mois. Je noublierai
pas tous les bons moments, ainsi que les pots dagence mensuels et les soires passes ensemble.

tous je souhaite une bonne continuation et espre vous revoir prochainement.

Olivier Versanne | Avant-propos 2


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

Sommaire
Avant-propos .........................................................................................................................2
Remerciements......................................................................................................................2
1. Prsentation de la socit ...............................................................................................4
1.1. Le Groupe SQLI ........................................................................................................ 4
1.2. SQLI Agency ............................................................................................................. 6
1.3. La gestion dun projet .............................................................................................. 8
2. Contexte du projet ..........................................................................................................9
3. Lexistant ......................................................................................................................10
3.1. Les interfaces ......................................................................................................... 10
3.1.1. Le Front Office ............................................................................................ 10
3.1.2. Le Back Office ............................................................................................. 11
3.2. Solution retenue : eZ Publish.................................................................................. 12
3.2.1. Adaptations des interfaces ............................................................................... 12
3.2.2. Systme CMS.................................................................................................... 12
3.2.3. Modularit deZ Publish .................................................................................... 13
4. Travail ralis ................................................................................................................14
4.1. Import / Export ...................................................................................................... 15
4.1.1. Description ....................................................................................................... 15
4.1.2. Analyse et conception....................................................................................... 16
4.1.3. Module dimport.............................................................................................. 17
4.1.4. Difficults rencontres ...................................................................................... 18
4.1.5. Le devenir......................................................................................................... 19
4.2. Ask for Price ..................................................................................................... 20
4.2.1. Formulaire........................................................................................................ 21
4.2.2. Traitements...................................................................................................... 22
4.2.3. Envoi de mails .................................................................................................. 22
5. Bilan ..............................................................................................................................24
Glossaire ..............................................................................................................................25

Olivier Versanne | Remerciements 3


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

1. Prsentation de la socit

1.1. Le Groupe SQLI

Cr en 1990, le Groupe SQLI est le leader franais des socits de services spcialises dans
les Nouvelles Technologies de l'Information et de la Communication (NTIC). Lentreprise se
positionne en tant que "Grand Spcialiste" unique en France en proposant une offre globale alliant la
capacit de production industrielle d'un groupe international l'expertise et la souplesse d'un
spcialiste, en mesure de donner de la valeur aux innovations des entreprises qu'elle accompagne.

Le groupe est spcialis sur trois segments de comptence :

Les technologies & usages Internet (Java/J2EE, Microsoft, Open Source)


Les nouvelles offres SAP (NetWeaver, CRM)
La Business Intelligence (BO, Cognos, Open Source)

Depuis 2005, SQLI sest inscrite dans un projet industriel de croissance ambitieux qui vise
faire du groupe le leader incontest des pure players
du conseil et des solutions e-business. Pour cela, lobjectif
de croissance dans le plan de dveloppement 2005-2008
devait amener le groupe 150M de chiffre daffaires en
2008 avec une marge oprationnelle de 10 %.

De plus, lentreprise est cote sur Euronext depuis juillet


2000, et supporte une croissance soutenue avec un
chiffre daffaires multipli par deux en 2 ans (Figure 1 :
volution du chiffre d'affaires de SQLI).
Figure 1 - volution du chiffre
d'affaire de SQLI (en M)

Au niveau du fonctionnement de lentreprise, il faut noter que le groupe est organis en


agences. Les agences sont dcoupes en entits de business (Business Unit ou BU). Une BU est un
centre de responsabilits dont l'objectif s'exprime sous la forme d'un rsultat (marge ou
contribution) obtenir. Cest un dpartement dentreprise spcialis. Chez SQLI les BU sont
spcialises dans un domaine dactivit.

Une agence est sous la responsabilit dun manager dagence. Une BU est place sous la
responsabilit dun manager de BU. Chaque collaborateur est rattach une et une seule BU.

Olivier Versanne | Prsentation de la socit 4


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

Le groupe SQLI possde 20 agences en France et linternationale, ce qui lui permet de


bnficier dune large couverture gographique.
Lentreprise est prsente en France (Aix en
Provence, Bordeaux, Dijon, Lyon, Montpellier,
Nantes, Paris, Poitiers, Strasbourg, Toulouse),
en Suisse (Genve et Lausanne), au
Luxembourg, au Maroc (Casablanca, Rabat et
Oujda), en Espagne (Madrid), en Belgique
(Bruxelles) et au Canada (Montral).

Ce rseau dagences permet une grande


proximit avec les clients et une prsence
internationale.

Figure 2 - Rpartition des agences SQLI dans le monde

SQLI compte plus de 2000 collaborateurs en France et ltranger et plus de 800 clients
actifs. Les projets sont conduits auprs de grands comptes dans tous les secteurs dactivits.

Figure 3 - Quelques clients de SQLI

La gestion des ressources humaines SQLI est un peu particulire. En effet, il ny a pas de
service ddi cette gestion. Elle est assure par la cellule de recrutement qui soccupe
essentiellement du recrutement, par le service de Paie qui gre tout le ct administratif des
Ressources Humaines et par les relais RH, collaborateurs volontaires dsirant grer des personnes. La
gestion des Ressources Humaines est donc dcentralise mais permet un management de proximit.

Olivier Versanne | Prsentation de la socit 5


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

1.2. SQLI Agency

SQLI Agency, la Web Agency de SQLI, est une agence du groupe SQLI qui propose du conseil
et de la cration Web, dans une dynamique dinnovation et de crativit : stratgie de
positionnement e-business, conseil en performance ergonomique, connaissance utilisateur,
gnration de trafic ainsi que des prestations de cration, de conception, daccompagnement et de
formation e-business.

Contrairement aux agences standards de type ingnierie, le fonctionnement de lAgency


est diffrent. En effet, lAgency a t cre il y a quelques annes pour pouvoir grer des projets web
non ralisables de la part de lIngnierie cause de son fonctionnement trop strict, notamment d
un processus de qualit adopt par lentreprise.

Comme toutes les agences de SQLI, lAgency est dcoupe en BU. Celle qui est concerne par
ce projet est la BU PAGT (Paris AGency Technique) plus communment appele Ple Techno , qui
ralise les parties techniques des sites web, en PHP, MySQL, .NET ou encore AJAX. Cette BU est
dirige par Jean-Marc Leglise.

Groupe SQLI
Agence Agence Paris
Lyon
Agency Agency Web Agency
Consulting
Agence
Nantes BU PAGT BU Business
Agency (Technique) Dv.
Agence Sant
Oujda BU PAGC BU PARD
Agency (Conseil) (Design)
Agence

Figure 4 Organisation du groupe SQLI

Sous la direction de Jean-Marc Leglise, Ronan Lequere soccupe du management de lquipe


de dveloppement. Il endosse galement la responsabilit de relais RH, et est mon matre de stage
pour ce projet.

Olivier Versanne | Prsentation de la socit 6


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

Le ple techno est divis en trois entits dune dizaine de collaborateurs :

Le ple Flash, qui soccupe des ralisations des animations flash sur les sites web,
Lentit Dveloppement que jai intgre, qui a pour objectif de rendre dynamique le site en
y incluant des modules (exemple : gestion dutilisateur, forum, blog),
Et lentit HTML qui ralise le design gnral du site (navigation, mise en page, ).

Directrice (Web Agency)


Isabelle Gauthier

Directeur de BU (PAGT)
Jean-Marc Leglise

Ple Flash Dveloppement Ple HTML

Manager & Relais RH


Ronan Lequere
Chef de projet
Marie Lange

Expert technique
Ly Lo Cong

Dveloppeur Dveloppeur Dveloppeur Dveloppeurs


William Ong Mathieu Monselet Olivier Versanne

Figure 5 - Organigramme PAGT simplifi et adapt au projet

Olivier Versanne | Prsentation de la socit 7


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

Le prcdent organigramme a t simplifi pour correspondre au projet dcrit dans ce


rapport. En effet, le ple dveloppement dispose de plusieurs chefs de projet travaillant sur divers
projets simultanment. Toute lquipe de lAgency ne travaillent pas sur le projet expos dans ce
rapport.

1.3. La gestion dun projet

Les projets passent par plusieurs phases avant darriver en phase de ralisation au sein de
lquipe de dveloppement. La premire phase consiste remporter un projet en faisant les
propositions de solutions et commerciales les plus adapte au client. Cest le travail de la BU Business
qui ralise les avant-ventes.

Aprs avoir gagn un projet, celui-ci est envoy la BU Technique qui se charge, avec laide
des autres BU de lAgency, de raliser un cahier des charges que validera le client tape par tape.

LAgency utilise pour la majorit de ses projets, un systme de dveloppement itratif. Le


dveloppement dun site web est dcoup en plusieurs tapes quapprouve chaque fois le client. La
premire tape dans la conception de sites web est de dfinir lensemble des fonctionnalits et des
cas dutilisation que celui-ci devra remplir. Ltape suivante est de concevoir le design gnral des
pages ainsi que larchitecture du site. Aprs avoir labor les aspects statiques, les rubriques
dynamiques sont alors conues. Enfin, les dernires phases dans la gestion dun projet, sont la
livraison au client, puis, la priode de maintenance du projet dmarre pour une dure dtermine
lors de la signature du contrat.

SQLI Agency propose ses clients un grand nombre de technologies pour la plupart Open
Source (code source accessible et libre de redistribution), et se lance rgulirement dans de
nouvelles technologies pour proposer constamment une grande diversit de choix. Lutilisation
dapplications Open Source permet de diminuer les cots de dveloppements pour le client et pour
lagence qui nont, ni lun ni lautre, pas besoin dacheter de licences. En contre partie de cette
conomie, le support propos par les crateurs de ces technologies nest gnralement pas gratuit et
la documentation dutilisation peut manquer de mises jour, mais cela nempche pas SQLI de
raliser correctement lensemble de ses projets !

Olivier Versanne | Prsentation de la socit 8


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

2. Contexte du projet
Il y a un peu plus dun an, une grande maison de luxe que nous appellerons Diamant dans ce
rapport (le projet ntant pas termin la date de publication du rapport, je nai pas le droit de
mentionner son nom), a command un site Internet e-commerce pour le Japon. La ralisation fut un
succs au Japon et lentreprise souhaita tendre le site dautres pays. Elle sadressa la mme
socit qui avait conu son prcdent site mais celle-ci refusa le contrat pour cause de travaux trop
complexes pour modifier le site existant afin de ladapter aux demandes de Diamant. En effet, le site
navait pas t conu dans loptique dtre plurilingue et un redveloppement intgral tait moins
onreux quune adaptation de lexistant.

Diamant fit alors appel dautres socits de services informatiques comme SQLI pour
redvelopper le site linternational. SQLI Agency fit la proposition dutiliser eZ Publish, un
gestionnaire de contenu (CMS : Content Management System) de plus en plus plbiscit par le milieu
professionnel. Ce CMS a les avantages de pouvoir dcliner les contenus dun site en plusieurs langues
et propose un cadre de dveloppement trs complet qui acclre les dveloppements dextensions
spcifiques.

SQLI dcrocha le contrat et au mois de fvrier commena le dveloppement du projet pour


une dure dune dizaine de mois et dun budget dun million deuros.

Dans un premier temps, nous verrons les points importants du site existant qui a servi de
base pour le cahier des charges du site. Nous nous attarderons ensuite sur certains points prcis sur
lesquels jai pu apporter ma contribution, et enfin ltat davancement du projet la fin de mon
stage.

Olivier Versanne | Contexte du projet 9


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

3. Lexistant

3.1. Les interfaces

Figure 6 - Page d'accueil Diamant.jp (interface utilisateur)

3.1.1. Le Front Office

Le site Diamant.jp actuellement en ligne ralis par la prcdente socit a une interface
utilisateur est entirement ralise avec la technologie Flash. La technologie Flash, cre par
Macromedia et dtenue aujourdhui par Adobe, permet dinclure des animations graphiques sur un
site et de sassurer que le rendu visuel sera le mme quelque soit le navigateur et le systme
dexploitation utiliss par le client. En effet, pour afficher une animation Flash le navigateur doit
possder un plugin et le taux de pntration du lecteur Flash est suprieur 99%.

Figure 7 - Taux de pntration des technologies plugin chez les internautes (source : Adobe)

Olivier Versanne | Lexistant 10


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

Un inconvnient raliser un site compltement en Flash concerne lindexation du contenu


par les moteurs de recherches. Cest un enjeu capital pour nimporte quelle entreprise dtre
correctement rfrencer dans les annuaires de recherches. Les moteurs de recherches utilisant, pour
indexer, des navigateurs nintgrant aucun module dextension afin dtre le plus lger et rapide
possible (navigateurs appels robots ), ils sont incapables dinterprter les animations Flash et ne
peuvent indexer le contenu que voit lutilisateur. Ainsi, sur le prcdent site web une navigation
alternative a t prvue si lon dtecte que linternaute visitant la page na aucun plugin. Le contenu
indexer est afficher en HTML simple (ne ncessitant aucun module dextension) et peut donc tre
index.

Figure 8 - Page d'accueil Diamant.jp sans plugin (interface moteurs de recherche)

3.1.2. Le Back Office

Enfin, la dernire interface utilisateur est celle utilise par les employs Diamant. Cette
interface administrateur est appele Back Office , loppos de linterface visible par le client qui
est nomme Front Office . Linterface administrateur permet de grer les contenus afficher sur
le Front Office.

Figure 9 - Back office de la prcdente version

Olivier Versanne | Lexistant 11


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

3.2. Solution retenue : eZ Publish

3.2.1. Adaptations des interfaces

La nouvelle version du site dvelopper doit avoir exactement la mme interface utilisateur :
une interface compltement ralise en Flash et reprenant les mmes graphismes et fonctionnalits
(avec quelques amliorations) que la version japonaise en ligne. Elle doit galement disposer dune
interface facilitant lindexation des robots des moteurs de recherche, et doit tre dote dun Back
Office pour grer les contenus du site de manire dynamique.

Le CMS eZ Publish, de part sa conception, rpond intgralement ces exigences et


correspond donc parfaitement au besoin du client. Effectivement, eZ Publish propose aux
concepteurs dutiliser plusieurs Front Office en dfinissant simplement de nouveaux Layouts
(affichages). Ainsi, les contenus de chaque page sont gnrs sous deux formes diffrentes : sous
forme HTML directement interprtable par les robots, et sous forme XML qui permet les interactions
avec le module Flash.

Internaute
Serveur
Navigateur www.Diamant.jp
eZ Publish
Plugin Flash XML
Base de donnes
www.Diamant.jp

Moteur de
HTML
recherche

Figure 10 - Fonctionnement du Front Office

3.2.2. Systme CMS

Le mode de fonctionnement CMS deZ Publish permet de grer facilement le contenu dun
site. Ladministrateur peut crer des pages trs simplement en les reliant dautres pages et ainsi il
cre son arbre de navigation.

Dans le principe, chaque page est reprsente par un objet qui est une instance dune classe.
Une classe peut tre cre par ladministrateur pour dfinir les diffrents attributs quaura
lensemble des objets de la classe. Par exemple, une bague et une montre seront du mme type de
classe (produit) puisquils comportent tous les deux un prix et un nom. Le mme affichage tant
utilis pour les informations de ces deux produits, il est plus ais dutiliser un seul modle daffichage

Olivier Versanne | Lexistant 12


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

(appel template) pour afficher ces produits. Ainsi, avec eZ Publish, on associe une classe avec un
modle daffichage qui a un contenu dynamique reprenant les contenus des attributs.

Pour linternaute, lorsquil accdera la page de la montre, il y verra un contenu diffrent de celui de
la bague. Pourtant, la structure des donnes est identique et la seule diffrence rside dans le
contenu des objets.

Figure 11 - Back Office fourni par eZ Publish

3.2.3. Modularit deZ Publish

Malheureusement, la complexit du site Diamant ne peut pas tre gre entirement par le
systme des objets-classes-nuds des CMS, par consquent des dveloppements spcifiques sont
ncessaires. En effet, certaines pages du site font appel des modules extrieurs (des web
services qui vont rechercher des informations distantes, des envois de mails lutilisateur, des
requtes spcifiques) et ceux-ci ne peuvent pas utiliser les fonctionnalits des CMS.

Un des grands points forts deZ Publish est les possibilits du cadre de dveloppement
technique utilisable par les dveloppeurs. eZ Publish permet lajout dextension (module) de manire
simple et grce son systme de surcharge trs performant, donne la possibilit dajouter ou de
redfinir de A Z, si on le souhaite, chaque mthode, chaque paramtre et chaque module dj
inclus dans les fondements techniques du CMS. Dans le cadre de Diamant, ce systme de surcharge

Olivier Versanne | Lexistant 13


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

nous a permis de redfinir manuellement tous les nuds qui avaient des comportements
particuliers, comme par exemple toute la partie du site sur lequel un utilisateur est connect et gre
son compte. Les informations des utilisateurs sont stockes sur un serveur part qui est utilis par
dautres modules ou dpartement de lentreprise comme, peut-on le supposer, le dpartement
marketing ou le dpartement relation clientle de Diamant. Pour obtenir les informations de ce
serveur, on passe par lintermdiaire de web services qui interrogent le serveur, en utilisant des
protocoles spcifiques (SOAP et WSDL). Ce systme centralise ainsi toutes les informations des
clients en vitant tous les problmes lis la redondance dinformations lchelle dune entreprise
(exemple : deux adresses diffrentes pour un client, quelle est la bonne ?).

Aprs vous avoir rapidement prsent lessence du projet et dfini quelques notions
basiques sur le CMS que jai utilis, je vais vous prsenter les tches notables que jai ralises.

4. Travail ralis

Pendant mon stage, jai ralis de nombreuses tches qui mont fait dcouvrir les nombreux
points essentiels deZ Publish. Dtailler chaque point serait trop fastidieux et ennuyeux, aussi je ne
vous prsenterai que deux tches, trs diffrentes afin de vous donner une vision la plus large
possible du projet et du travail ralis :

Limport et export des donnes dans le Back Office.


La ralisation de la page du site Ask For Price & information sur le Front Office.

Quelques exemples supplmentaires de travaux seront donns lors de la soutenance.

Olivier Versanne | Travail ralis 14


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

4.1. Import / Export

4.1.1. Description

Une ou deux semaines aprs mon arrive dans lquipe, Ly Lo Cong (expert technique eZ
Publish pour le projet Diamant) me confia la tche dimportation des modles de produit dans la
base de donnes eZ Publish afin que le front office ait du contenu afficher sur les pages qui taient
en cours de dveloppement.

La tche consiste crer ou mettre jour les produits prsents dans les bases de donnes
Diamant. Il existe plus de 6.600 modles de produits diffrents, chaque modle pouvant tre dclin
en plusieurs rfrences cause de certains paramtres propres aux produits (la taille dune bague
par exemple).

Chaque modle comporte une quarantaine dinformations complter de tous les types,
comme par exemple :

- nom du modle,
- texte descriptif du modle,
- date de lancement,
- si le modle peut tre visible sur le site,
- les autres modles qui safficheront dans une rubrique crations similaires ,
- les proprits et collections du modle,
- lventuel modle parent qui contient les informations du modle consult,
- etc.

cette liste non exhaustive dattributs, il faut galement ajouter la gestion des langues pour chaque
attribut.

Les fichiers dentres importer sont au format CSV ( Comma-Separated Values ), un


format de fichier permet de stocker trs facilement les informations dun tableau sous forme
textuelle (et donc facilement interprtable par une machine). Chaque valeur est spare par un point
virgule et chaque ligne est spare par un saut de ligne. Un petit exemple :

Format tableur Format CSV

Mon premier fichier Mon;premier;fichier


CSV, Un CSV,;;Un
vrai Bonheur vrai;Bonheur;

Les fichiers CSV provenant de lancien site Diamant, comporte un nombre variable de
colonnes, en moyenne 65 colonnes, qui dfinissent les en-ttes/attributs. Chaque ligne dfinit les
caractristiques dun modle dans la langue dexport du fichier.

Olivier Versanne | Travail ralis 15


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

4.1.2. Analyse et conception

Limportation et exportation des donnes de contenu du catalogue sont essentielles


puisquils agissent ensuite sur la presque totalit du site. Ces tches sont ralises par les
intgrateurs de contenus Diamant. Ils modifient les informations des produits soit en passant par
linterface dadministration (Backoffice) et en allant diter directement un objet, soit en exportant le
catalogue via le module dimport/export, puis en modifiant le fichier CSV et en le rimportant pour
mettre jour les produits.

Cration de lextension
Par consquent, aprs cette brve analyse, nous avons convenu de greffer une extension
dans le backoffice deZ Publish pour pouvoir intgrer des modules qui raliseront ces fonctionnalits.
Pour crer une extension, nous nous sommes servis des possibilits de surcharge du CMS afin
dajouter un nouveau menu au backoffice Import/Export .

Figure 12 - Module import/export : sous-menu gauche, menu en haut, message derreurs, formulaires

Lextension servira galement de rubrique pour tous les autres types dimport et export
spcifiques aux autres parties du site que nous avons dvelopps. Lutilisateur est immerg dans le
backoffice lutilisation de nos modules est transparent pour lutilisateur qui a gard toute
lergonomie du backoffice (typographie des messages, design des formulaires).

La cration de lextension fut difficile car ce fut ma premire tche importante raliser sur
eZ Publish. Nanmoins, jai pu faire beaucoup de recherches dans la documentation du site officiel
deZ Publish et ainsi jai commenc comprendre les premiers fondements du framework.

Olivier Versanne | Travail ralis 16


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

Aprs avoir cr lextension, jai cr un premier module pour limport des donnes du
catalogue et un second pour lexport.

4.1.3. Module dimport

Le module dimport est compos dun formulaire avec deux champs remplir. Le premier est
pour slectionner le fichier CSV importer, le second pour choisir la langue du fichier.

Figure 13 - Formulaire d'import

Aprs avoir vrifi les conditions de non traitement (fichier invalide, format CSV incorrects,
colonnes introuvables), le script dimport
va parcourir chaque ligne du fichier CSV
pour mettre jour le modle
correspondant avec les informations
fournies dans le CSV.

Limportation tant excessivement


long (cinq dix minutes pour 1 000
modles), un log est gnr pour suivre
lavancement et le bon fonctionnement.

Trois niveaux dinformations sont


disponibles :
Figure 14 - Exemple de log gnr
info (des informations pour suivre
lavancement),
warning (un dfaut est relev mais nempche pas le reste du modle de se mettre
jour),
et error qui interrompt le traitement dune ligne CSV et passe la suivante.

Olivier Versanne | Travail ralis 17


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

Une vrification base sur lutilisation de verrous exclusifs, est effectu pour dtecter si un
autre script est excut avant den lancer un nouveau. En effet, lancer deux scripts de mise jour en
parallle pourrait crer des conflits et des erreurs de cohrences dans le contenu des modles.

4.1.4. Difficults rencontres

Plusieurs difficults ont t rencontres pendant le dveloppement du script dimportation.

La premire difficult fut de trouver la correspondance entre chaque nom des en-ttes CSV
avec les attributs dfinis dans eZ Publish. Un grand fichier de mapping a t ralis et permet une
gestion dynamique des attributs.

Un second problme concerna la lenteur dimportation dun modle. En effet, les premires
versions du script demandaient 1 minute en moyenne pour mettre jour une ligne de 65 colonnes
CSV. Pour limport de 3000 produits, il fallait compter plus de 50h dexcution ce qui ntait pas
acceptable, dautant plus que le prcdent site insrait un modle en 0,02 seconde.

Jai fortement tudi ce problme de lenteur un point o javais trac le temps dexcution de
chaque ligne de code PHP (le langage de dveloppement deZ Publish). Mes premiers retours
montraient une lenteur due lappel dune mthode eZ Publish lors de lenregistrement des
modles. Il est comprhensible que le temps de mise jour soit plus important que 0,02 seconde car
eZ Publish met en cache lobjet ajout/modifi afin doptimiser le rendu daffichage, il indexe
galement le contenu de certains attributs pour une recherche rapide ; mais 1 minute de publication
est une diffrence trop importante pour ne pas tre une anomalie.

LAgency fit appel un expert eZ Publish extrieur, pour passer une journe dans nos locaux afin de
rsoudre les problmes que nous avions rencontrs en utilisant eZ Publish, dont celui-ci.

Aprs plusieurs changes vocaux et un audit de code, il remarqua quelques erreurs de nophytes
eZ Publish mais qui ntaient lorigine des ralentissements. Nous sommes arrivs ensuite la mme
conclusion : un problme se trouve dans le framework deZ Publish. En effet, nous nous sommes
aperus quune requte SQL tait plusieurs fois appele et quelle mettait plus de 7 secondes pour
retourner le rsultat. Nous avons dcoup la requte pour trouver la source du problme et avons
constat que le bug portait sur un tri effectu dans la requte. Ne pouvant pas modifier le noyau du
MySQL, nous avons supprim le tri de la requte eZ Publish ce qui fait un script 100 fois plus rapide !
prsent limport dune ligne CSV ne mettait plus quune demi-seconde.

Un troisime bug li eZ Publish avait t dcel. Au bout dun certains temps dexcution
quivalent la mise jour de 300 modles, les scripts sarrtaient sur un message derreur : la
mmoire alloue au script dpasse la limite autorise. Un premier essai pour viter ce problme fut
de remanier le script intgralement pour librer les ressources mmoires lorsquelles ne sont plus

Olivier Versanne | Travail ralis 18


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

utilises. Quelques dizaines de modles supplmentaires furent ajouts, mais le total avoisinait
toujours les 10% dun fichier CSV de plusieurs milliers de produits.

Jai alors propos de dcouper le script en deux avec une relation parent-enfant. Le pre avait pour
but de lire chaque ligne du fichier CSV et de crer un script enfant qui se chargerait de mettre jour
la ligne CSV que le pre lui aurait fourni.

Par ce biais, lenfant natteindra pas la limite de mmoire puisquil ne traitera quun seul modle.
Aprs avoir trait son modle il sera tu, et le pre en crera un nouveau pour traiter le modle
suivant.

La solution fut adopte et je la mis en application. Le bug disparu, la solution tait fonctionnelle. Ce
systme de double script fut ensuite mis en place sur tous les autres scripts dimport du projet qui
rencontraient galement ce problme.

Enfin, lors du passage du serveur de recette (l o les dveloppeurs font des tests) au serveur
de pr-production (l o les clients font des tests), un bug, qui nexistait pas sur le serveur de recette
surgt. Le script plantait de manire alatoire. Aprs quelques jours de recherches, nous avions
compris que le bug ntait pas li au module, mais la configuration du serveur de pr-production.
En effet, lenvironnement de pr-production utilisait du load-balancing , une technologie qui
permet de rpartir les charges sur plusieurs serveurs afin daugmenter les capacits dutilisation dun
site. Pour raliser le load-balancing, il faut une rplication des informations sur chaque serveur, sinon
linternaute naurait pas les mmes rendus sur une mme page.

Le problme venait donc du load-balancing, et dun oubli de la part des administrateurs rseaux
Diamant qui faisaient correctement la rplication des fichiers entre les serveurs, mais qui avaient
oubli de faire la rplication de la base de donnes. Ainsi, le script essayait de trouver des
informations inexistantes dans la base de donnes, et comme il ny arrivait pas, il sarrtait.

4.1.5. Le devenir

Le module a vu au cours des trois mois constamment des changements cause de certaines
prcisions que nous a indiques le client lors de ses tests. Beaucoup de modifications ont pu tre
facilement intgres mais certaines ont eu pour consquences le remaniement quasi complet du
module dimport.

Olivier Versanne | Travail ralis 19


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

4.2. Ask for Price

La fonctionnalit Ask-for-price est absolument diffrente de limport catalogue expliqu


prcdemment. Les actions sont ralises ct client sur le front office.

Lobjectif de Ask-for-price est de permettre linternaute de remplir un formulaire pour


demander les tarifs dun produit propos sur le site.

Figure 15 - Page d'un modle (bouton Ask for price gauche)

Pour demander les tarifs ou plus dinformations sur le produit, linternaute doit se rendre sur
la page du modle pour ensuite cliquer sur le bouton Ask for price .

Il obtient alors le formulaire suivant.

Olivier Versanne | Travail ralis 20


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

4.2.1. Formulaire

Figure 16 - Formulaire ask-for-price

En fonction de la culture du site visit (exemple : Diamont.jp (japonais), Diamont.com


(international), Diamont.it (Italien)), le formulaire de gauche prend des aspects diffrents.

Par exemple, pour les sites asiatiques, un champ supplmentaires pour les noms / prnoms apparat
afin dobtenir ces informations en version latines.

Sur la version Japonaise Your title devient Your gender et laffichage est seulement Male /
Female .

Si lutilisateur navigue sur le site en stant dj connect son compte, le formulaire de


gauche disparaitra et le script de traitement, appel lors de lappui sur le bouton Send , ira
chercher les informations du formulaire dans le profile de linternaute connect.

Toutes les informations affiches lcran sont automatiquement traduites par le biais du
CMS qui utilisera un fichier de traduction (appel Wording) pour remplacer le texte source (en
anglais) par le texte de la version associe au site (exemple Japonais). Le contenu en haut droite
dcrivant le produit, est rcupr du backoffice et fonctionne avec le systme de base du CMS (les
classes-objets-nuds).

Ainsi, beaucoup de cas particulier sont prendre en compte lors de la cration de template,
ce qui ne rend pas la conception et le dveloppement facile.

Olivier Versanne | Travail ralis 21


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

4.2.2. Traitements

Lorsque linternaute clique sur le bouton Send , un script PHP est appel pour effectuer le
traitement de tous les paramtres envoys.

En fonction de tous les diffrents cas dutilisation, il vrifie que les champs obligatoires soient
bien complts et affiche une erreur en consquence.

Si lutilisateur a coch linscription une newsletter, le script crera (si ce nest dj fait) un
compte lutilisateur avec les informations quil a rentr, pour linscrire une newsletter.

Le script enverra un mail de demande dinformations Diamant et de prix si celui-ci a t


demand et na pas t trouv.

Le script met galement jour les comptes des utilisateurs si ceux-ci changent de pays, et les
redirige vers une page intermdiaire leurs demandant de sauthentifier pour mettre jour leurs
informations

4.2.3. Envoi de mails

Quelque soit la manuvre effectu sur cette page, un mail de confirmation ou de


renseignement sera envoy au client.

Figure 17 - Email envoy l'internaute

Olivier Versanne | Travail ralis 22


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

Lenvoi de mail a t dvelopp en extension. Je me suis entirement occup de la


conception et la ralisation de cette extension.

Les contraintes que jai prises en compte ont t :

Avoir la plus grande facilit dutilisation,


Crer un mini-framework au sein deZ Publish pour faciliter la cration de mail,
Avoir des mails qui puissent changer de langue en fonction du site consult.

Pour rpondre ces critres, jai dvelopp un mini-framework qui utilise le systme des
templates et le wording (comme pour le formulaire ask-for-price) associs une interface de
dveloppement la plus simple possible dutilisation.

Pour crer un nouveau mail, le dveloppeur doit seulement crer le template avec les
sources du wording, puis crer une page PHP qui lui permettra de transfrer des variables au
template (exemple le prix rcupr de la page dans ask-for-price).

Lenvoi de mails a ensuite t adapt plusieurs endroits sur le site, pour permettre une
meilleure gestion que la solution prcdente qui nenvoyait des mails quen anglais.

Olivier Versanne | Travail ralis 23


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

5. Bilan
Comme jai souvent pu le dire mon matre de stage ainsi qu toute lquipe PAGT de SQLI,
jai beaucoup apprci travailler au sein de lAgency. Le milieu du web est le secteur dactivit que je
recherche et lAgency collait parfaitement mon centre dintrt.

Habituellement, les stagiaires chez SQLI Agency travaillent sur plusieurs projets. Ils gagnent
ainsi en connaissances sur plusieurs technologies et acquirent des comptences gnralement
superficielles sur lensemble des technologies utilises. Mon cas au sein de lAgency fut lgrement
diffrent.

Quand je suis arriv, le projet Diamant ne comportait que peu de dveloppeurs cause de la
technologie utilise (eZ Publish) qui tait nouvelle pour beaucoup de collaborateurs. On maffecta
ds mon arrive sur le projet, et je fus compltement immerg dans cette nouvelle technologie.

Je navais jamais utilis de CMS et en connaissais trs vaguement les principes. Larrive sur eZ
Publish tait loin dtre le plus simple de CMS pour commencer, mais avec laide trs pdagogue de
Ly Lo Cong (expert technique SQLI pour le projet Diamant) qui possde une bonne matrise deZ
Publish, jai pu rapidement apprendre et me former sur ce CMS.

On ma ensuite confi des tches complexes comme limportation et exportation de donnes qui
mont plong en plein dans le cur deZ Publish. Ainsi, avec les comptences acquises, je suis rest
sur le projet pendant les trois mois de mon stage. Jaurai souhait dcouvrir dautres CMS ou
framework de dveloppement. Mais, cela fut quand mme fort instructif car jai pu tudier en
profondeur les points forts et faibles de ce CMS trs complet et ainsi dcouvrir vritablement
lessence mme des CMS.

Ce stage fut donc trs formateur, jai pu voir diffrentes manires de gestion dquipe et de
gros projets.

La deuxime anne de lESIAL se termine donc sur un stage qui maura consolid dans mon
choix de projet professionnel : travailler dans le web.

Olivier Versanne | Bilan 24


[RAPPORT DE STAGE - 2ME ANNE ESIAL] Juin - Aot 2009

Glossaire
ADSL (Asymetric Digital Suscriber Line) : technique de communication qui permet d'utiliser
une ligne tlphonique d'abonn pour transmettre et recevoir des signaux numriques des dbits
levs, de manire indpendante du service tlphonique proprement dit.

BU (Business Unit) : division de la socit SQLI.

CMS (Content Management System) : gestionnaire de contenu, application permettant de


crer, dditer et de manipuler simplement le contenu dun site, que ce soit des articles, des titres,
des images.

CSV (Comma-separated-values) : format de fichier texte dans lequel les donnes sont
ranges sous forme de tableaux, chaque ligne reprsentant une ligne du tableau, les colonnes tant
spares par des virgules ou des points-virgules.

E-commerce (site) : site proposant la vente en ligne de services et de biens.

E-mail : courrier lectronique.

eZPublish : CMS Open Source utilis dans le projet Luxe, qui se base sur une architecture
proche du modle MVC.

Flash (Flash Player) : application client fonctionnant sur la plupart des navigateurs Web
permettant la cration danimation et de vido intgre dans des pages web.

Framework : ensemble de bibliothques de fonctions, doutils et de conventions aidant


dvelopper des applications.

HTML : langage de programmation permettant de crer des pages web.

Open Source : qualifie les applications gratuites et dont les codes sources sont mis la
disposition de tout le monde.

PAGC : ple Agency Conseil, une BU de SQLI Agency.

PAGD : ple Agency Design, une BU de SQLI Agency.

PAGT : ple Agency Technique, une BU de SQLI Agency.

PHP (Hypertext Preprocessor) : langage script utilis principalement pour produire des pages
web dynamiques via un serveur Apache.

Popin : encart contenant du texte et des images apparaissant par-dessus la page prcdente.

SQL : langage de programmation ddi la manipulation de base de donnes base de


requte.

SSII : socit de service en ingnierie informatique

Olivier Versanne | Glossaire 25