• Aucun résultat trouvé

Du point de vue des entreprises, faut-il privilégier les Frameworks PHP aux CMS Open pour la création de sites internet?

N/A
N/A
Protected

Academic year: 2022

Partager "Du point de vue des entreprises, faut-il privilégier les Frameworks PHP aux CMS Open pour la création de sites internet?"

Copied!
90
0
0

Texte intégral

(1)

Projet de Recherche et Innovation

5` eme ann´ ee

Manager des syst` emes d’information

Du point de vue des entreprises, faut-il privil´ egier les Frameworks

PHP aux CMS Open pour la cr´ eation de sites internet ?

Auteur :

Jonathan CAHU

Tuteurs encadrants : Anne-Laure GAUDON R´ emy FOURNIER

5 juin 2015

(2)

Table des mati` eres

1 Introduction 5

2 Etat de l’art 6

2.1 Framework PHP . . . 6

2.1.1 Qu’est-ce qu’un Framework PHP ? . . . 6

2.1.2 Caract´eristiques d’un Framework PHP . . . 7

2.1.3 Liste de Frameworks PHP . . . 9

2.1.4 Utilisation . . . 15

2.1.5 Avantages . . . 16

2.1.6 Inconv´enients . . . 17

2.2 CMS Open Source . . . 18

2.2.1 Qu’est-ce qu’un CMS Open Source ? . . . 18

2.2.2 Caract´eristiques d’un CMS . . . 18

2.2.3 Les types de CMS . . . 20

2.2.4 Liste de CMS Open Source . . . 21

2.2.5 Utilisation . . . 29

2.2.6 Avantages . . . 29

2.2.7 Inconv´enients . . . 31

2.3 Framework PHP et CMS Open Source en entreprise . . . 32

2.3.1 Framework PHP en entreprise . . . 32

2.3.2 CMS Open source en entreprise . . . 36

3 Etude 40 3.1 M´ethodologie . . . 40

3.2 Comparatifs sur le web . . . 41

3.2.1 Frameworks PHP . . . 41

3.2.2 CMS Open Source . . . 44

3.3 Sondage . . . 47

3.3.1 Diffusion du sondage . . . 47

3.3.2 Liens . . . 47

3.3.3 Analyse des r´eponses du sondage . . . 48

3.4 Tests . . . 63

3.4.1 Sc´enarios . . . 63

(3)

3.4.2 Configuration de la machine de test . . . 64

3.4.3 R´esultats des tests . . . 65

3.5 R´esultats . . . 76

3.6 Outil d’aide `a la d´ecision . . . 79

3.6.1 Cr´eation de l’outil . . . 79

3.6.2 Fonctionnement des outils . . . 79

3.6.3 Pr´esentation de l’outil et exemples de cas . . . 80

3.6.4 Lien . . . 80

3.6.5 Am´elioration . . . 81

3.6.6 Mise en garde . . . 81

4 Conclusion 82

5 Glossaire 83

(4)

R´esum´e

Ce document a ´et´e r´edig´e dans le cadre de ma 4`eme ann´ee et 5`eme ann´ee

`

a l’EXIA Saint Nazaire.

Ce PRIProjet de Recherche et Innovationa pour but de r´epondre aux questions suivantes : Faut-il privil´egier les Frameworks PHP aux CMS Open Source en entreprise pour la cr´eation de sites internet ? Si le Framework PHP doit ˆetre privil´egi´e, lequel doit ˆetre utilis´e ? Si le CMS doit ˆetre privil´egi´e, lequel doit ˆetre utilis´e ?

Dans la partie ´etat de l’art, j’aborde en premier lieu les concepts de Fra- mework PHP et de CMS Open Source avec quelques exemples pour finir avec l’utilisation de ces outils en entreprise.

Enfin, dans la partie ´etude, je pr´esente des exp´erimentations et ana- lyses de statistiques permettant de donner une r´eponse au probl`eme donn´e.

J’y pr´esente ´egalement un outil d’aide `a la d´ecision qui a ´et´e r´ealis´e pour compl´eter cette ´etude.

Abstract

This document has been written for my fourth and fifth year at EXIA Saint Nazaire.

The aim of this document is to answer to the following questions : Should we choose PHP Frameworks or Open Source CMS in a company for creating websites ? If the PHP Framework should be preferred, which should be used

? If the CMS should be preferred, which should be used ?

In the state of the art, I approach the concepts of PHP Framework and Open Source CMS with a few examples to finish with the use of these tools in a company.

Then, in the second part ”Study”, I present experimentations and analysis that allowed me to give an answer to the question. I also present a decision support tool that has been developed to complete this study.

(5)

Remerciements

Je remercie l’EXIA Saint-Nazaire, pour m’avoir permis d’´etudier le domaine des frameworks PHP et des CMS Open Source en entreprise, plus particuli`erement Anne-Laure GAUDON et R´emy FOURNIER, tuteurs encadrants, de m’avoir conseill´e et suivi tout au long de ma p´eriode de recherche / ´etude et de r´edaction de ce PRI.

Je remercie ´egalement toutes les personnes que ce soit mes camarades de l’EXIA ou mes proches d’avoir relu ce document de recherche.

Enfin, je remercie tous ceux qui ont pris un peu de leur temps libre pour r´epondre

`

a mes questionnaires. Grˆace aux r´eponses de ces 605 personnes sond´ees, j’ai pu analyser cette multitude de r´eponses ce qui m’a fait obtenir une analyse des plus fiable.

(6)

1 Introduction

Aujourd’hui, le monde entier utilise internet que ce soit pour faire des recherches, des rencontres ou faire des achats. Un grand nombre d’entre nous vit grˆace `a cette technologie de fa¸con directe ou indirecte.

Toute entreprise, association, PME ou particulier peut disposer d’un site internet afin de pr´esenter une activit´e, un projet ou mˆeme une passion. Pour cela, ils peuvent soit cr´eer leur site eux-mˆemes soit d´el´eguer cette tˆache `a une entreprise sp´ecialis´ee dans la cr´eation de sites internet, appel´ee webagency.

Les webagency ont `a leur disposition plusieurs technologies leur permettant de d´evelopper des sites internet, entre autres les frameworks PHP et les CMS Open source (Content Management System) ´ecrits en PHP. Bien que ces deux outils permettent la cr´eation d’un site internet, leur utilisation et d´emarche sont compl`etement diff´erentes. Dans certains cas, il existe mˆeme des entreprises qui ne savent pas choisir quelle technologie adopter suivant les besoins du client. Cer- taines entreprises s’arrˆetent ´egalement trop rapidement `a un choix : celui que leur d´eveloppeur web ou d´epartement IT propose, une solution tout `a fait fonctionnelle, mais non-optimale pour d’autres disciplines de l’organisation.

D’o`u ma question de recherche : Du point de vue des entreprises faut-il privil´egier les Frameworks PHP aux CMS Open source en entreprise pour la cr´eation de sites internet ? Si le Framework PHP doit ˆetre privil´egi´e, lequel doit ˆetre utilis´e ? Si le CMS doit ˆetre privil´egi´e, lequel doit ˆetre utilis´e ?

Pour r´epondre `a cette probl´ematique, dans ce document de recherche, deux parties ont ´et´e r´ealis´ees.

Tout d’abord il y a l’´etat de l’art, o`u j’y pr´esente ce qu’est un framework et CMS Open source, comprenant les avantages et inconv´enients de chacun. Quelques exemples de CMS et de frameworks tels que Joomla ou Zend Framework y sont pr´esent´es. La seconde partie de cet ´etat de l’art aborde l’utilisation de ces deux outils en entreprise. Des diagrammes y seront pr´esent´es et comment´es.

(7)

Enfin, il y a la partie ´etude o`u je pr´esente les r´esultats de mes tests ainsi que des statistiques et analyses permettant de r´epondre `a ma question de recherche. J’y pr´esente ´egalement un outil d’aide `a la d´ecision que j’ai mis en place pour aider les entreprises, travaillant dans le domaine du web, `a s´electionner le CMS Open Source ou le framework PHP le plus adapt´e `a leurs besoins.

2 Etat de l’art

2.1 Framework PHP

2.1.1 Qu’est-ce qu’un Framework PHP ?

Le mot framework provient de l’anglais frame qui veut dire cadre en fran¸cais, et work qui signifie travail. Litt´eralement un framework est donc uncadre de travail.

Un framework PHP est un ensemble de librairies et d’outils permettant d’am´eliorer la conception d’applications et de sites web en y apportant des fonctionnalit´es suppl´ementaires tout en ajoutant de la rigueur dans le d´eveloppement.

L’utilisation d’un framework permet ´egalement d’am´eliorer la productivit´e des d´eveloppeurs qui l’utilisent dans la mesure o`u il int`egre un certain nombre de routines impl´ement´ees nativement.

Il existe des frameworks ´ecrits pour diff´erents langages, par exemple pour le PHP, Python, JavaScript, JAVA, C, etc. Par la suite, nous nous int´eresserons seulement aux frameworks PHP.

Un framework est con¸cu par un ou plusieurs d´eveloppeurs `a destination d’autres d´eveloppeurs.

Contrairement aux CMS, un framework n’est pas destin´e aux utilisateurs finaux.

En effet, il est n´ecessaire d’avoir des connaissances en programmation web pour utiliser cet outil.

(8)

2.1.2 Caract´eristiques d’un Framework PHP Architecture MVC

L’architecture MVC (Model View Controller) est utilis´ee par la majorit´e des frameworks PHP d’aujourd’hui.

Cette architecture int`egre les trois niveaux de conceptions suivants :

– Le mod`ele : il s’agit du comportement de l’application. On y int`egre l’en- semble des interactions avec la base de donn´ees et le traitement des donn´ees.

Ce niveau contient et manipule toutes les donn´ees que ce soit pour faire de la s´election, insertion, modification ou suppression (CRUD).

– La vue : Il s’agit de l’interface que l’utilisateur va manipuler. Elle est en relation avec le mod`ele. En effet, la vue habillera les donn´ees transmises par la couche mod`ele. Au sein de la couche vue, on re¸coit toutes les actions effectu´ees par l’utilisateur. Celles-ci seront d´el´egu´ees au contrˆoleur.

– Le contrˆoleur : Le contrˆoleur re¸coit toutes les actions effectu´ees par l’uti- lisateur, et effectue la d´etection d’erreurs (par exemple la v´erification du remplissage correct des champs d’un formulaire). Tout comme la vue, le contrˆoleur n’effectue aucune modification sur les donn´ees, il est uniquement charg´e d’appeler le mod`ele et de renvoyer la vue concern´ee.

Gestion du cache

La plupart des frameworks PHP prend en compte la gestion du cache. Ce syst`eme permet de stocker les pages (PHP, HTML, JS, CSS, . . . ) ainsi que les images afin d’optimiser leur temps de chargement.

Gestion des SGBDR

Les frameworks ont ´et´e con¸cus de sorte qu’ils doivent pouvoir g´erer plusieurs types de base de donn´ees : bien entendu MySQL, mais ´eventuellement PostgreSQL ou Oracle en fonction des besoins.

(9)

ORM et Active Record

Le framework peut ´egalement proposer une fonctionnalit´e d’ORM (Object Re- lationnal Mapping) et d’Active Record. Ces fonctionnalit´es permettent de mas- quer la complexit´e du langage SQL et d’effectuer la plupart des op´erations par l’interm´ediaire d’objets tr`es simples, ce qui all`ege significativement le travail du d´eveloppeur. Les attributs d’une table ou d’une vue sont encapsul´es dans une classe.

Convention de codage

Les frameworks obligent les d´eveloppeurs `a utiliser les mˆemes conventions de codage afin d’avoir un code uniforme. Cela rend le code plus maintenable et permet une ´evolutivit´e simplifi´ee.

G´en´eration de code

La mise en place d’un nouveau projet pour la cr´eation d’un site internet demande g´en´eralement la mise en place d’une structure globale et la cr´eation de nombreux fichiers qui permettront aux d´eveloppeurs de travailler efficacement.

La g´en´eration de code est utilis´ee pour gagner du temps grˆace `a l’initialisation automatique de la structure d’une application et `a la cr´eation et d´eclaration de nouveaux ´el´ements ou plugins via une simple ligne de commande.

Gestion des droits

Un framework peut offrir des m´ethodes pour d´efinir les rˆoles des utilisateurs ainsi que les droits n´ecessaires pour ex´ecuter chaque op´eration. Il se charge ensuite de v´erifier les autorisations `a chaque appel d’action et de bloquer l’ex´ecution si n´ecessaire.

(10)

Url Rewriting et redirection

Les frameworks permettent la gestion des urls facilement. En effet, ils impl´ementent des r`egles de redirections ainsi qu’un module de r´e´ecriture d’urls (Url Rewriting).

Le Url Rewriting permet de transformer des urls pour que celles-ci soient plus compr´ehensives par les robots d’indexation. De belles urls permettent d’avoir un meilleur r´ef´erencement.

2.1.3 Liste de Frameworks PHP

Il existe un grand nombre de frameworks PHP, je vais donc m’int´eresser seule- ment `a quelques frameworks qui ont fait leur preuve ainsi qu’`a des nouveaux.

Les anciens

Zend Framework

Zend Framework est un framework open-source destin´e au d´eveloppement d’applications web, de services web et de sites dynamiques en PHP cr´e´e en Mars 2006 par Zend Technologies.

La derni`ere version de Zend Framework, Version 2.4.2, date du 11 Mai 2015.

Ce framework a ´et´e construit enti`erement en code orient´e-objet ce qui permet une ´evolution et une maintenance simplifi´ee.

Contrairement aux composants (briques logicielles) des autres frameworks, les composants du Zend Framework ont ´et´e con¸cus avec de faibles d´ependances.

On dit qu’ils sont faiblement coupl´es. Cette architecture, appel´ee use at will , permet aux d´eveloppeurs d’utiliser les composants individuellement.

Globalement, Zend Framework est compos´e d’un cœur et de nombreuses librairies. Il n’est pas n´ecessaire de connaˆıtre les librairies pour l’utiliser. Il suffit juste d’apprendre `a utiliser le cœur.

(11)

Le Zend Framework apporte une organisation de r´epertoires et de classes qui permet de faire cohabiter des librairies entre elles plus naturellement.

Quel que soit le besoin de l’application ou du site `a cr´eer, grˆace `a la diversit´e et `a la multitude des composants du Zend Framework, il est tr`es ais´e de trouver le composant qui peut ˆetre utilis´e pour r´eduire le temps de d´eveloppement.

De nombreux entreprises ont contribu´e au d´eveloppement de composants ou

`

a des fonctionnalit´es significatives du framework telles que Google, Microsoft et Strikelron.

CakePHP

CakePHP est un framework open-source destin´e au d´eveloppement d’appli- cations web, de services web et de sites dynamiques en PHP cr´e´e en 2005 par Cake Software Foundation.

La derni`ere version de CakePHP, Version 3.0.6, date du 27 Mai 2015.

CakePHP est compatible avec PHP4 et PHP5.

Ce framework imite le fonctionnement du Ruby On Rails, qui est un fra- mework web libre ´ecrit en Ruby. CakePHP suit le motif de conception MVC et facilite l’utilisation de la base de donn´ees avecORMetActive Record. Il int`egre

´egalementCRUD.

Ce framework est fourni avec de nombreuses fonctions et de classes int´egr´ees permettant de couvrir certaines des fonctionnalit´es les plus communes requises dans les applications web.

Un avantage du CakePHP est qu’il n’y a pas de configurations `a faire au pr´ealable pour utiliser ce framework contrairement `a d’autres. Cependant, une configuration de la base de donn´ees est n´ecessaire.

(12)

CakePHP offre la possibilit´e d’utiliser des scripts en ligne de commande permettant la g´en´eration automatique de code `a partir du mod`ele physique de donn´ees.

Enfin, comme pour la plupart des frameworks, CakePHP suit les bonnes pratiques concernant la s´ecurit´e, l’authentification et la gestion des sessions.

CodeIgniter

CodeIgniter est un framework l´eger open-source destin´e au d´eveloppement d’applications web, de services web et de sites dynamiques en PHP publi´e la 1`ere fois le 18 F´evrier 2006. Ce framework est issu de la soci´et´e EllisLab. Depuis Sep- tembre 2013, EllisLab recherche un nouveau repreneur pour CodeIgniter.

La derni`ere version de CodeIgniter, Version 3.0, date du 30 Mars 2015.

Tout comme CakePHP, CodeIgniter s’inspire du fonctionnement du Ruby On Rails. Il suit ´egalement le motif de conception MVC.

Les versions de CodeIgniter inf´erieures `a la 2.0.0 sont compatibles avec PHP4 et PHP5, tandis que les versions sup´erieures `a la 2.0.0 ne sont compa- tibles qu’avec PHP 5.1.6 ou plus. La prochaine version de CodeIgniter, en cours de d´eveloppement, n´ecessitera PHP 5.2.4.

La particularit´e de ce framework est qu’il a ´et´e con¸cu dans le but de ne fournir que le strict minimum. Tout le reste est enti`erement optionnel. Ce syst`eme permet de r´eduire le temps de g´en´eration des pages de l’application ou du site internet.

CodeIgniter se retrouve souvent en tr`es bonne position dans les benchmarks.

Ce framework offre de nombreuses fonctionnalit´es telles que par exemple l’Active Record, un syst`eme de cache, le cryptage de donn´ees, la gestion des sessions, la gestion des erreurs par log, le profiler.

(13)

Symfony

Symfony est un framework MVC libre ´ecrit en PHP 5 destin´e au d´eveloppement d’applications web, de services web et de sites dynamiques lanc´e en Octobre 2005.

Ce framework a ´et´e d´evelopp´e par Sensio Labs, une agence web fran¸caise. Il est

´egalement inspir´e de Rails on Ruby.

Symfony est consid´er´e comme l’un des meilleurs framework pour les d´eveloppements sp´ecifiques en PHP.

A l’origine, ce framework se nommait Sensio Framework et n’avait ´et´e d´evelopp´e que pour les besoins internes de l’entreprise. Par la suite, cette entreprise a sou- hait´e partager le code source avec la communaut´e des d´eveloppeurs PHP. Le projet est alors devenu Symfony.

La derni`ere version de Symfony, Version 2.7.0, date du 30 Mai 2015.

Symfony 1.x utilise une version de PHP sup´erieure ou ´egale `a la 5.2.4 alors que Symfony 2.x n´ecessite une version de PHP sup´erieure ou ´egale `a la 5.3.3.

Symfony est un framework construit autour du protocole HTTP et de l’ar- chitectureREST.

Symfony est con¸cu pour supporter les applications comprenant de multiples serveurs web. Il propose par exemple plusieurs m´ethodes de gestion des sessions utilisateurs (informations stock´ees en m´emoire, dans une base de donn´ees, etc.) qui permettent de mettre en place de telles architectures.

Comme CakePHP, Symfony n’impl´emente pas de syst`eme d’authentification.

Cependant, il dispose d’un syst`eme de gestion des droits.

Symfony dispose ´egalement d’un syst`eme de plugins. A ce jour, plus d’une centaine d’extensions sont disponibles : g´en´eration de fichiers PDF, deflux RSS, . . .

(14)

Enfin, comme autres fonctionnalit´es offertes par Symfony, on peut trouver par exemple la gestion du cache, l’ORM, l’adaptation `a l’Ajax, la g´en´eration de code ainsi que l’internationalisation (cr´eation de sites multilingues).

De nombreux sites sont d´evelopp´es avec Symfony. Par exemple, Dailymotion ainsi que Yahoo ! Bookmarks utilisent Symfony, ainsi que la version 8 du CMS Drupal.

Les nouveaux Laravel

Laravel est un framework MVC open-source destin´e au d´eveloppement d’ap- plications web, de services web et de sites dynamiques en PHP. Ce framework a

´et´e cr´e´e par Taylor Otwell en 2011.

La derni`ere version de Laravel, Version 5.1.0, est sortie fin Mai 2015. Cette derni`ere version est ´ecrite en PHP 5.4.

Laravel combine le meilleur des autres frameworks web, incluant les frame- works d’autres langages comme Ruby On Rails, ASP.NET et Sinatra.

Cette version de Laravel est bas´ee sur le gestionnaire de paquets Composer, ce qui facilite l’installation, la d´esinstallation, mise `a jour du framework et l’ajout de packages.

Laravel fournit des fonctionnalit´es telles que l’ORMet l’Active Record, la g´en´eration de code grˆace `a Composer, un syst`eme d’authentification, une gestion des exceptions ou un outil de migration de base de donn´ees.

Ce framework fournit une int´egration de tests unitaires ainsi qu’un environ- nement de tests ce qui permet aux d´eveloppeurs de travailler en toute s´er´enit´e.

Une des particularit´es de Laravel est qu’il inclut un moteur de template ce qui peut faciliter la construction des pages dynamiques au sein d’un site internet.

(15)

En Aoˆut 2014, Laravel fut le projet PHP le plus populaire et le plus vu sur GitHub.

FuelPHP

FuelPHP est un framework web open-source destin´e au d´eveloppement d’ap- plications web, de services web et de sites dynamiques en PHP. Il impl´emente le design pattern MVC.

La premi`ere version de FuelPHP est sortie le 31 Juillet 2011. Des contribueurs du framework CodeIgniter ont travaill´e sur ce framework.

La derni`ere version de FuelPHP, Version 1.7.3, date du 20 Mai 2015.

Tout comme Laravel, FuelPHP a ´et´e con¸cu en reprenant les meilleures id´ees pr´esentes dans les autres frameworks.

Concernant son architecture, FuelPHP est ´ecrit en PHP 5.3. FuelPHP a ´et´e con¸cu de la sorte qu’il soit extensible, flexible et modulaire.

Ce framework offre de nombreuses fonctionnalit´es telles que par exemple l’ORM, un moteur de template (comme c’est le cas pour Laravel), un outil de migration de base de donn´ees (inspir´e du framework Ruby on Rails) ou unprofiler.

Pareillement `a Symfony, FuelPHP impl´emente le design pattern REST.

Yii Framework

Yii Framework, acronyme de Yes, It is ! est un framework open-source destin´e au d´eveloppement d’applications web, de services web et de sites dyna- miques en PHP.

(16)

Le cr´eateur et d´eveloppeur principal de Yii Framework est Qiang Xu, qui a

´egalement d´evelopp´e et maintenu le framework PHP Prado. On peut dire que Yii Framework en est son successeur.

La premi`ere version de Yii Framework date du 3 D´ecembre 2008. La version actuelle, Version 2.0.4, est sortie le 10 Mai 2015.

Ce framework n´ecessite au minimum la version 5.1 de PHP.

Yii Framework fonctionne ´egalement avec des extensions et modules. Au- jourd’hui il en existe 1485, ce qui prouve l’engouement de la communaut´e autour de ce framework.

Concernant le cˆot´e technique, Yii Framework est d´evelopp´e en respectant le mod`ele MVC et reprend le meilleur des autres frameworks tels que Symfony, Ruby on Rails ou Prado.

Au niveau des fonctionnalit´es, Yii Framework offre la gestion du cache, le support de Ajax, un support de tests unitaires, l’Active Record, la g´en´eration de code ou bien encore la gestion de th`emes pour l’habillage des sites.

Particularit´e de ce framework, l’administration peut se faire via une interface graphique si celle-ci a ´et´e activ´ee au pr´ealable.

2.1.4 Utilisation

Il faut privil´egier l’utilisation d’un framework PHP pour la cr´eation d’un site internet dans l’un ou l’autre des cas suivants :

– Le site internet doit impl´ementer une majorit´e de fonctionnalit´es et de r`egles d’affaires non habituelles,

– On souhaite une relation forte, voir fusionnelle avec l’´equipe de d´eveloppeurs

`

a long terme (par exemple la cr´eation d’un site sur mesure par une ´equipe interne),

– L’entreprise veut un contrˆole quasi-total sur l’´evolution des composants de son site,

(17)

– L’entreprise veut pouvoir r´eutiliser des modules de ses anciens projets, – L’entreprise souhaite instaurer des bonnes pratiques de codage pour per-

mettre une maintenance et une ´evolutivit´e du site internet en toute simpli- cit´e.

2.1.5 Avantages

Voici une liste non exhaustive des avantages d’un framework : Productivit´e

Un framework offre la possibilit´e au d´eveloppeur final d’utiliser des compo- sants pour lui faciliter le d´eveloppement, et lui permet ainsi de se concentrer sur le plus important, donc de gagner en temps et en productivit´e.

Code

Utiliser un framework, c’est donc avoir la garantie de disposer d’une archi- tecture coh´erente, o`u la rigueur de d´eveloppement est primordiale. Ce qui est une bonne chose puisqu’un code bien organis´e est un code facilement maintenable et

´evolutif.

Travail

Un framework utilise presque toujours l’architecture MVC, ce qui permet donc d’organiser son code de la fa¸con `a s´eparer le code PHP du code HTML.

Ainsi, le designer pourra donc travailler en simultan´e avec le d´eveloppeur.

Communaut´e

Chaque framework est soutenu par une communaut´e, plus au moins grande selon la renomm´ee de celui-ci, ce qui permet aux d´eveloppeurs de disposer de tutoriels, cours, des mises `a jours du framework et d’aide sur les forums.

(18)

2.1.6 Inconv´enients

Voici une liste non exhaustive des inconv´enients d’un framework : Complexit´e

Utiliser un framework introduit de nombreuses exigences et de la complexit´e, dans la mesure o`u certaines habitudes de d´eveloppement devront ˆetre mises de cˆot´e lors de son adoption. La courbe d’apprentissage est donc plus ´elev´ee.

Performance

Pour la plupart des frameworks, on peut remarquer une latence dans le trai- tement. En effet, il y a tellement de composants dans certains d’entre eux que le script devient plus lent. Cependant, ces probl`emes sont g´erables, entre autre grˆace au cache.

Diversit´e

Il existe de nombreux frameworks, il est donc parfois difficile de choisir le plus appropri´e selon les besoins utilisateurs.

(19)

2.2 CMS Open Source

2.2.1 Qu’est-ce qu’un CMS Open Source ?

Un CMS (Content Management System ou Syst`eme de Gestion de Contenu) Open Source est un type d’application web libre permettant de s´eparer le contenu de la mise en forme pour des sites internet et fournissant des moyens simplifi´es pour ´editer ce contenu.

En effet, grˆace aux ´editeurs WYSIWYG “What you see is what you get” fournis par la majorit´e des CMS, l’utilisateur pourra cr´eer des pages sans connaitre le HTML.

Grˆace aux CMS, il est donc possible de maintenir et de faire vivre un site internet sans la moindre connaissance technique dans les m´etiers du web.

Il existe des CMS ´ecrits pour diff´erents langages, par exemple pour le PHP, Java, .NET, etc. Par la suite, nous nous int´eresserons seulement aux CMS ´ecrits en PHP.

2.2.2 Caract´eristiques d’un CMS Technologies

Un syst`eme de gestion de contenu fonctionne g´en´eralement avec des technologies serveurs :

– Un serveur de base de donn´ees pour stocker toutes les informations, toutes les donn´ees du site. C’est principalement MySQL qui est utilis´e, mais il existe des CMS travaillant avec d’autres serveurs de base de donn´ees tels que SQL Server, PostgreSQL ou Oracle. Cependant, il existe aussi des CMS qui ont d´ecid´e de se passer de bases de donn´ees pour revenir au stockage par fichiers textes. Ce choix permet de simplifier l’installation et la sauvegarde du site, mais en contrepartie, le CMS perd en souplesse et en interaction avec les visiteurs puisque la lecture et l’´ecriture dans un fichier est une tˆache qui requiert beaucoup plus de temps qu’un simple ´echange avec une base de donn´ees.

(20)

– Un serveur d’applications permettant la liaison `a la base de donn´ees et l’affichage des pages HTML. C’est principalement PHP qui est utilis´e.

La plupart du temps, les CMS proposent une partie administration disponible directement `a partir d’un lien : http ://www.mon-site.fr/administrator/ pour le cas de Joomla.

L’administrateur n’aura donc qu’`a se connecter pour configurer et g´erer le contenu de son site internet.

D’un autre cˆot´e, il existe aussi des CMS ne proposant pas de partie administra- tion du fait qu’ils ont d´ecid´e de se passer de bases de donn´ees. Les configurations et la gestion de contenu se font donc directement `a partir de fichiers textes qui sont ´editables depuis un simple ´editeur tel que bloc note ou NotePad++. Il suffit ensuite de mettre en ligne ce contenu grˆace `a un FTP ou un syst`eme de versionalisation comme Git.

Le grand avantage de ces CMS est qu’ils sont bien plus rapides `a mettre en place et tr`es s´ecuris´es car on ne peut acc´eder `a l’administration.

Modules, Extensions et Templates Modules et Extensions

Les modules ainsi que les extensions sont de grandes portions de code ´ecrites en PHP et comprennent g´en´eralement une interface utilisateur. Ils peuvent ˆetre directement install´es `a partir de l’administration du CMS.

Les modules et extensions permettent d’ajouter de nouvelles fonctionnalit´es dans le CMS et donc dans le site internet. Par exemple, il existe des modules permettant la mise en place d’une galerie d’images ou d’un syst`eme de livre d’or.

(21)

Ces ´el´ements sont d´evelopp´es principalement par la communaut´e du CMS en question. Ils sont g´en´eralement en libre t´el´echargement dans des forums, sites sp´ecialit´es mais dans certains cas il est n´ecessaire d’acheter une licence pour les utiliser.

Templates

En plus des modules et extensions, il existe les templates (appel´es aussi gaba- rits ou mod`eles). En effet, une des grandes particularit´es du CMS est la dissociation du contenu et de la pr´esentation.

De mani`ere sch´ematique, un template un compos´e :

– D’une feuille de style au format CSS ( Cascading Style Sheets ou

Feuille de style en cascade ). Ce fichier permet de d´ecrire la pr´esentation de l’ensemble de documents HTML : couleur de la police, type de police, . . . – De d´eclarations au format XML( eXtensible Markup Language ou

Langage de balisage extensible ) fonctionnant `a la mani`ere d’un sch´ema et qui va fixer les diff´erents ´el´ements entrant dans la composition d’une page Web.

Il existe une multitude de templates `a t´el´echarger gratuitement pour chaque CMS. Il est donc tr`es ais´e `a un utilisateur de changer l’apparence de son site internet. Si cette personne s’y connait en langages de programmation Web, elle pourra mˆeme personnaliser ce template en modifiant le contenu des fichiers fournis.

2.2.3 Les types de CMS

Il existe diff´erents types de CMS dont chacun a sa sp´ecialit´e. Il existe des CMS permettant de faire :

– des sites web dynamiques, – du travail collaboratif, – des forums,

– des blogs,

– des portails communautaires – des galeries photos,

(22)

– des sites e-commerces.

Il est donc tr`es important de se renseigner sur le type de CMS `a utiliser avant de commencer son site internet.

2.2.4 Liste de CMS Open Source Les anciens

WordPress

WordPress est un syst`eme de gestion de contenu (CMS) open-source ´ecrit en PHP. Il est distribu´e par Automatic. La premi`ere version de WordPress a vu le jour le 27 Mai 2003 et sa derni`ere version, Version 4.2.2, date du 7 Mai 2015.

Ce CMS repose uniquement sur une base de donn´ees MySQL.

WordPress est utilis´e principalement comme moteur de blog, mais ses fonc- tionnalit´es lui donnent la possibilit´e de g´erer n’importe quel site internet.

Ce CMS inclut toutes sortes de fonctionnalit´es telles que la gestion des liens externes, des r´etroliens, un syst`eme de gestion des commentaires, la gestion des utilisateurs ou une interface polyglotte.

Grands avantages de WordPress, il est compatible UTC. Il utilise aussi la compression GZIP ce qui permet d’´economiser de la bande passante.

Du fait de ces nombreuses fonctionnalit´es, WordPress est un CMS destin´e

`

a des utilisateurs avanc´es, ayant un minimum de connaissances des syst`emes de gestion de contenus.

Comme la plupart des CMS, WordPress respecte les standards du Web xHTML et CSS.

(23)

Un inconv´enient de WordPress est que celui est cod´e en proc´edural ce qui limite l’´evolution. Si un d´eveloppeur doit ajouter des fonctionnalit´es sp´ecifiques `a partir du code source, le d´eveloppement peut ˆetre tr`es long.

Etant l’un des premiers CMS sur le march´e, WordPress a pu agrandir sa communaut´e de fa¸con exponentielle. Aujourd’hui, des centaines de templates, plu- gins et extensions peuvent ˆetre rajout´es `a ce CMS, tous cr´e´es par la communaut´e WordPress.

Joomla

Joomla est un syst`eme de gestion de contenu (CMS) open-source ´ecrit en PHP. Il est distribu´e par OpenSourceMatters. La premi`ere version de Joomla a

´et´e annonc´ee le 16 Septembre 2005 et sa derni`ere version, Version 3.4.0, date du 21 Mars 2015.Joomla est bas´e sur le CMS Mambo.

Contrairement `a WordPress, Joomla est principalement utilis´e pour la cr´eation de site internet de pr´esentation d’une activit´e, association ou d’un produit.

Joomla repose uniquement sur une base de donn´ees MySQL.

L’architecture de ce CMS a ´et´e con¸cu de la sorte `a qu’il soit le plus modulaire possible, ce qui permet des extensions et int´egrations `a faire facilement. Certaines de ces extensions sont appel´es plugins . Il existe aussi les composants qui permettent d’effectuer des tˆaches telles que la sauvegarde d’un site web ou la r´e´ecriture d’url. Enfin, on trouve les modules . Ils permettent d’effectuer des tˆaches telles que l’affichage d’un calendrier `a ins´erer dans le code de base de Joomla.

Joomla inclut des fonctionnalit´es telles que la gestion du cache, g´en´eration de flux RSS, la gestion des utilisateurs, la cr´eation de sondages, la gestion d’articles et de cat´egories, une version imprimable des pages.

Tout comme WordPress, Joomla peut ˆetre personnalis´e du point de vue de l’affichage grˆace aux templates, qui eux aussi existent par centaines sur le web.

(24)

Un des avantages du Joomla est qu’il est bˆati sur un Framework orient´e objet tout en respectant le mod`ele MVC. Il sera donc plus ais´e au d´eveloppeur de manipuler lecode source de ce CMS.

Drupal

Drupal est un syst`eme de gestion de contenu (CMS) open-source ´ecrit en PHP. Il ´et´e d´evelopp´e initialement par Dries Buytaert `a partir de 2000. La derni`ere version de Drupal, Version 8.0 Beta 11, date du 27 Mai 2015. Cette version s’arti- cule sur le framework Symfony2 contrairement aux versions inf´erieures (7.X, 6.X, ...).

Drupal est utilis´e pour le d´eveloppement d’applications et de sites internet.

Il est utilisable sur toute base LAMP, WAMP ouMAMP.

Ce CMS peut utiliser une base de donn´ees MySQL, PostgreSQL, SQLite ou mˆeme Oracle.

Globalement, Drupal comporte deux types de composants bien distincts : le cœur, et les modules d´evelopp´es librement par la communaut´e.

Drupal inclut des fonctionnalit´es telles qu’un outil de tests d’int´egrations, gestion des m´edias, gestion des articles et des cat´egories, r´e´ecriture d’url, agr´egateur de contenu (flux RSS, RDF), suivi des logs et statistiques de visite. Il permet aussi d’utiliser des moteurs de templates.

Drupal peut ˆetre personnalis´e de plusieurs fa¸cons : nativement grˆace aux fonctionnalit´es de bases, par ajout d’extensions externes ou en ´ecrivant de nou- veaux modules r´egis par la GPL. Ce CMS utilise la notion de hook, litt´eralement

crochet ou hame¸con . Ce syst`eme permet d’accrocher un fichier `a une fonctionnalit´e, g´en´eralement un langage de script, ce qui lui permettra de changer son comportement.

Le traitement PHP au sein de Drupal se fait par des modules ind´ependants, juxtaposables, et combinables.

(25)

Particularit´e de Drupal, il nomme tout contenu qu’il g`ere unnœud. Une page d’article sera par exemple un nœud. Chacun de ces nœuds poss`edera un type : forum, blog, galerie d’images, etc. A la cr´eation d’un nœud, il se verra attribuer un noeud ID(NID). Au fur et `a mesure de ses r´evisions, s’il y en a, le syst`eme incr´ementera un compteur de r´evision ID(VID). Ce syst`eme de r´evisions permet de revenir `a une version ant´erieure si besoin.

Autre particularit´e, Drupal dispose d’une interface unique pour le front office et le back office.

eZ Publish

eZ Publish un syst`eme de gestion de contenu (CMS) open-source ´ecrit en PHP. Il est d´evelopp´e par l’entreprise norv´egienne eZ Systems AS et existe depuis 1999.

La derni`ere version du CMS eZ Publish, Version 5.4, date du 1er D´ecembre 2014.

Tout comme Drupal, une couche d’abstraction pour l’acc`es aux bases de donn´ees permet d’utiliser les syst`emes de gestion de base de donn´ees les plus courants : MySQL, PostgreSQL, Microsoft SQL Server et Oracle.

eZ Publish supporte la majorit´e des fonctionnalit´es existantes dans les CMS : gestion du cache, moteur de template, ´edition de contenu, e-commerce, gestion d’utilisateurs, de groupes et les rˆoles associ´es, sites multilingues, script PHP cron.

eZ Publish se distingue des autres CMS open source par ses possibilit´es de configuration et d’extension : il permet de cr´eer des types de contenus en ligne.

Chaque contenu aura ses propres attributs. Par exemple, une actualit´e ne com- prendra seulement qu’un titre et un texte alors qu’un compte rendu de r´eunion pourra comprendre un titre, la liste des participants, une description et une date.

(26)

Du fait qu’eZ Publish respecte le design pattern REST, il est possible aux d´eveloppeurs de cr´eer des int´egrations, des connecteurs et des applications, h´eberg´es sur des serveurs ou des appareils externes. Ceci permet d’agir en ligne et de fournir une exp´erience de contenu `a travers tout l’´ecosyst`eme entier : t´el´evision, smartphone, ordinateur.

eZ Publish fonctionne ´egalement avec des modules qui peuvent ˆetre d´evelopp´es par la communaut´e d’eZ Publish.

SPIP

SPIP ”Syst`eme de publication pour l’internet” est un logiciel libre destin´e `a la production de sites web ´ecrit en PHP. SPIP existe depuis 2001. Il a ´et´e d´evelopp´e `a l’origine pour le site internethttp://www.uzine.net/par des fran¸cais. La derni`ere version, 3.0.19, date du 5 Mai 2015.

SPIP s’appuie sur la base de donn´ees MySQL, mais aussi sur SQLite et PostgreSQL (en version exp´erimentale). Il peut ˆetre utilis´e comme requˆeteur Web multi-bases (y compris avec des bases de donn´ees distantes).

Dans l’offre nombreuse et diverse de syst`emes de gestion de contenu, il se distingue par le soin apport´e aux standards de l’´edition (respect des r`egles typo- graphiques, organisation des rˆoles des participants).

Les pages du site sont g´en´er´ees`a la vol´ee: les contenus sont stock´es dans la base de donn´ees et sont mis en forme au moyen desquelettesde pr´esentation, comme c’est le cas pour la plupart des CMS. Ces squelettes permettent de pro- duire les fonctionnalit´es qu’on peut attendre d’un site internet moderne grˆace `a un langage de balisage l´eger qui mˆele le HTML `a un ensemble de boucles , de balises et de filtres document´es dans plusieurs langues sur le site du projet.

Enfin, SPIP dispose d’un syst`eme de cache qui permet d’´eviter des calculs redondants pour g´en´erer les pages. La dur´ee de vie d’une page dans le cache est

(27)

param´etrable dans son squelette de pr´esentation.

Comme autres fonctionnalit´es offertes par SPIP et technologies utilis´ees on peut citer : multilinguisme, syst`eme de plugins, outil d’aide `a la traduction, bi- blioth`eque jQuery, AJAX, etc.

Typo3

Typo3 est un syst`eme de gestion de contenu libre ´ecrit en PHP, cr´e´e en 1997 par le danois Kasper Sk˚arhøj. Il fonctionne sur un serveur Apache ou IIS. La derni`ere version de Typo3 est la 7.2. Elle date du 28 Avril 2015.

Pour utiliser Typo3, il est n´ecessaire d’avoir l’une des versions 5.3.7-5.5.x de PHP d’install´ee ainsi qu’une base de donn´ees MySQL.

Typo3 est un CMS complet, qui dispose de la plupart des fonctionnalit´es recherch´ees.

Typo3 a une architecture en plugin bas´ee sur des extensions qui permet une

´evolution maˆıtris´ee des d´eveloppements ainsi qu’une adaptation possible de Typo3 aux besoins du client sans toucher au cœur du CMS. Typo3 adh`ere aux standards d’accessibilit´e du web.

Typo3 permet d’int´egrer des templates HTML de plusieurs mani`eres, soit de fa¸con classique via l’utilisation de marqueurs, soit au travers d’une extension qui aide `a r´ealiser ce mapping comme TemplaVoila ou Jetts.

Typo3 dispose de son propose langage, le TypoScript. Le TypoScript permet de configurer le fonctionnement d’un site selon les d´esirs et les pratiques du client.

Il est donc possible de personnaliser son site internet sans toucher au code HTML ni aux fichiers PHP. Comme autres fonctionnalit´es offertes par Typo3 on peut citer : multilinguisme, taxonomie, gestion multi-site, cron, url rewriting, etc.

(28)

Les nouveaux Dropplets

Dropplets un syst`eme de gestion de contenu (CMS) open-source ´ecrit en PHP. Il a ´et´e d´evelopp´e par Jason Schuller en 2013. La version actuelle est la 1.6.

Dropplets est principalement utilis´e pour les blogs du fait de sa particularit´e.

Comme le dit Jason Schuller, Dropplets isn’t a CMS, it’s just for pure blogging and absolutely nothing more .

En effet, contrairement `a la grande majorit´e des autres CMS, Dropplets ne fonctionne avec aucune base de donn´ees. Grˆace `a ce syst`eme, il est possible d’ins- taller ce CMS en quelques secondes : t´el´echargement de l’archive, le d´ecompresser le mettre sur le FTP et choisir un mot de passe.

Ce CMS est fourni avec un panneau d’administration qui permet de changer le th`eme (au nombre de 3 pour l’instant), publier un article, ajouter un Google Analytics et autres.

Il est tout `a fait possible de cr´eer son th`eme si l’utilisateur a les connaissances n´ecessaires en graphisme et en langage web.

L’´ecriture d’un article se fait en markdown. Le markdown est un langage de balisage dont le but est d’offrir une syntaxe facile `a lire et `a ´ecrire. Dropplets est compatible avec tout ´editeur de texte. D`es lors que l’article est ´ecrit, il ne reste plus qu’`a uploader le fichier.txt sur le serveur `a partir du panneau de configuration et le mettre dans l’´etat online .

Fork CMS

Fork CMS un syst`eme de gestion de contenu (CMS) l´eger open-source ´ecrit en PHP5. La date de sortie de ce CMS fut en 2011. La version actuelle, Version 3.9.2, date du 12 Mai 2015.

(29)

Ce CMS est aussi bien utilis´e pour la cr´eation d’un site internet de pr´esentation que pour un blog, si le module a ´et´e install´e au pr´ealable.

Fork CMS repose uniquement sur la base de donn´ees MySQL.

Fork CMS dispose d’une interface gestion intuitive et pouss´ee. De base, cette plateforme int`egre des fonctionnalit´es classiques telles que le SEO, un outil de marketing et statistiques, l’ajout d’article, la gestion du cache. Ce CMS permet

´egalement l’utilisation de crons et d’un traducteur int´egr´e pour l’internationali- sation du site internet.

Une des particularit´es de Fork CMS est qu’il est possible de se connecter sur son compte Google Analytics via le tableau de bord du back office. Il est donc tr`es ais´e d’avoir un aper¸cu de ses visiteurs `a un instant T. Il est ´egalement possible d’envoyer et de revoir des e-mails `a partir duback office. C’est le module

Mailmotor qui permet cette fonctionnalit´e.

Fork CMS offre ´egalement la possibilit´e d’installer des extensions ou des th`emes d´evelopp´es par la communaut´e.

Concernant son architecture, Fork CMS s’inspire du MVC et impl´emente le design pattern REST.

Ionize CMS

Ionize CMS est un syst`eme de gestion de contenu (CMS) open-source ´ecrit en PHP 5.3.1. Il permet le d´eveloppement de sites internet en toute simplicit´e. Ce CMS a ´et´e d´evelopp´e par Studio Partikule, une webagency fran¸caise, en 2010.

La derni`ere version de Ionize CMS, Version 1.0.7, date du 6 Aoˆut 2014.

Ionize CMS fonctionne uniquement sur un serveur Apache et avec une base de donn´ees MySQL 5.1.

(30)

Ionize CMS a ´et´e d´evelopp´e avec 3 id´ees en tˆete : Flexibilit´e, Ergonomie, Ouverture. Ce CMS est bas´e sur le framework CodeIgniter, qui est l’un des fra- meworks PHP le plus rapide. Il s’inspire ´egalement du langage de template Ruby pour sa rapidit´e.

Ce CMS propose des fonctionnalit´es telles que l’internationalisation, la r´e´ecriture d’url, la gestion des ´el´ements (articles, pages, m´edias). Il est ´egalement possible de personnaliser ses propres types de donn´ees en y cr´eant des champs ´etendus . Ce concept est similaire `a celui de Drupal.

Comme pour un grand nombre de CMS, Ionize CMS offre la possibilit´e de d´evelopper ses propres modules.

2.2.5 Utilisation

Il faut privil´egier l’utilisation d’un CMS Open Source pour la cr´eation d’un site internet dans l’un ou l’autre des cas suivants :

– Au sein de l’entreprise, toute personne doit pouvoir cr´eer un site internet sans avoir les connaissances en langage web,

– Le site internet `a cr´eer est un site de contenu, de m´edia ou un blog, – Le site internet doit ˆetre mis `a jour r´eguli`erement.

2.2.6 Avantages

Les CMS proposent un grand nombre d’avantages ce qui explique la raison de leur popularit´e. Voici une liste non exhaustive des avantages d’un CMS :

Mise `a jour du site facilit´ee

En effet, un CMS permet la cr´eation de contenu en toute simplicit´e no- tamment par les personnes n’ayant aucune connaissance en d´eveloppement. Cela explique pourquoi un grand nombre de particuliers / associations disposent de leur propre site internet mˆeme s’ils n’ont aucune connaissance en langage web.

(31)

Maintenance du site d´ecentralis´ee

Grˆace `a sa partie administration, le possesseur du site peut mettre `a jour le contenu de son site internet peu importe l’endroit o`u il se trouve. Il lui suffit juste d’avoir une connexion internet.

R´eduction des coˆuts de d´eveloppement

Un CMS inclut g´en´eralement de base des fonctionnalit´es telles que la gestion des comptes utilisateurs, formulaires, galeries de photo, etc. Il est donc tr`es rapide de mettre en place un site internet ce qui r´eduit donc les coˆuts.

Communaut´es

Grˆace `a des communaut´es, les CMS sont toujours en d´eveloppement ainsi les mises `a jours logiciels sont fr´equentes (am´elioration, correction des failles de s´ecurit´e, . . . ). Un grand nombre de modules, extensions et templates `a t´el´echarger sont disponibles pour personnaliser encore plus son site internet.

Open Source

En g´en´eral, le d´eveloppement des CMS est en Open Source. Ce qui signifie qu’on n’est pas propri´etaire mais que toutes modifications du code source sont possibles selon les besoins.

Multi-langues

Un grand nombre de CMS int`egre le multi-langues comme fonctionnalit´e. Il est donc tr`es facile de rendre son site internet visible et compr´ehensif par tous les internautes `a l’´echelle mondiale.

(32)

2.2.7 Inconv´enients

Voici une liste non exhaustive des inconv´enients d’un site internet sous CMS : Performance et Base de donn´ees

Le principal inconv´enient d’un CMS est la lenteur d’acc`es `a la base de donn´ees qui est visible surtout `a l’affichage des pages. En effet, toutes les pages sont dynamiques. Beaucoup d’op´erations sont donc n´ecessaires afin de les construire et pour afficher le contenu.

H´ebergement

Il existe des h´ebergeurs qui ne proposent pas de base de donn´ees MySQL ni de serveur supportant le PHP. Il n’est donc pas possible d’utiliser un CMS utilisant ces technologies sur ce type d’h´ebergeur.

Flexibilit´e

Les CMS nous permettent de faire beaucoup de choses mais ils ont des limites concernant leur flexibilit´e. En effet, les possibilit´es de personnalisation offertes par cet outil sont assez restreintes.

R´ef´erencement

Les CMS ne sont pas au point pour le SEO bien qu’il existe certains CMS ayant fait d’´enormes progr`es.

Migration

La migration d’un site sous CMS est bien plus compliqu´ee qu’un simple site classique de par la lourdeur et la complexit´e de sa base de donn´ees ainsi que de tous les fichiers n´ecessaires au bon fonctionnement du site.

(33)

2.3 Framework PHP et CMS Open Source en entreprise

2.3.1 Framework PHP en entreprise

Comment choisir le bon Framework en entreprise ?

Pour une entreprise, choisir un framework de d´eveloppement Web, ´ecrit en PHP dans notre cas, n’est pas une tˆache facile, dans la mesure o`u ce choix implique des probl´ematiques assez vari´ees. Cela peut aller de la conception interne du framework

`

a la facilit´e de prise en main ou des ´evolutions futures.

Avant d’adopter un framework en entreprise, plusieurs constantes sont donc `a prendre un compte :

– Le mode de fonctionnement des ´equipes de d´eveloppement, – Les besoins fonctionnels actuels et futurs,

– Les contraintes de la plateforme d’h´ebergement, – Le mode de fonctionnement de l’infrastructure, – Etc.

En plus de ces constantes, l’entreprise doit bien se renseigner sur les diff´erents frameworks disponibles sur le march´e. En effet, chaque framework a ses particula- rit´es et n’offre pas forc´ement les mˆemes fonctionnalit´es que les autres comme on a pu le voir pr´ec´edemment.

Pour cela, il existe la m´ethode QSOS (Qualification an Selection of Open Source Software). Cette m´ethode permet d’´evaluer les logiciels libres. Le framework de- vant `a terme constituer la base de la majorit´e des d´eveloppements r´ealis´es pour l’entreprise, il est important que sa p´erennit´e soit assur´ee : son d´eveloppement doit ˆetre suffisamment dynamique, afin de limiter les risques d’abandon ou de fermeture du code.

La m´ethode QSOS propose quelques crit`eres organis´es selon quatre axes : – P´erennit´e intrins`eque : maturit´e, adoption, etc.

– Solution industrialis´ee : documentation, packaging, etc.

– Adaptabilit´e technique : modularit´e, extensibilit´e, etc.

(34)

– Strat´egie : direction des d´eveloppements, licence, etc.

Cependant, cette m´ethode est tr`es peu utilis´ee car elle est assez longue `a mettre en place. En effet, si une entreprise souhaite l’utiliser, une veille technologique est n´ecessaire en amont sur les diff´erents frameworks afin de les comparer, ce qui implique beaucoup de temps ce que n’ont pas forc´ement les entreprises.

Quelques chiffres en 2014

Afin de mesurer la popularit´e de quelques frameworks, je me suis aid´e de Google Tendances des recherches. Cet outil donne des statistiques sur les recherches faites par les internautes du monde entier sur l’ensemble des sites de Google.

En premier lieu, j’ai fait une recherche sur cinq frameworks pour les comparer entre eux :

– CodeIgniter, – CakePHP, – Yii Framework, – Symfony,

– Zend Framework.

(35)

Figure 1 – Google Tendances des recherches - 2014 Grˆace `a ces courbes, on peut conclure certaines choses :

– Aujourd’hui, le framework le plus recherch´e sur Google est CodeIgniter.

– En 2`eme position, on retrouve Yii. On peut voir qu’en quatre ans, c’est l’un des seuls frameworks avec CodeIgniter dont la popularit´e a augment´e.

– Symfony et CakePHP se stabilisent `a la 3`eme place depuis deux ans.

– Enfin, on peut remarquer que Zend Framework est en d´eclin depuis 2009.

(36)

Mais ce n’est pas tout. Vu que l’on ne peut faire une comparaison qu’avec cinq mots cl´es en recherche, j’en ai fait une seconde en rempla¸cant Zend Framework avec Laravel et Symfony par FuelPHP.

Figure 2 – Google Tendances des recherches - 2014

On peut voir que la popularit´e de Laravel ne cesse d’augmenter depuis 2012, quelques mois seulement apr`es sa sortie. Quant `a FuelPHP, il reste tr`es loin des autres frameworks en termes de recherche.

D’apr`es cet outil, Google Tendances, on peut conclure que Laravel est le frame- work le plus recherch´e sur Google par des entreprises et individus confondus.

Bien sˆur, on ne peut pas se fier totalement `a cet outil pour connaˆıtre la popularit´e de ces diff´erents frameworks puisque Google n’est pas le seul moteur de recherche mais aussi car les personnes exp´eriment´ees sur un framework ne vont pas forc´ement faire des recherches sur celui-ci. Cependant, cela nous permet d’avoir un ordre d’id´ee.

(37)

Autres chiffres, un web d´eveloppeur nomm´e Povilas Korop a men´e une ´etude en 2013 afin de connaitre la popularit´e de quelques frameworks PHP.

Pour cela, il est all´e sur le site Monster et Indeed, qui sont deux sites populaires pour la recherche d’emploi, et a recherch´e le nombre de postes `a plein temps propos´es en y indiquant le nom du framework.

Voici le r´esultat de sa recherche :

– Zend Framework : 1555 (Monster : 78, Indeed : 1477) – Symfony : 983 (Monster : 75, Indeed : 908)

– CodeIgniter : 621 (Monster : 57, Indeed : 544) – CakePHP : 267 (Monster : 11, Indeed : 256) – Yii : 180 (Monster : 18, Indeed : 162)

– Laravel : 140 (Monster : 19, Indeed : 121)

On peut en conclure qu’en entreprise on utilise principalement les deux frame- works Zend Framework et Symfony qui sont les frameworks PHP les plus anciens, malgr´e leur baisse de popularit´e d’apr`es Google Tendances des recherches.

2.3.2 CMS Open source en entreprise

Comment choisir le bon CMS en entreprise ?

Pour s´electionner le bon CMS, il est important de d´eterminer les fonctionnalit´es et l’importance de celles-ci par le webmaster.

Comme on a pu le voir auparavant, il y a des CMS plus ou moins adapt´es aux besoins de son utilisateur. Chaque CMS a ses qualit´es et imperfections.

Comme c’est le cas pour choisir un framework, l’entreprise doit prendre en compte les mˆemes constantes (mode de fonctionnement de l’infrastructure, contraintes de l’h´ebergeur, . . . ) et peut avoir recours `a la m´ethode QSOS afin de d´eterminer le CMS qui r´epond le plus `a ses besoins.

(38)

Quelques chiffres en 2014

Afin de mesurer la popularit´e de quelques CMS Open Source, je me suis aid´e de Google Tendances des recherches, tout comme je l’ai fait pour les frameworks.

En premier lieu, j’ai fait une recherche sur trois CMS pour les comparer entre eux :

– WordPress, – Joomla, – Drupal.

Figure 3 – Google Tendances des recherches - 2014

(39)

Grˆace `a ces courbes, on peut conclure certaines choses :

– Aujourd’hui, le CMS le plus recherch´e sur Google est WordPress.

– En 2`eme position, on retrouve Joomla qui est en d´eclin depuis 2009.

– Enfin, on retrouve Drupal en 3`eme position qui est ´egalement en d´eclin depuis 2009 mais qui semble remonter l´eg`erement depuis mi 2014.

J’ai effectu´e une deuxi`eme comparaison avec quatre nouveaux CMS tout en gardant Drupal comme r´ef´erentiel.

Figure 4 – Google Tendances des recherches - 2014

Ce graphique est tr`es int´eressant car il nous apprend beaucoup de choses : – Bien que Drupal semble peu recherch´e sur Google d’apr`es le dernier gra-

phique, on peut voir ici qu’il devance les autres CMS du march´e : eZ Publish, SPIP, Typo3 et Fork CMS.

– Depuis 2007, Typo3 a une baisse de recherche sur Google, tout comme SPIP.

– Quant `a Fork CMS et eZ Publish, les recherches sur Google semblent inexis- tantes.

(40)

D’apr`es cet outil, Google Tendances, on peut conclure que WordPress est le CMS Open Source le plus recherch´e sur Google, suivi de Joomla puis Drupal.

(41)

3 Etude

3.1 M´ ethodologie

Pour que ma r´eponse soit la plus pr´ecise et la plus fiable possible, je me suis bas´e sur trois types de r´ef´erentiel :

– Des comparatifs existants sur internet,

– Un sondage r´ealis´e sp´ecialement pour cette ´etude,

– Des tests faits sur diff´erents frameworks PHP et CMS Open source.

L’analyse des donn´ees provenant de ces trois types de r´ef´erentiel vous est pr´esent´ee dans la suite du document.

Enfin, une derni`ere partie porte sur un outil d’aide `a la d´ecision qui a ´et´e d´evelopp´e suite `a l’analyse des donn´ees pour aider les entreprises travaillant dans le domaine du web `a choisir l’outil le plus appropri´e `a leur besoin : Framework PHP ou CMS Open Source ? Lequel ?

Cet outil a pour objectif de remplacer la m´ethode QSOS qui est ´egalement comme on a pu le voir pr´ec´edemment dans le document un outil d’aide `a la d´ecision mais assez long `a mettre en place et `a utiliser en entreprise.

(42)

3.2 Comparatifs sur le web

3.2.1 Frameworks PHP

Il existe plusieurs comparatifs de framework PHP sur internet. Ci-dessous sont pr´esent´es deux tableaux de comparaison. Le premier tableau porte sur la prise en main alors que le deuxi`eme porte sur la partie projet. Les sites internet de r´ef´erence se trouvent dans la bibliographie tout `a la fin du document.

Pour comparer ces frameworks PHP, j’ai fait une moyenne des diff´erentes r´eponses que l’on peut retrouver sur internet. Il se peut donc que vous ne soyez pas tout `a fait d’accord avec quelques unes de ces r´eponses.

Comparaison ”Prise en main”

Les diff´erents crit`eres de comparaison pr´esents dans ce tableau sont : – Installation,

– Configuration, – Utilisation, – Communaut´e, – Documentation.

(43)

Symfony2 CakePHP FuelPHP CodeIgniter Laravel Installation Long `a instal-

ler

Rapide Rapide Rapide Rapide

Configuration Long `a confi- gurer

Rapide Rapide Rapide Rapide

Utilisation Difficile `a prendre en main

Simple d’utili- sation

Simple d’utili- sation

Simple d’utili- sation

Simple d’uti- lisation, mais peut devenir tr`es com- pliqu´ee

Communaut´e Grosse com- munaut´e

Grosse com- munaut´e

Petite commu- naut´e

Petite commu- naut´e mais qui s’agrandit de jour en jour

Petite commu- naut´e mais qui s’agrandit de jour en jour Documentation Bonne docu-

mentation

Bonne docu- mentation

Bonne docu- mentation

Bonne docu- mentation

Documentation compl`ete mais mal faite

(44)

Comparaison ”Projet”

Les diff´erents crit`eres de comparaison pr´esents dans ce tableau sont : – Taille du projet,

– Budget, – D´elais,

– Ressource sur le march´e fran¸cais : nombre de d´eveloppeurs.

Symfony2 CakePHP FuelPHP CodeIgniter Laravel

Taille du projet Gros Petit Gros Moyen Gros

Budget Gros Petit Gros Petit Gros

elais Non press´e Press´e Non press´e Press´e Non press´e

Ressource Beaucoup Beaucoup Peu Peu Moyen

(45)

3.2.2 CMS Open Source

Tout comme pour les frameworks PHP, ma m´ethode de comparaison a ´et´e la mˆeme. Deux tableaux de comparaison ont ´et´e faits : le premier tableau porte sur la prise en main alors que le deuxi`eme porte sur la partie projet. Les sites internet de r´ef´erence se trouvent dans la bibliographie tout `a la fin du document.

Comparaison ”Prise en main”

Les diff´erents crit`eres de comparaison pr´esents dans ce tableau sont : – Installation,

– Configuration, – Administration, – Module,

– Communaut´e, – Documentation.

(46)

Drupal WordPress eZ Publish Typo3 Dropplets SPIP Installation Bien suivre

la documen- tation

Rapide Bien suivre la documen- tation

Bien suivre la documen- tation

Rapide Rapide

Configuration Configuration avanc´ee mais complexe

Simple `a mettre en place

Configuration avanc´ee as- sez complexe

Configuration avanc´ee as- sez complexe

Simple `a mettre en place

Simple `a mettre en place

Administration Tr`es compl`ete.

Facile `a prendre

en main

pour une utilisation basique

Compl`ete, simple

Extrˆemement compl`ete.

Assez dif- ficile `a maˆıtriser totalement

Tr`es compl`ete, facile `a prendre

en main

pour une utilisation basique

Simple Facile `a prendre en main

Module Nombreux

modules de la part des eveloppeurs et de la communaut´e

Modules tr`es nombreux

Peu de mo- dules

Peu de mo- dules

Aucun mo- dule

Peu de mo- dules

Communaut´e Petite com- munaut´e mais assez active

Large et tr`es active

Communaut´e tr`es active, mais peu en France

Petite com- munaut´e mais assez eactive

Tr`es petite communaut´e

Petite com- munaut´e mais assez eactive Documentation Bien docu-

ment´e

Bien docu- ment´e

Bien do- cument´e en anglais mais peu en fran¸cais

Peu docu- ment´e

Peu docu- ment´e

Peu docu- ment´e

(47)

Comparaison ”Projet”

Les diff´erents crit`eres de comparaison pr´esents dans ce tableau sont : – Taille du projet,

– Type de sites internet, – Budget,

– D´elais,

– Ressource sur le march´e fran¸cais : nombre de d´eveloppeurs.

Drupal WordPress eZ Publish Typo3 Dropplets SPIP

Taille du projet Gros Petit Gros Gros Petit Petit

Type de sites in- ternet

Site e-

commerce, sur-mesure, vitrine

Blog et site vitrine

Site e-

commerce, sur-mesure, vitrine

Intranet et extranet

Blog Blog et site vitrine

Budget Gros Petit Gros Gros Petit Petit

elais Non press´e Press´e Non press´e Non press´e Press´e Press´e

Ressource Beaucoup Beaucoup Moyen Peu Peu Moyen

(48)

3.3 Sondage

Pour compl´eter cette ´etude et avoir de nouvelles donn´ees `a analyser, j’ai mis en place un sondage. Cette enquˆete ´etait `a destination des ´etudiants, auto-entrepreneurs et salari´es qui ont cr´e´e un ou plusieurs sites internet `a l’aide d’un CMS Open Source et/ou d’un framework PHP. Les objectifs de ce sondage ´etaient de recueillir les ten- dances actuelles des CMS Open Source et des frameworks PHP, de savoir quels

´etaient les crit`eres de choix de telle ou telle solution et pour finir connaˆıtre les avis des personnes sond´ees sur les diff´erentes solutions pr´esent´ees dans ce document pour m’aider `a les comparer entre eux.

3.3.1 Diffusion du sondage

L’enquˆete a commenc´e `a ˆetre diffus´ee `a partir du 25 Janvier 2015 au niveau national. Cette enquˆete a ´et´e diffus´ee aupr`es d’´etudiants de diff´erentes ´ecoles d’in- formatique et d’ing´enieur : EXIA, CESI, Supinfo, Polytech, Epitech, ESGI, EPSI ainsi que sur les r´eseaux sociaux : Facebook, Twitter, Linkedin et aupr`es de SSII et de soci´et´es sp´ecialis´ees dans la cr´eation de sites internet.

Les donn´ees de ce sondage ont ´et´e analys´ees le 16 Mai 2015. Les diff´erentes r´eponses post´ees apr`es cette date n’ont pas ´et´e prises en compte.

Plus de 605 personnes ont r´epondu `a ce formulaire.

3.3.2 Liens

Le sondage est toujours en ligne. Il est disponible `a l’adresse suivante : http:

//bit.ly/1MgFnHS.

Les r´esultats sont ´egalement consultables `a l’adresse suivante :http://bit.ly/

1BDOkUf.

(49)

3.3.3 Analyse des r´eponses du sondage Pr´esentation des personnes sond´ees

Quel est votre profession ?

Etudiant Auto-entrepreneur Salari´e Autre

61.8 % 8.9 % 34.9 % 7.1 %

Ce sont les ´etudiants qui ont le plus r´epondu `a ce formulaire, ce qui est tout

`

a fait normal ´etant donn´e que le sondage a ´et´e diffus´e massivement aupr`es d’´ecoles d’ing´enieur et d’informatique. Ensuite viennent les salari´es. Le fait d’avoir des

”professions” diff´erentes ayant r´epondu `a ce sondage est quelque chose d’int´eressant car il se peut qu’ils n’aient pas la mˆeme vision des choses concernant les CMS Open Source et les frameworks PHP.

Dans quel tranche d’ˆage vous situez-vous ?

Moins de 25 ans Entre 25 et 40 ans Plus de 40 ans

54.2 % 39 % 6.8 %

Etant donn´e que ce sont les ´etudiants qui ont le plus r´epondu `a cette enquˆete, il est tout `a fait normal que la tranche d’ˆage se situe principalement dans les moins de 25 ans.

Références

Documents relatifs

As such, they are particularly prone to the experimental and in vivo observation of social cognition processes: in all generality, they raise broad classes of research questions

Zoning, land use, species regulation (e.g. prohibition of land use change, land use planning, protected area, …). Permit

Apache  Tomcat..  http://fr.wikipedia.org/wiki/Interface_de_programmation

Then, it is possible to make a parallel between the classical model-based approach from the AGM framework (where the belief change operators are represented as a ranking

• Les fichiers avec « min » sont des fichiers « minifiés », c’est à dire compressés (sans commentaires, ni espaces, etc.) qui sont utilisés pour le site

* @WebParam @WebResult décrivent les type et serialisation des paramètres et

Facilitated in partnership by campus units The Morgridge Center for Public Ser- vice, the Global Health Institute, and International Academic Programs, WWB’s mission for the last two

The second global survey on eHealth conducted by the Global Observatory for eHealth (GOe) set out to answer that question by investigating the extent to which the