Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Présentation eZ Publish - PHP Québec
1. AGENCE GLOBALE : STRATEGIE & MARKETING / DEVELOPPEMENT WEB et MOBILE
eZ Publish - Un CMF open-source qui a
fait ses preuves
Par Gauthier GARNIER
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 1
2. Courte présentation
Gauthier GARNIER
Directeur Général à Novactive (Agence de Montréal)
En charge de la production, RH et Finances
Twitter : @gauthiergarnier
Facebook : fb.com/gauthier.garnier
Me contacter :
Mail & Gtalk : garnier.gauthier@gmail.com
Skype : garnier.gauthier
Pratique d’eZ Publish dans un contexte professionnel depuis 2006.
En tant que développeur, expert technique et chargé de projet.
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 2
3. Qui sommes nous ?
NOS BUREAUX DE MONTREAL
BUREAU DE MONTREAL
NOVACTIVE, En quelques chiffres :
360 Saint Jacques #1805
L’ÉQUIPE (75 collaborateurs) CHIFFRES CLÉS H2Y 1P5 Montreal, QC
Direction Générale : 4 Création & Graphisme : 5 Date de création : 1996
Commercial & Administration : 9 Capital social : $ 180K - 18 mois d’existence à MTL
Ingénierie, Développement - Plusieurs clients au Québec
Consulting et Gestion de projets : 19 et Intégration : 38 Marge brute 2011 : $ 5M
- Une équipe d’expert
Effectifs 2012: 75
- Croissance importante
Répartis sur les 3 pôles de Paris, Montréal et Tunis
DES CLIENTS PRESTIGIEUX ACTIVITÉS PARTENARIATS & EXPERTISE
Conseil et expertise : Conseil, accompagnement
et réalisation en conception Web et Partenaire eZ Systems
Mobile, Design, Online Marketing
Partenaire Acquia
Développement Web & Mobile : Développement
Web : Expertise de pointe dans les technologies
Open Source, Développement mobile iPhone et Partenaire Varnish
Android
DES TECHNOLOGIES OPEN-SOURCE
Partenaire Emailvision
Hébergement : Infrastructures d’hébergement
complètes Certifié ISO 9001 v. 2008
en 2009, 2010 et 2011
Expertise en développement
mobile (iPhone & Android)
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 3
4. Qu’est-ce qu’un CMF (Content Management Framework), quelles différences avec un CMS
Histoire du projet eZ Publish (conçu et développé par de grands noms du PHP)
Il a fait ces preuves ? (références et chiffres clés)
Quand faut-il utiliser eZ Publish ? / Quand faut-il utiliser autre chose ?
Techniquement, comment ça marche ?
Comment faire votre premier site eZ
Système de templates
Y a t’il des extensions toutes faites ?
La version 5 est 100% branchée avec Symfony (qu’est-ce que ça apporte ?)
Pourquoi eZ est-il peu utilisé en Amérique du Nord ? Pourquoi ça va changer ?
Pourquoi eZ est parfaitement adapté pour le marché Québécois ?
Comment aller plus loin, tester le produit, poser des questions ?
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 4
5. Qu’est-ce qu’un CMF (Content Management
Framework), quelles différences avec un CMS ?
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 5
6. Qu’est-ce qu’un CMF, quelles différences avec un CMS ?
Content management system framework
Le but : Faire du sur-mesure
Différences de philosophie avec des outils comme WordPress, Joomla ou Drupal :
- Pas de templates « prêt-à-utiliser »
- Pas d’HTML généré par le noyau système
- Pas d’extensions « métier plug & play » : forum / blog / e-commerce
- Structure du contenu libre (aucun type de contenu imposé)
Le résultat :
Personnalisation complète
Maitrise des développements
Pas de mauvaises surprises
On se concentre sur notre valeur ajouté !
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 6
7. Histoire du projet eZ Publish (conçu et
développé par de grands noms du PHP)
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 7
8. Histoire du projet eZ Publish
Projet lancé en 1999 par Bård et Alexander Farstad (en Norvège) par la compagnie eZ
Systems
2003 : Version stable et mature avec eZ Publish v3.0
2005 : eZ Systems ouvre des bureaux en Europe
2007 : eZ Publish 4.0 supporte php5
2009 : Mise en place du portail communautaire : http://share.ez.no
2009 : eZ Publish 4.3 supporte php5.3
2012 : eZ Systems ouvre des bureaux en Asie et Amérique du Nord
Sept 2012 : Version 5.0 beta1 – basée sur Symfony 2
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 8
9. Histoire du projet eZ Publish
Un projet porté techniquement par des experts reconnus internationalement
Derick Rethans
Leader du projet Xdebug
Employé par eZ Systems pendant 6 ans
Sebastian Bergmann Et aussi plein
Leader du projet PHPunit d’autres
Employé par eZ Systems pendant 4 ans développeurs
talentueux !
Tobias Schlitt
Très actif sur PEAR
Employé par eZ Systems pendant 5 ans
Encore très actif sur eZ Components
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 9
10. Il a fait ses preuves ? (références et
chiffres clés)
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 10
11. Il a fait ses preuves ? (références et chiffres clés)
Utilisé par :
+ de 250 000 sites web
+ de 170 pays
Des sites média à très forte audience (+ 30 millions de pages vues par mois)
Des sites à contenu très riche (+ de 1 millions d’articles en base)
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 11
12. Références Media
ELLE The Christian Science Monitor
http://www.elle.com http://www.csmonitor.com
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 12
13. Références Media
The Banker Wall Street Journal Asia
http://www.thebanker.com http://jp.wsj.com
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 13
14. Références Marques
John Deere Suisse Heinz Wattie’s – Nouvelle Zélande
http://johndeeredistributor.ch http://www.heinzwatties.co.nz
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 14
15. Références Marques
BMW DC Shoes
http://www.bmw-motorsport.com http://www.dcshoes.com
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 15
16. Références Québécoises ?
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 16
17. Références Québécoises
Plaisirs Laitiers Savoir Laitier
http://www.plaisirslaitiers.ca http://www.savoirlaitier.ca
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 17
18. Références Québécoises
Tribu Inuit Novatech
http://www.avataq.qc.ca http://novatechgroup.com
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 18
19. Références Québécoises
VAN HOUTTE
http://www.vanhoutte.com
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 19
20. Quand faut-il utiliser eZ Publish ? / Quand
faut-il utiliser autre chose ?
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 20
21. Quand faut-il utiliser eZ Publish ? / Quand faut-il utiliser autre chose ?
eZ Publish est un excellent outil pour réaliser des sites de contenus.
Il va nativement gérer :
- Le versionning
- Multiples états sur un contenu (brouillon, publié, archivé…)
- Les traductions (interface et contenu)
- Les droits d’affichage, de publication, suppression (public / membres / groupes de
membres)
- L’indexation pour le moteur de recherche interne
- Les flux de travail (workflow) : Processus de validation interne par exemple
C’est parfait pour le projet ou l’on a de la gestion de contenu, mais cela ne sert à rien
pour un site purement métier (si vous développez un outil en ligne comme un
webmail, un service de retouche photo, e-commerce avancé, wiki, twitter-like…)
Si vous souhaitez développer ce type de projet, utilisez un outil plus spécialisé, ou un
framework plus bas niveau (type Symfony ou Silex).
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 21
22. Techniquement, comment ça marche ?
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 22
23. Comment faire votre premier site eZ
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 23
24. Comment faire votre premier site eZ
Télécharger l’archive :
https://github.com/ezsystems/ezpublish
Prérequis pour l’installation :
http://doc.ez.no/FAQ/Installation/Q-How-do-I-install-eZ-Publish
Besoin d’aide / une question :
http://share.ez.no/forums
Utilisez l’assistant d’installation :
http://doc.ez.no/eZ-Publish/Technical-manual/4.5/Installation/The-setup-wizard
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 24
25. Ce qu’il faut savoir pour bien commencer
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 25
26. Contenu structuré
Basée sur les notions de programmation orientée objet
classe de contenu : une classe définit une structure de données. Elle ne stocke aucune donnée
(Exemple : classe recette de cuisine)
attribut : définit une propriété d’une classe (Exemple : temps de réalisation attribut de la classe
recette de cuisine)
objet : un objet est une instance d’une classe (Exemple : Tarte au concombre instance de la classe
recette de cuisine)
Une classe est « un moule » pour la création d’objets eZ Publish
Chacun de ces attributs possède des caractéristiques :
Nom
Datatype
Valeur par défaut
Indexable
Requis
Traductible
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 26
27. Contenu structuré
Processus de création d’une classe de contenu
Démo
(Classes stockées en base de données)
Avantages
Simplicité de création
Administration par le back-office
Flexibilité et extensibilité des types de contenus
100% interrogeable par l’API
Difficultés
Difficile à gérer (différences entre environnements)
Modification du type (datatype) d’un champ impossible sans pertes d’informations
Différence entre le modèle de données et l’affichage
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 27
28. Structure de l’information
Les objets sont rattachés à des nœuds
Il existe toujours un nœud principal, les autres nœud sont souvent considérés comme
des liens symboliques
Notion de « multi-positionnement »
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 28
29. Définition d'un gabarit eZ Publish
Concept important :
« Séparer le contenu et la mise en page »
eZ Publish utilise des templates pour gérer la mise en page du site
Un template est un fichier qui décrit comment un type particulier de contenu doit être
affiché. Il s’agit d’un fichier HTML qui comporte du code spécifique à eZ Publish, ce code
permet à l’outil d’insérer son contenu dynamique
Organisation et hiérarchie des templates
Gabarit de page (pagelayout)
Gabarit de contenu Gabarit de page
HEADER
Navigation horizontale
Gabarit de contenu
Titre du contenu 1
illustration
Accroche
Navigation Titre du contenu 2 Blocs
verticale illustration contextuels
Accroche
Pagination
Footer
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 29
30. Définition d'un gabarit eZ Publish
Exemple de découpage d’un site
Gabarit de page
HEADER
Navigation horizontale
Gabarit de contenu
Titre du contenu 1
Illustration
c1
Accroche c1
Navigation Titre du contenu 2 Blocs
verticale Illustration contextuels
c2
Accroche c2
Pagination
Footer
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 30
31. Définition d'un gabarit eZ Publish
Système de vue
Chaque objet de la base de données peut être représenté par plusieurs vues (plusieurs
templates)
Exemple :
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 31
32. Système de templates
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 32
33. Système de templates
A l’installation, vous aurez le choix entre 3 packages de site d’exemple :
- Plain site
- Website interface
- eZ Flow
Un package de site contient :
- Les types d’objets que vous aurez en base de données (aussi appelés classes de
contenu)
- Les templates pour chaque classe de contenu.
- Les fichiers CSS / JS / images, permettant de mettre en place le design
- Les fichiers XML de traduction des templates
Pour bien commencer, je recommande de prendre le package « plain-site »
ne contient que le nécessaire !
Est suffisamment simple pour comprendre les templates facilement.
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 33
34. Système de templates
Le système de templates est basé sur les même principes que Smarty (syntaxe proche)
Généralités
Le langage s’insère directement dans le code HTML, il est reconnu et traduit par eZPublish
Langage orientée objet : $node.object.data_map.titre
Les lignes qui ne sont pas entre accolades ne sont pas interprétées par eZPublish
Commentaires : {* ceci est un commentaire *}
Code qui ne doit pas être interprété {literal} {* Javascript par exemple *} {/literal}
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 34
35. Système de templates
Variables
Elles sont précédées par $ (syntaxe similaire à PHP)
Déclaration et assignation d’une variable avec les mots clés def et undef :
{def $var_chiffre=4 $var_chaine='bonjour' $var_bool=false()}
ma variable chiffre vaut {$var_chiffre}
…
{set $var_bool=true()}
{undef $var_chiffre $var_chaine $var_bool}
Il existe deux types de variables : variables simples (par exemple numériques ou chaînes de
caractères), objets et tableaux accessibles par $objet.attribut ou $tableau.indice
Astuce :
La fonction attribute(show, n) permet d’afficher les attributs d’un objet ou tableau. Le paramètre n
indique la profondeur d’affichage des propriétés.
{$variable|attribute(show,1)}
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 35
36. Structures de contrôle
Quelques exemples :
{foreach $tableau as [ $key => ] $item } {if}
… …
[ {delimiter} … {/delimiter} ] {elseif}
{/foreach} …
{else}
…
{/if}
{switch match=$valeur}
{case match='value1'}
…
{/case}
{case match=in_array('value2', 'value3')}
…
{/case}
{case}
{* cas par défaut *}
{/case}
{/section}
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 36
37. Y a t’il des extensions toutes faites ?
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 37
38. Y a t’il des extensions toutes faites ?
“Oui et non”
Il faut voir ça comme pour
un framework
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 38
39. Y a t’il des extensions toutes faites ?
1200 extensions communautaires disponibles sur http://projects.ez.no
eZ SysteeZ Systemsms
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 39
40. La version 5 est 100% branchée avec
Symfony (qu’est-ce que ça apporte ?)
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 40
41. La version 5 est 100% branchée avec Symfony 2
Apport de la version 5 :
- Utilisation du MVC de Symfony 2
- Compatibilité avec le moteur de template SF2 par défaut (Twig)
- L’API publique eZ Publish est désormais disponible, vous pouvez donc utiliser eZ
Publish uniquement en appelant son API (gérer le contenu, les droits, les
utilisateurs, etc…)
En savoir plus : https://github.com/ezsystems/ezp-next
Pourquoi c’est mieux ?
- Le modèle HMVC de symfony2 est la façon la plus propre et standardisé d’organiser
un projet ambitieux.
- Utiliser ce standard (également utilisé par ZF2) permettra de rendre eZ publish plus
facile à apprendre.
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 41
42. Pourquoi eZ Publish est-il peu utilisé en
Amérique du Nord ? Pourquoi ça va
changer ?
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 42
43. Pourquoi eZ Publish est-il peu utilisé en Amérique du Nord ?
Pourquoi eZ Publish est-il peu utilisé en Amérique du Nord ?
• eZ Publish est excellent produit technique, mais peu de marketing a été fait pour promouvoir
le produit à l’international.
• L’éditeur a manqué de présence en Amérique du nord, alors que les produits comme wordPress
(San Francisco) et Drupal (Boston) ont une forte présence ici.
Pourquoi ça va changer ?
• Gartner (grand cabinet de conseil américain) vient de référencer eZ Publish dans son « magic
cadrant » des WCM
• Création d’une entité Marketing et Vente à New York.
• L’éditeur eZ Systems a identifié le marché Nord-Américain comme étant prioritaire pour son
développement.
• Communauté eZ Americas active et régulière : http://www.meetup.com/eZ-Publish-Users-
Developers/ (Au moins, une activité par mois)
• La communauté est en train de préparer des meetup physiques en Amérique du Nord :
• 13 dec à NYC (eZ NYC Informal Talk & Drink Christmas Meetup) et
• en Février à Montréal juste avant Confoo 2013.
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 43
44. Pourquoi eZ Publish est parfaitement
adapté pour le marché Québécois ?
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 44
45. Pourquoi eZ est parfaitement adapté pour le marché Québécois ?
C’est un produit open-source sans coût de licence (GPL)
La communauté française a déjà traduit l’ensemble de l’interface
d’administration
Pour les directions informatiques souhaitant du support de l’éditeur, c’est
également possible (c’est le rôle d’eZ Systems pour la version Entreprise)
Le multi-langue est natif et parfaitement intégré (aucun module
nécessaire)
eZ Publish sera également présenté à Confoo 2013
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 45
46. Comment aller plus loin, tester le
produit, poser des questions ?
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 46
47. Comment aller plus loin, tester le produit, poser des questions ?
Rejoignez la communauté eZ Community Quebec :
Maillist ezpublish-community-quebec@googlegroups.com
Twitter @ezcommunity
Learn http://share.ez.no/learn
Google+ http://bit.ly/ezcty-gplus
Get Involved http://share.ez.no/get-involved
Keep Track http://share.ez.no/get-involved/exchange#RSS
Forge Ahead http://projects.ez.no
Download eZ Publish Community http://share.ez.no/download
Suggest Feature Ideas http://share.ez.no/roadmap
Be an eZ Publish Developer http://share.ez.no/get-involved/develop#resources
Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc 06/12/2012 47