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



Documents pareils
les techniques d'extraction, les formulaires et intégration dans un site WEB

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

CMS Open Source : état de l'art et méthodologie de choix

Joomla! Création et administration d'un site web - Version numérique

Tour d horizon des CMS. Content Management System

Projet en nouvelles technologies de l information et de la communication

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Cursus 2013 Déployer un Content Management System

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Devenez un véritable développeur web en 3 mois!

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Sommaire. 1. Présentation de WordPress. 2. Hébergement et installation. 3. Prise en main, ajouter des contenus

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Découvrir le CMS. et l utiliser dans une approche pro!

Démarrer rapidement un site avec Drupal 7

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Un site web collaboratif avec Drupal. Judith Hannoun - Journées INSHS 16 Octobre 2012

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

STAGE2 STAGIAIRE / NIKOLAOS TSOLAKIS. 16/02/2015 : choix des outils nécessités pour l application : Didier Kolb, le maitre de stage

Partner Entreprise. Modules de cours pour la formation continue Offre IFAPME Verviers

Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Travaux pratiques. avec. WordPress. Karine Warbesson

BES WEBDEVELOPER ACTIVITÉ RÔLE

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

PHP 5.4 Développez un site web dynamique et interactif

Découvrir Drupal au travers d un cas client

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Nos webmasters, web designers et ingénieurs de développement vous accompagnent dans vos projets afin de vous apporter entière satisfaction.

Quel CMS choisir pour son site web?

Content Management System. bluecube. Blue Cube CMS V4.3 par Digitalcube

Rapport de stage Clément MOYSAN

Panorama des CMS open sources. Sylvain Ferrand, CMAP École Polytechnique Journées Mathrice, Poitiers, 19 mars 2008

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Spip 2. Premiers pas pour créer son site web. Anne-Laure Quatravaux Dominique Quatravaux. Avec la contribution de Sandrine Burriel

TYPO3, le CMS de référence

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Programme CREATION SITE INTERNET (CMS Wordpress)

LE CONCEPT DU CMS CHAPITRE 1

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Armand PY-PATINEC 2010

WordPress : principes et fonctionnement

Découvrir Drupal, le CMS Open Source de référence. Michel-Marie MAUDET Linagora /

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

PHP 5. avancé. 3 e édition. Eric Daspet. Cyril Pierre de Geyer. Préface de Damien Seguy

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Programmation Web. Madalina Croitoru IUT Montpellier

Bien architecturer une application REST

Introduction aux concepts d ez Publish

Créateur de sites Internet. Développeur de logiciels.

Utiliser un CMS: Wordpress

Les différents parcours en S4

Echosgraphik. Ce document sert uniquement à vous donner une vision sur ma manière de travailler et d appréhender un projet

Drupal un CMS orienté mé2er. Romain JARRAUD Mathieu GROS

RAPPORT DE STAGE. Terrasse Hugo 1/12

Savoir- Faire Offres mé1ers Offres technologiques

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Webmaster / Webdesigner / Wordpress

Dans cette Unité, nous allons examiner

Jeudi 20 Octobre. 17h30 19h30 Hôtel «Les Bartavelles» à EMBRUN. «Quel est le juste prix pour un site Internet rentable»

Petite définition : Présentation :

Madame, Monsieur, PJ. 1 - Programme de formation 2 - Fiche d'inscription 3 - Présentation de Olivier GOBET

ASTER et ses modules

En date du 11 décembre 2008

Web & Libre. Outils pour être présent sur le net librement

Pierre Racine Professionnel de recherche Centre d étude de la forêt Département des sciences du bois et de la forêt, Université Laval, Québec

Drupal (V7) : principes et petite expérience

Introduction MOSS 2007

Créer et animer une boutique en ligne avec Wordpress (environnement PC et MAC)

Formation Découverte du Web

COMMENT LIRE UN DEVIS DE CREATION DE SITE WEB?

Catalogue des formations : Utilisation d outils Open Source

PROGRAMMES FORMATIONS INTERNET

Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008

Bureautique Initiation Excel-Powerpoint

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

Point sur les solutions de développement d apps pour les périphériques mobiles

Devis pour la création de votre site Internet

+33 (0) Sarl ISB Altipolis2 av. Du Général Barbot Briancon - France

Content Management System V.3.0. BlackOffice CMS V3.0 by ultranoir 1

Refonte des sites internet du SIEDS

Blogging et sites de contenu. Comment créer un site de contenu et l'animer

Drupal vs La concurrence

Devis pour la création de votre site Internet

novatis Agence Web innovatrice

Introduction à. Oracle Application Express

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

Mercredi 15 Janvier 2014

CATALOGUE FORMATION 2015

Diffuser un contenu sur Internet : notions de base... 13

Partie publique / Partie privée. Site statique site dynamique. Base de données.

CCI DE SAÔNE-ET-LOIRE - ATELIER ENP 18 MAI La création de sites internet

Soyez accessible. Manuel d utilisation du CMS

Transcription:

Projet de Recherche et Innovation 5ème année Manager des systèmes d information Du point de vue des entreprises, faut-il privilégier les Frameworks PHP aux CMS Open pour la création de sites internet? Auteur : Jonathan CAHU Tuteurs encadrants : Anne-Laure GAUDON Rémy FOURNIER 5 juin 2015

Table des matières 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éristiques 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énients.......................... 17 2.2 CMS Open Source........................... 18 2.2.1 Qu est-ce qu un CMS Open Source?............. 18 2.2.2 Caractéristiques 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énients.......................... 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éthodologie.............................. 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éponses du sondage............... 48 3.4 Tests................................... 63 3.4.1 Scénarios............................ 63 1

3.4.2 Configuration de la machine de test.............. 64 3.4.3 Résultats des tests....................... 65 3.5 Résultats................................. 76 3.6 Outil d aide à la décision........................ 79 3.6.1 Création de l outil....................... 79 3.6.2 Fonctionnement des outils................... 79 3.6.3 Présentation de l outil et exemples de cas........... 80 3.6.4 Lien............................... 80 3.6.5 Amélioration.......................... 81 3.6.6 Mise en garde.......................... 81 4 Conclusion 82 5 Glossaire 83 2

Résumé Ce document a été rédigé dans le cadre de ma 4ème année et 5ème année à l EXIA Saint Nazaire. Ce PRI Projet de Recherche et Innovation a pour but de répondre aux questions suivantes : Faut-il privilégier les Frameworks PHP aux CMS Open Source en entreprise pour la création de sites internet? Si le Framework PHP doit être privilégié, lequel doit être utilisé? Si le CMS doit être privilégié, lequel doit être utilisé? Dans la partie état de l art, j aborde en premier lieu les concepts de Framework PHP et de CMS Open Source avec quelques exemples pour finir avec l utilisation de ces outils en entreprise. Enfin, dans la partie étude, je présente des expérimentations et analyses de statistiques permettant de donner une réponse au problème donné. J y présente également un outil d aide à la décision qui a été réalisé pour compléter cette étude. 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. 3

Remerciements Je remercie l EXIA Saint-Nazaire, pour m avoir permis d étudier le domaine des frameworks PHP et des CMS Open Source en entreprise, plus particulièrement Anne-Laure GAUDON et Rémy FOURNIER, tuteurs encadrants, de m avoir conseillé et suivi tout au long de ma période de recherche / étude et de rédaction de ce PRI. Je remercie également 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épondre à mes questionnaires. Grâce aux réponses de ces 605 personnes sondées, j ai pu analyser cette multitude de réponses ce qui m a fait obtenir une analyse des plus fiable. 4

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âce à cette technologie de façon directe ou indirecte. Toute entreprise, association, PME ou particulier peut disposer d un site internet afin de présenter une activité, un projet ou même une passion. Pour cela, ils peuvent soit créer leur site eux-mêmes soit déléguer cette tâche à une entreprise spécialisée dans la création de sites internet, appelée webagency. Les webagency ont à leur disposition plusieurs technologies leur permettant de développer des sites internet, entre autres les frameworks PHP et les CMS Open source (Content Management System) écrits en PHP. Bien que ces deux outils permettent la création d un site internet, leur utilisation et démarche sont complètement différentes. Dans certains cas, il existe même des entreprises qui ne savent pas choisir quelle technologie adopter suivant les besoins du client. Certaines entreprises s arrêtent également trop rapidement à un choix : celui que leur développeur web ou département IT propose, une solution tout à fait fonctionnelle, mais non-optimale pour d autres disciplines de l organisation. D où ma question de recherche : Du point de vue des entreprises faut-il privilégier les Frameworks PHP aux CMS Open source en entreprise pour la création de sites internet? Si le Framework PHP doit être privilégié, lequel doit être utilisé? Si le CMS doit être privilégié, lequel doit être utilisé? Pour répondre à cette problématique, dans ce document de recherche, deux parties ont été réalisées. Tout d abord il y a l état de l art, où j y présente ce qu est un framework et CMS Open source, comprenant les avantages et inconvénients de chacun. Quelques exemples de CMS et de frameworks tels que Joomla ou Zend Framework y sont présentés. La seconde partie de cet état de l art aborde l utilisation de ces deux outils en entreprise. Des diagrammes y seront présentés et commentés. 5

Enfin, il y a la partie étude où je présente les résultats de mes tests ainsi que des statistiques et analyses permettant de répondre à ma question de recherche. J y présente également un outil d aide à la décision que j ai mis en place pour aider les entreprises, travaillant dans le domaine du web, à sélectionner le CMS Open Source ou le framework PHP le plus adapté à 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çais, et work qui signifie travail. Littéralement un framework est donc un cadre de travail. Un framework PHP est un ensemble de librairies et d outils permettant d améliorer la conception d applications et de sites web en y apportant des fonctionnalités supplémentaires tout en ajoutant de la rigueur dans le développement. L utilisation d un framework permet également d améliorer la productivité des développeurs qui l utilisent dans la mesure où il intègre un certain nombre de routines implémentées nativement. Il existe des frameworks écrits pour différents langages, par exemple pour le PHP, Python, JavaScript, JAVA, C, etc. Par la suite, nous nous intéresserons seulement aux frameworks PHP. Un framework est conçu par un ou plusieurs développeurs à destination d autres développeurs. Contrairement aux CMS, un framework n est pas destiné aux utilisateurs finaux. En effet, il est nécessaire d avoir des connaissances en programmation web pour utiliser cet outil. 6

2.1.2 Caractéristiques d un Framework PHP Architecture MVC L architecture MVC (Model View Controller) est utilisée par la majorité des frameworks PHP d aujourd hui. Cette architecture intègre les trois niveaux de conceptions suivants : Le modèle : il s agit du comportement de l application. On y intègre l ensemble des interactions avec la base de données et le traitement des données. Ce niveau contient et manipule toutes les données que ce soit pour faire de la sélection, 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èle. En effet, la vue habillera les données transmises par la couche modèle. Au sein de la couche vue, on reçoit toutes les actions effectuées par l utilisateur. Celles-ci seront déléguées au contrôleur. Le contrôleur : Le contrôleur reçoit toutes les actions effectuées par l utilisateur, et effectue la détection d erreurs (par exemple la vérification du remplissage correct des champs d un formulaire). Tout comme la vue, le contrôleur n effectue aucune modification sur les données, il est uniquement chargé d appeler le modèle et de renvoyer la vue concernée. Gestion du cache La plupart des frameworks PHP prend en compte la gestion du cache. Ce système 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 été conçus de sorte qu ils doivent pouvoir gérer plusieurs types de base de données : bien entendu MySQL, mais éventuellement PostgreSQL ou Oracle en fonction des besoins. 7

ORM et Active Record Le framework peut également proposer une fonctionnalité d ORM (Object Relationnal Mapping) et d Active Record. Ces fonctionnalités permettent de masquer la complexité du langage SQL et d effectuer la plupart des opérations par l intermédiaire d objets très simples, ce qui allège significativement le travail du développeur. Les attributs d une table ou d une vue sont encapsulés dans une classe. Convention de codage Les frameworks obligent les développeurs à utiliser les mêmes conventions de codage afin d avoir un code uniforme. Cela rend le code plus maintenable et permet une évolutivité simplifiée. Génération de code La mise en place d un nouveau projet pour la création d un site internet demande généralement la mise en place d une structure globale et la création de nombreux fichiers qui permettront aux développeurs de travailler efficacement. La génération de code est utilisée pour gagner du temps grâce à l initialisation automatique de la structure d une application et à la création et déclaration de nouveaux éléments ou plugins via une simple ligne de commande. Gestion des droits Un framework peut offrir des méthodes pour définir les rôles des utilisateurs ainsi que les droits nécessaires pour exécuter chaque opération. Il se charge ensuite de vérifier les autorisations à chaque appel d action et de bloquer l exécution si nécessaire. 8

Url Rewriting et redirection Les frameworks permettent la gestion des urls facilement. En effet, ils implémentent des règles de redirections ainsi qu un module de réécriture d urls (Url Rewriting). Le Url Rewriting permet de transformer des urls pour que celles-ci soient plus compréhensives par les robots d indexation. De belles urls permettent d avoir un meilleur référencement. 2.1.3 Liste de Frameworks PHP Il existe un grand nombre de frameworks PHP, je vais donc m intéresser seulement à quelques frameworks qui ont fait leur preuve ainsi qu à des nouveaux. Les anciens Zend Framework Zend Framework est un framework open-source destiné au développement d applications web, de services web et de sites dynamiques en PHP créé en Mars 2006 par Zend Technologies. La dernière version de Zend Framework, Version 2.4.2, date du 11 Mai 2015. Ce framework a été construit entièrement en code orienté-objet ce qui permet une évolution et une maintenance simplifiée. Contrairement aux composants (briques logicielles) des autres frameworks, les composants du Zend Framework ont été conçus avec de faibles dépendances. On dit qu ils sont faiblement couplés. Cette architecture, appelée use at will, permet aux développeurs d utiliser les composants individuellement. Globalement, Zend Framework est composé d un cœur et de nombreuses librairies. Il n est pas nécessaire de connaître les librairies pour l utiliser. Il suffit juste d apprendre à utiliser le cœur. 9

Le Zend Framework apporte une organisation de répertoires 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 à créer, grâce à la diversité et à la multitude des composants du Zend Framework, il est très aisé de trouver le composant qui peut être utilisé pour réduire le temps de développement. De nombreux entreprises ont contribué au développement de composants ou à des fonctionnalités significatives du framework telles que Google, Microsoft et Strikelron. CakePHP CakePHP est un framework open-source destiné au développement d applications web, de services web et de sites dynamiques en PHP créé en 2005 par Cake Software Foundation. La dernière 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 framework web libre écrit en Ruby. CakePHP suit le motif de conception MVC et facilite l utilisation de la base de données avec ORM et Active Record. Il intègre également CRUD. Ce framework est fourni avec de nombreuses fonctions et de classes intégrées permettant de couvrir certaines des fonctionnalités les plus communes requises dans les applications web. Un avantage du CakePHP est qu il n y a pas de configurations à faire au préalable pour utiliser ce framework contrairement à d autres. Cependant, une configuration de la base de données est nécessaire. 10

CakePHP offre la possibilité d utiliser des scripts en ligne de commande permettant la génération automatique de code à partir du modèle physique de données. Enfin, comme pour la plupart des frameworks, CakePHP suit les bonnes pratiques concernant la sécurité, l authentification et la gestion des sessions. CodeIgniter CodeIgniter est un framework léger open-source destiné au développement d applications web, de services web et de sites dynamiques en PHP publié la 1ère fois le 18 Février 2006. Ce framework est issu de la société EllisLab. Depuis Septembre 2013, EllisLab recherche un nouveau repreneur pour CodeIgniter. La dernière 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 également le motif de conception MVC. Les versions de CodeIgniter inférieures à la 2.0.0 sont compatibles avec PHP4 et PHP5, tandis que les versions supérieures à la 2.0.0 ne sont compatibles qu avec PHP 5.1.6 ou plus. La prochaine version de CodeIgniter, en cours de développement, nécessitera PHP 5.2.4. La particularité de ce framework est qu il a été conçu dans le but de ne fournir que le strict minimum. Tout le reste est entièrement optionnel. Ce système permet de réduire le temps de génération des pages de l application ou du site internet. CodeIgniter se retrouve souvent en très bonne position dans les benchmarks. Ce framework offre de nombreuses fonctionnalités telles que par exemple l Active Record, un système de cache, le cryptage de données, la gestion des sessions, la gestion des erreurs par log, le profiler. 11

Symfony Symfony est un framework MVC libre écrit en PHP 5 destiné au développement d applications web, de services web et de sites dynamiques lancé en Octobre 2005. Ce framework a été développé par Sensio Labs, une agence web française. Il est également inspiré de Rails on Ruby. Symfony est considéré comme l un des meilleurs framework pour les développements spécifiques en PHP. A l origine, ce framework se nommait Sensio Framework et n avait été développé que pour les besoins internes de l entreprise. Par la suite, cette entreprise a souhaité partager le code source avec la communauté des développeurs PHP. Le projet est alors devenu Symfony. La dernière version de Symfony, Version 2.7.0, date du 30 Mai 2015. Symfony 1.x utilise une version de PHP supérieure ou égale à la 5.2.4 alors que Symfony 2.x nécessite une version de PHP supérieure ou égale à la 5.3.3. Symfony est un framework construit autour du protocole HTTP et de l architecture REST. Symfony est conçu pour supporter les applications comprenant de multiples serveurs web. Il propose par exemple plusieurs méthodes de gestion des sessions utilisateurs (informations stockées en mémoire, dans une base de données, etc.) qui permettent de mettre en place de telles architectures. Comme CakePHP, Symfony n implémente pas de système d authentification. Cependant, il dispose d un système de gestion des droits. Symfony dispose également d un système de plugins. A ce jour, plus d une centaine d extensions sont disponibles : génération de fichiers PDF, de flux RSS,... 12

Enfin, comme autres fonctionnalités offertes par Symfony, on peut trouver par exemple la gestion du cache, l ORM, l adaptation à l Ajax, la génération de code ainsi que l internationalisation (création de sites multilingues). De nombreux sites sont développés 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é au développement d applications web, de services web et de sites dynamiques en PHP. Ce framework a été créé par Taylor Otwell en 2011. La dernière version de Laravel, Version 5.1.0, est sortie fin Mai 2015. Cette dernière version est écrite en PHP 5.4. Laravel combine le meilleur des autres frameworks web, incluant les frameworks d autres langages comme Ruby On Rails, ASP.NET et Sinatra. Cette version de Laravel est basée sur le gestionnaire de paquets Composer, ce qui facilite l installation, la désinstallation, mise à jour du framework et l ajout de packages. Laravel fournit des fonctionnalités telles que l ORM et l Active Record, la génération de code grâce à Composer, un système d authentification, une gestion des exceptions ou un outil de migration de base de données. Ce framework fournit une intégration de tests unitaires ainsi qu un environnement de tests ce qui permet aux développeurs de travailler en toute sérénité. Une des particularités 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. 13

GitHub. En Août 2014, Laravel fut le projet PHP le plus populaire et le plus vu sur FuelPHP FuelPHP est un framework web open-source destiné au développement d applications web, de services web et de sites dynamiques en PHP. Il implémente le design pattern MVC. La première version de FuelPHP est sortie le 31 Juillet 2011. Des contribueurs du framework CodeIgniter ont travaillé sur ce framework. La dernière version de FuelPHP, Version 1.7.3, date du 20 Mai 2015. Tout comme Laravel, FuelPHP a été conçu en reprenant les meilleures idées présentes dans les autres frameworks. Concernant son architecture, FuelPHP est écrit en PHP 5.3. FuelPHP a été conçu de la sorte qu il soit extensible, flexible et modulaire. Ce framework offre de nombreuses fonctionnalités 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ées (inspiré du framework Ruby on Rails) ou un profiler. Pareillement à Symfony, FuelPHP implémente le design pattern REST. Yii Framework Yii Framework, acronyme de Yes, It is! est un framework open-source destiné au développement d applications web, de services web et de sites dynamiques en PHP. 14

Le créateur et développeur principal de Yii Framework est Qiang Xu, qui a également développé et maintenu le framework PHP Prado. On peut dire que Yii Framework en est son successeur. La première version de Yii Framework date du 3 Décembre 2008. La version actuelle, Version 2.0.4, est sortie le 10 Mai 2015. Ce framework nécessite au minimum la version 5.1 de PHP. Yii Framework fonctionne également avec des extensions et modules. Aujourd hui il en existe 1485, ce qui prouve l engouement de la communauté autour de ce framework. Concernant le côté technique, Yii Framework est développé en respectant le modèle MVC et reprend le meilleur des autres frameworks tels que Symfony, Ruby on Rails ou Prado. Au niveau des fonctionnalités, Yii Framework offre la gestion du cache, le support de Ajax, un support de tests unitaires, l Active Record, la génération de code ou bien encore la gestion de thèmes pour l habillage des sites. Particularité de ce framework, l administration peut se faire via une interface graphique si celle-ci a été activée au préalable. 2.1.4 Utilisation Il faut privilégier l utilisation d un framework PHP pour la création d un site internet dans l un ou l autre des cas suivants : Le site internet doit implémenter une majorité de fonctionnalités et de règles d affaires non habituelles, On souhaite une relation forte, voir fusionnelle avec l équipe de développeurs à long terme (par exemple la création d un site sur mesure par une équipe interne), L entreprise veut un contrôle quasi-total sur l évolution des composants de son site, 15

L entreprise veut pouvoir réutiliser des modules de ses anciens projets, L entreprise souhaite instaurer des bonnes pratiques de codage pour permettre une maintenance et une évolutivité du site internet en toute simplicité. 2.1.5 Avantages Voici une liste non exhaustive des avantages d un framework : Productivité Un framework offre la possibilité au développeur final d utiliser des composants pour lui faciliter le développement, et lui permet ainsi de se concentrer sur le plus important, donc de gagner en temps et en productivité. Code Utiliser un framework, c est donc avoir la garantie de disposer d une architecture cohérente, où la rigueur de développement est primordiale. Ce qui est une bonne chose puisqu un code bien organisé est un code facilement maintenable et évolutif. Travail Un framework utilise presque toujours l architecture MVC, ce qui permet donc d organiser son code de la façon à séparer le code PHP du code HTML. Ainsi, le designer pourra donc travailler en simultané avec le développeur. Communauté Chaque framework est soutenu par une communauté, plus au moins grande selon la renommée de celui-ci, ce qui permet aux développeurs de disposer de tutoriels, cours, des mises à jours du framework et d aide sur les forums. 16

2.1.6 Inconvénients Voici une liste non exhaustive des inconvénients d un framework : Complexité Utiliser un framework introduit de nombreuses exigences et de la complexité, dans la mesure où certaines habitudes de développement devront être mises de côté lors de son adoption. La courbe d apprentissage est donc plus élevée. Performance Pour la plupart des frameworks, on peut remarquer une latence dans le traitement. En effet, il y a tellement de composants dans certains d entre eux que le script devient plus lent. Cependant, ces problèmes sont gérables, entre autre grâce au cache. Diversité Il existe de nombreux frameworks, il est donc parfois difficile de choisir le plus approprié selon les besoins utilisateurs. 17

2.2 CMS Open Source 2.2.1 Qu est-ce qu un CMS Open Source? Un CMS (Content Management System ou Système de Gestion de Contenu) Open Source est un type d application web libre permettant de séparer le contenu de la mise en forme pour des sites internet et fournissant des moyens simplifiés pour éditer ce contenu. En effet, grâce aux éditeurs WYSIWYG What you see is what you get fournis par la majorité des CMS, l utilisateur pourra créer des pages sans connaitre le HTML. Grâce aux CMS, il est donc possible de maintenir et de faire vivre un site internet sans la moindre connaissance technique dans les métiers du web. Il existe des CMS écrits pour différents langages, par exemple pour le PHP, Java,.NET, etc. Par la suite, nous nous intéresserons seulement aux CMS écrits en PHP. 2.2.2 Caractéristiques d un CMS Technologies Un système de gestion de contenu fonctionne généralement avec des technologies serveurs : Un serveur de base de données pour stocker toutes les informations, toutes les données du site. C est principalement MySQL qui est utilisé, mais il existe des CMS travaillant avec d autres serveurs de base de données tels que SQL Server, PostgreSQL ou Oracle. Cependant, il existe aussi des CMS qui ont décidé de se passer de bases de données 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 écriture dans un fichier est une tâche qui requiert beaucoup plus de temps qu un simple échange avec une base de données. 18

Un serveur d applications permettant la liaison à la base de données et l affichage des pages HTML. C est principalement PHP qui est utilisé. La plupart du temps, les CMS proposent une partie administration disponible directement à partir d un lien : http ://www.mon-site.fr/administrator/ pour le cas de Joomla. L administrateur n aura donc qu à se connecter pour configurer et gérer le contenu de son site internet. D un autre côté, il existe aussi des CMS ne proposant pas de partie administration du fait qu ils ont décidé de se passer de bases de données. Les configurations et la gestion de contenu se font donc directement à partir de fichiers textes qui sont éditables depuis un simple éditeur tel que bloc note ou NotePad++. Il suffit ensuite de mettre en ligne ce contenu grâce à un FTP ou un système de versionalisation comme Git. Le grand avantage de ces CMS est qu ils sont bien plus rapides à mettre en place et très sécurisés car on ne peut accéder à l administration. Modules, Extensions et Templates Modules et Extensions Les modules ainsi que les extensions sont de grandes portions de code écrites en PHP et comprennent généralement une interface utilisateur. Ils peuvent être directement installés à partir de l administration du CMS. Les modules et extensions permettent d ajouter de nouvelles fonctionnalités 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ème de livre d or. 19

Ces éléments sont développés principalement par la communauté du CMS en question. Ils sont généralement en libre téléchargement dans des forums, sites spécialités mais dans certains cas il est nécessaire d acheter une licence pour les utiliser. Templates En plus des modules et extensions, il existe les templates (appelés aussi gabarits ou modèles). En effet, une des grandes particularités du CMS est la dissociation du contenu et de la présentation. De manière schématique, un template un composé : D une feuille de style au format CSS ( Cascading Style Sheets ou Feuille de style en cascade ). Ce fichier permet de décrire la présentation de l ensemble de documents HTML : couleur de la police, type de police,... De déclarations au format XML ( extensible Markup Language ou Langage de balisage extensible ) fonctionnant à la manière d un schéma et qui va fixer les différents éléments entrant dans la composition d une page Web. Il existe une multitude de templates à télécharger gratuitement pour chaque CMS. Il est donc très aisé à un utilisateur de changer l apparence de son site internet. Si cette personne s y connait en langages de programmation Web, elle pourra même personnaliser ce template en modifiant le contenu des fichiers fournis. 2.2.3 Les types de CMS Il existe différents types de CMS dont chacun a sa spécialité. Il existe des CMS permettant de faire : des sites web dynamiques, du travail collaboratif, des forums, des blogs, des portails communautaires des galeries photos, 20

des sites e-commerces. Il est donc très important de se renseigner sur le type de CMS à utiliser avant de commencer son site internet. 2.2.4 Liste de CMS Open Source Les anciens WordPress WordPress est un système de gestion de contenu (CMS) open-source écrit en PHP. Il est distribué par Automatic. La première version de WordPress a vu le jour le 27 Mai 2003 et sa dernière version, Version 4.2.2, date du 7 Mai 2015. Ce CMS repose uniquement sur une base de données MySQL. WordPress est utilisé principalement comme moteur de blog, mais ses fonctionnalités lui donnent la possibilité de gérer n importe quel site internet. Ce CMS inclut toutes sortes de fonctionnalités telles que la gestion des liens externes, des rétroliens, un système 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 économiser de la bande passante. Du fait de ces nombreuses fonctionnalités, WordPress est un CMS destiné à des utilisateurs avancés, ayant un minimum de connaissances des systèmes de gestion de contenus. Comme la plupart des CMS, WordPress respecte les standards du Web xhtml et CSS. 21

Un inconvénient de WordPress est que celui est codé en procédural ce qui limite l évolution. Si un développeur doit ajouter des fonctionnalités spécifiques à partir du code source, le développement peut être très long. Etant l un des premiers CMS sur le marché, WordPress a pu agrandir sa communauté de façon exponentielle. Aujourd hui, des centaines de templates, plugins et extensions peuvent être rajoutés à ce CMS, tous créés par la communauté WordPress. Joomla Joomla est un système de gestion de contenu (CMS) open-source écrit en PHP. Il est distribué par OpenSourceMatters. La première version de Joomla a été annoncée le 16 Septembre 2005 et sa dernière version, Version 3.4.0, date du 21 Mars 2015.Joomla est basé sur le CMS Mambo. Contrairement à WordPress, Joomla est principalement utilisé pour la création de site internet de présentation d une activité, association ou d un produit. Joomla repose uniquement sur une base de données MySQL. L architecture de ce CMS a été conçu de la sorte à qu il soit le plus modulaire possible, ce qui permet des extensions et intégrations à faire facilement. Certaines de ces extensions sont appelés plugins. Il existe aussi les composants qui permettent d effectuer des tâches telles que la sauvegarde d un site web ou la réécriture d url. Enfin, on trouve les modules. Ils permettent d effectuer des tâches telles que l affichage d un calendrier à insérer dans le code de base de Joomla. Joomla inclut des fonctionnalités telles que la gestion du cache, génération de flux RSS, la gestion des utilisateurs, la création de sondages, la gestion d articles et de catégories, une version imprimable des pages. Tout comme WordPress, Joomla peut être personnalisé du point de vue de l affichage grâce aux templates, qui eux aussi existent par centaines sur le web. 22