47
15/06/2022 1 Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc eZ Publish - Un CMF open- source qui a fait ses preuves AGENCE GLOBALE : STRATEGIE & MARKETING / DEVELOPPEMENT WEB et MOBILE Par Gauthier GARNIER

Présentation eZ Publish - PHP Québec

Embed Size (px)

DESCRIPTION

Présentation du CMS eZ Publish pour la rencontre mensuelle de PHP Québec du 6 décembre 2012

Citation preview

Page 1: Présentation eZ Publish - PHP Québec

2012-12-06 1Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

eZ Publish - Un CMF open-source qui a fait ses preuves

AGENCE GLOBALE : STRATEGIE & MARKETING / DEVELOPPEMENT WEB et MOBILE

Par Gauthier GARNIER

Page 2: Présentation eZ Publish - PHP Québec

2012-12-06 2Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Gauthier GARNIERDirecteur Général à Novactive (Agence de Montréal)En charge de la production, RH et Finances

Twitter : @gauthiergarnierFacebook : fb.com/gauthier.garnier

Me contacter :Mail & Gtalk : [email protected] : garnier.gauthier

Pratique d’eZ Publish dans un contexte professionnel depuis 2006.En tant que développeur, expert technique et chargé de projet.

Courte présentat ion

Page 3: Présentation eZ Publish - PHP Québec

2012-12-06 3Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

NOVACTIVE, En quelques chiffres :

Direction Générale : 4

Commercial & Administration : 9

Consulting et Gestion de projets : 19

DES CLIENTS PRESTIGIEUX

CHIFFRES CLÉS

Qui sommes nous ?

Date de création :

1996

Capital social : $

180K

Marge brute 2011 : $

5M

Effectifs 2012: 75ACTIVITÉS

Conseil et expertise : Conseil, accompagnement et réalisation en conception Web et Mobile, Design, Online Marketing

Développement Web & Mobile : Développement Web : Expertise de pointe dans les technologies Open Source, Développement mobile iPhone et Android

Hébergement : Infrastructures d’hébergement complètes

L’ÉQUIPE (75 collaborateurs)

Création & Graphisme : 5

Ingénierie, Développement

et Intégration : 38Répartis sur les 3 pôles de Paris, Montréal et Tunis

PARTENARIATS & EXPERTISE

Partenaire Acquia

Partenaire

Varnish

Expertise en développement mobile (iPhone & Android)

Certifié ISO 9001 v. 2008 en 2009, 2010 et 2011

Partenaire

Emailvision

NOS BUREAUX DE MONTREALBUREAU DE MONTREAL

360 Saint Jacques #1805

H2Y 1P5 Montreal, QC- 18 mois d’existence à MTL- Plusieurs clients au

Québec- Une équipe d’expert- Croissance importante

DES TECHNOLOGIES OPEN-SOURCE

Partenaire eZ Systems

Page 4: Présentation eZ Publish - PHP Québec

2012-12-06 4Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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 ?

Page 5: Présentation eZ Publish - PHP Québec

2012-12-06 5Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Qu’est-ce qu’un CMF (Content Management Framework), quelles différences avec un CMS ?

Page 6: Présentation eZ Publish - PHP Québec

2012-12-06 6Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Content management system framework

Qu’est-ce qu’un CMF, quelles différences avec un CMS ?

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éveloppementsPas de mauvaises surprises

On se concentre sur notre valeur ajouté !

Page 7: Présentation eZ Publish - PHP Québec

2012-12-06 7Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Histoire du projet eZ Publish (conçu et développé par de grands noms du PHP)

Page 8: Présentation eZ Publish - PHP Québec

2012-12-06 8Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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.02005 : eZ Systems ouvre des bureaux en Europe2007 : eZ Publish 4.0 supporte php52009 : Mise en place du portail communautaire : http://share.ez.no2009 : eZ Publish 4.3 supporte php5.32012 : eZ Systems ouvre des bureaux en Asie et Amérique du NordSept 2012 : Version 5.0 beta1 – basée sur Symfony 2

Histoire du projet eZ Publish

Page 9: Présentation eZ Publish - PHP Québec

2012-12-06 9Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Un projet porté techniquement par des experts reconnus internationalement

Derick RethansLeader du projet XdebugEmployé par eZ Systems pendant 6 ans

Sebastian BergmannLeader du projet PHPunitEmployé par eZ Systems pendant 4 ans

Tobias SchlittTrès actif sur PEAREmployé par eZ Systems pendant 5 ansEncore très actif sur eZ Components

Histoire du projet eZ Publish

Et aussi plein d’autres

développeurs talentueux !

Page 10: Présentation eZ Publish - PHP Québec

2012-12-06 10Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Il a fait ses preuves ? (références et chiffres clés)

Page 11: Présentation eZ Publish - PHP Québec

2012-12-06 11Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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)

Il a fait ses preuves ? (références et chiffres clés)

Page 12: Présentation eZ Publish - PHP Québec

2012-12-06 12Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Références Media

ELLEhttp://www.elle.com

The Christian Science Monitorhttp://www.csmonitor.com

Page 13: Présentation eZ Publish - PHP Québec

2012-12-06 13Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Références Media

The Bankerhttp://www.thebanker.com

Wall Street Journal Asiahttp://jp.wsj.com

Page 14: Présentation eZ Publish - PHP Québec

2012-12-06 14Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Références Marques

John Deere Suissehttp://johndeeredistributor.ch

Heinz Wattie’s – Nouvelle Zélandehttp://www.heinzwatties.co.nz

Page 15: Présentation eZ Publish - PHP Québec

2012-12-06 15Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Références Marques

BMWhttp://www.bmw-motorsport.com

DC Shoeshttp://www.dcshoes.com

Page 16: Présentation eZ Publish - PHP Québec

2012-12-06 16Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Références Québécoises ?

Page 17: Présentation eZ Publish - PHP Québec

2012-12-06 17Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Références Québécoises

Plaisirs Laitiershttp://www.plaisirslaitiers.ca

Savoir Laitierhttp://www.savoirlaitier.ca

Page 18: Présentation eZ Publish - PHP Québec

2012-12-06 18Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Références Québécoises

Tribu Inuithttp://www.avataq.qc.ca

Novatechhttp://novatechgroup.com

Page 19: Présentation eZ Publish - PHP Québec

2012-12-06 19Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Références Québécoises

VAN HOUTTEhttp://www.vanhoutte.com

Page 20: Présentation eZ Publish - PHP Québec

2012-12-06 20Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Quand faut-il utiliser eZ Publish ? / Quand faut-il utiliser autre chose ?

Page 21: Présentation eZ Publish - PHP Québec

2012-12-06 21Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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).

Quand faut-il utiliser eZ Publish ? / Quand faut-il utiliser autre chose ?

Page 22: Présentation eZ Publish - PHP Québec

2012-12-06 22Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Techniquement, comment ça marche ?

Page 23: Présentation eZ Publish - PHP Québec

2012-12-06 23Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Comment faire votre premier site eZ

Page 24: Présentation eZ Publish - PHP Québec

2012-12-06 24Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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

Comment faire votre premier site eZ

Page 25: Présentation eZ Publish - PHP Québec

2012-12-06 25Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Ce qu’il faut savoir pour bien commencer

Page 26: Présentation eZ Publish - PHP Québec

2012-12-06 26Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Basée sur les notions de programmation orientée objetclasse 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 :NomDatatypeValeur par défautIndexableRequisTraductible

Contenu structuré

Page 27: Présentation eZ Publish - PHP Québec

2012-12-06 27Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Processus de création d’une classe de contenu

Démo(Classes stockées en base de données)

AvantagesSimplicité de créationAdministration par le back-officeFlexibilité et extensibilité des types de contenus100% interrogeable par l’API

DifficultésDifficile à gérer (différences entre environnements)Modification du type (datatype) d’un champ impossible sans pertes d’informationsDifférence entre le modèle de données et l’affichage

Contenu structuré

Page 28: Présentation eZ Publish - PHP Québec

2012-12-06 28Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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 »

Structure de l’information

Page 29: Présentation eZ Publish - PHP Québec

2012-12-06 29Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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 templatesGabarit de page (pagelayout)

Gabarit de contenu

Définition d'un gabarit eZ Publish

Gabarit de page

HEADER

Navigation horizontale

Navigationverticale

Footer

Gabarit de contenu

Blocscontextuels

Titre du contenu 1

Accrocheillustration

Titre du contenu 2

Accrocheillustration

Pagination

Page 30: Présentation eZ Publish - PHP Québec

2012-12-06 30Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Exemple de découpage d’un site

Définition d'un gabarit eZ Publish

Gabarit de page

HEADER

Navigation horizontale

Navigationverticale

Footer

Gabarit de contenu

Blocscontextuels

Titre du contenu 1

Accroche c1

Illustrationc1

Titre du contenu 2

Accroche c2

Illustrationc2

Pagination

Page 31: Présentation eZ Publish - PHP Québec

2012-12-06 31Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Système de vue

Chaque objet de la base de données peut être représenté par plusieurs vues (plusieurs templates)

Exemple :

Définition d'un gabarit eZ Publish

Page 32: Présentation eZ Publish - PHP Québec

2012-12-06 32Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Système de templates

Page 33: Présentation eZ Publish - PHP Québec

2012-12-06 33Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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.

Système de templates

Page 34: Présentation eZ Publish - PHP Québec

2012-12-06 34Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Le système de templates est basé sur les même principes que Smarty (syntaxe proche)

GénéralitésLe langage s’insère directement dans le code HTML, il est reconnu et traduit par

eZPublishLangage orientée objet : $node.object.data_map.titreLes 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}

Système de templates

Page 35: Présentation eZ Publish - PHP Québec

2012-12-06 35Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

VariablesElles 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)}

Système de templates

Page 36: Présentation eZ Publish - PHP Québec

2012-12-06 36Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Quelques exemples : {foreach $tableau as [ $key => ]

$item }  …

[ {delimiter} … {/delimiter} ]{/foreach}

{switch match=$valeur}{case match='value1'}

…{/case}{case match=in_array('value2', 'value3')}

…{/case}{case}

{* cas par défaut *}{/case}

{/section}

{if}…

{elseif}…

{else}…

{/if}

Structures de contrôle

Page 37: Présentation eZ Publish - PHP Québec

2012-12-06 37Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Y a t’il des extensions toutes faites ?

Page 38: Présentation eZ Publish - PHP Québec

2012-12-06 38Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

“Oui et non”

Il faut voir ça comme pour un framework

Y a t’il des extensions toutes faites ?

Page 39: Présentation eZ Publish - PHP Québec

2012-12-06 39Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

1200 extensions communautaires disponibles sur http://projects.ez.no eZ SysteeZ Systemsms

Y a t’il des extensions toutes faites ?

Page 40: Présentation eZ Publish - PHP Québec

2012-12-06 40Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

La version 5 est 100% branchée avec Symfony (qu’est-ce que ça apporte ?)

Page 41: Présentation eZ Publish - PHP Québec

2012-12-06 41Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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.

La version 5 est 100% branchée avec Symfony 2

Page 42: Présentation eZ Publish - PHP Québec

2012-12-06 42Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Pourquoi eZ Publish est-il peu utilisé en Amérique du Nord ? Pourquoi ça va changer ?

Page 43: Présentation eZ Publish - PHP Québec

2012-12-06 43Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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.

Pourquoi eZ Publish est-il peu utilisé en Amérique du Nord ?

Page 44: Présentation eZ Publish - PHP Québec

2012-12-06 44Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Pourquoi eZ Publish est parfaitement adapté pour le marché Québécois ?

Page 45: Présentation eZ Publish - PHP Québec

2012-12-06 45Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

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

Pourquoi eZ est parfaitement adapté pour le marché Québécois ?

Page 46: Présentation eZ Publish - PHP Québec

2012-12-06 46Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Comment aller plus loin, tester le produit, poser des questions ?

Page 47: Présentation eZ Publish - PHP Québec

2012-12-06 47Présentation eZ Publish pour PHP Québec – par Novactive Canada Inc

Rejoignez la communauté eZ Community Quebec :

Maillist [email protected]

Twitter @ezcommunityLearn http://share.ez.no/learnGoogle+ http://bit.ly/ezcty-gplusGet Involved http://share.ez.no/get-involvedKeep Track http://share.ez.no/get-involved/exchange#RSS

Forge Ahead http://projects.ez.noDownload eZ Publish Community http://share.ez.no/downloadSuggest Feature Ideas http://share.ez.no/roadmapBe an eZ Publish Developer http://share.ez.no/get-involved/develop#resources

Comment aller plus loin, tester le produit, poser des questions ?