Meetup
17 décembre 2013
SOMMAIRE

Pourquoi Rubedo ? (15' - Didier Fanchon)
Comment installer Rubedo ? (20' - Gaël Demette)
Créer votre premier site (30' - Nicolas Trenti)
- Pause pizzas Créer votre extension (20' - Alexandru Dobre)
Hébergement (10' - Didier Fanchon)
Présentation de la roadmap produit (10' - Didier Fanchon)
Echanges libres sur l'avenir de Rubedo & la communauté

Meetup Rubedo 17/12/2013
Pourquoi Rubedo ?
Pourquoi Rubedo ?
Premier CMS open-source
basé sur un socle NoSQL

Dans un monde où
LAMP est LA Norme

NoSQL, mais pour quoi faire ?

Meetup Rubedo 17/12/2013

+
NoSQL et gestion de contenus

Les CMS gèrent des Contenus …

… structurés
et
classés

Meetup Rubedo 17/12/2013
Approche Relationnelle VS NoSQL : modélisation
Approche relationnelle
type MySQL

Pour un type de contenu : 6 tables
Pour 10 types de contenus : 29 tables
1 requête unitaire = 6 tables et 2 jointures
Meetup Rubedo 17/12/2013

Approche NoSQL
documentaire
type MongoDB

Pour un type de contenu : 1 collection
Pour 10 types de contenus : 1 collection
1 requête unitaire : 1 collection
Approche Relationnelle VS NoSQL : scalabilité

« Scalabilité » verticale

Meetup Rubedo 17/12/2013

« Scalabilité » horizontale
Les atouts du NoSQL
Atouts Techniques
Performances en lecture/écriture
Stockage de grands volumes
Montée en charge linéaire
Gestion des fichiers intégrée
(MongoDB - GridFS)
Sécurité centralisée

Atouts Fonctionnels
Souplesse de modélisation
Evolutivité dans le temps
Fonctionnalités de Recherche

Meetup Rubedo 17/12/2013

Limites & précautions
•
•

Pas de transactions
Déport des règles métiers dans la
couche applicative

•

Framework de développement
indispensable !
Certaines typologies de projets
peuvent nécessiter une architecture
hybride (site de e-commerce
complexe par exemple)

•
Rubedo, les cas d’usage
Performances &
Volumétrie

Mobilité

Souplesse

Ergonomie

Use cases

Recherche &
Géolocalisation

Portails à fort trafic ou volumétrie
Plateformes multi-sites
Sites mobiles

Meetup Rubedo 17/12/2013

Ouverture &
Extensibilité

Contenus géo-localisés & cartographie
Moteurs de recherche verticaux
Plateformes de contribution décentralisées
Installation
Prérequis

PHP >= 5.3 (https://www.zend.com/fr/products/server/free-edition)
PHP MongoDB Driver >= 1.3.0 (php.ini)
Intl (php.ini)
MongoDB >= 2.2 (http://www.mongodb.org/downloads)
ElasticSearch
– Nécessite java
– Dernière version compatible avec Elastica (https://github.com/ruflin/Elastica)
– Plugins
• Mapper Attachments type (https://github.com/elasticsearch/elasticsearch-mapper-attachments)
• ICU Analysis (https://github.com/elasticsearch/elasticsearch-analysis-icu)

Meetup Rubedo 17/12/2013
Préinstallation

Distribution linux utilisée : Debian 7.2
– Attention version mongoDB

Etapes
– Téléverser Rubedo
– Préparer Rubedo
– Installer Rubedo

Meetup Rubedo 17/12/2013
Téléverser Rubedo

Wget
– Plus rapide et léger (72Mo deps inc)

Git clone
– Plus malléable
– Installer git

Meetup Rubedo 17/12/2013
Préparer Rubedo (1)

Exécuter ./install.sh (ou .bat)
– Mets à jour le composer.phar
– Installe les dépendances
– Ajoute les droits sur les dossiers

./update.sh (ou .bat)
– Mets à jour le composer.phar
– Mets à jour les dépendances
– Remets les droits sur les dossiers

Meetup Rubedo 17/12/2013
Préparer Rubedo (2)

Meetup Rubedo 17/12/2013
Préparer Rubedo (3 : VHOST)

Meetup Rubedo 17/12/2013
Installer Rubedo (1)

Accéder à /install

Meetup Rubedo 17/12/2013
Installer Rubedo (2)

Meetup Rubedo 17/12/2013
Installer Rubedo (3)

Meetup Rubedo 17/12/2013
Installer Rubedo (4)

Meetup Rubedo 17/12/2013
Installer Rubedo (5.1)

Meetup Rubedo 17/12/2013
Installer Rubedo (5.2)

Meetup Rubedo 17/12/2013
Installer Rubedo (5.3)

Meetup Rubedo 17/12/2013
Installer Rubedo (5.4)

Meetup Rubedo 17/12/2013
Installer Rubedo (6.1)

Meetup Rubedo 17/12/2013
Installer Rubedo (6.2)

Meetup Rubedo 17/12/2013
Installer Rubedo (7)

Meetup Rubedo 17/12/2013
Installer Rubedo (8)

Meetup Rubedo 17/12/2013
Installer Rubedo (9.1)

Meetup Rubedo 17/12/2013
Installer Rubedo (9.2)

Meetup Rubedo 17/12/2013
Installer Rubedo (9.3)

Meetup Rubedo 17/12/2013
Installer Rubedo (10)

Meetup Rubedo 17/12/2013
Modifier l’installation

Meetup Rubedo 17/12/2013
Mon premier site
Pause
Extension
L’essentiel pour débuter avec le développement sous Rubedo
Rubedo et les extensions
Repose sur la structure modulaire de Zend Framework 2
1 extension = 1 module
1 extension permet actuellement de :
– Créer un thème graphique ou surcharger un thème existant
– Surcharger un template existant
– Créer ou surcharger un block (en FO et BO)
– Créer ou surcharger un service
– Ajouter des types de contenus ou de médias
– Etendre le back-office
A venir :
– Initialisation des données de l’extension
– Manager d’extensions dans le back-office
Exemple de base auquel se référer : https://github.com/WebTales/Extension
Meetup Rubedo 17/12/2013
Installer et mettre à jour des extensions
Déclarer l’extension dans composer.extensions.json

Installation ou maj : update.bat ou .sh

Meetup Rubedo 17/12/2013
Poser les bases d’une extension
VCS
composer.json
Module.php
module.config.php

Meetup Rubedo 17/12/2013
Poser les bases d’une extension

Module.php

Meetup Rubedo 17/12/2013

Module.php (dans src/MyExtension)
Poser les bases d’une extension
composer.json

Meetup Rubedo 17/12/2013

module.config.php
Intégrer un thème bootstrap
1.
2.
3.
4.
5.
6.

Intégrer le nouveau template, avec ses css, js, images, …etc.
Surcharger la structure générique : page.html.twig
Surcharger le menu de navigation : navbar.html.twig
Surcharger les blocs génériques : contentlist.html.twig, singlecontent.html.twig, …
Créer les nouveaux blocs
…

Meetup Rubedo 17/12/2013
Hébergement
Ou héberger votre projet ?

Hébergement mutualisé / sur VM dédiée
– www.rubedocloud.com
• Offres gratuites
• Offres payantes à venir

Hébergeurs partenaires :
– Smile Hosting
– http://www.itsintegra.com/
– http://easyspeedy.com/

Meetup Rubedo 17/12/2013
Roadmap
Roadmap

2.1 : début Janvier
– Gestion des types d’utilisateurs
– Recherche des utilisateurs
– Nouveaux blocs :
• Annuaire
• Fiche profil
• Création de compte via le FO

– Nouveau module :
• Emailing : création des e-mails, gestion de mailing-list, envoi des mails

Orientations 2.2 : réseau social & collaboratif

Meetup Rubedo 17/12/2013
Ressources

Tutoriels

Téléchargement

Newsletter

Forum

www.rubedo-project.org

Et aussi :
•
•
•
•

Wiki
Mailing-list développeurs
GitHub
Crowdin

Meetup Rubedo 17/12/2013

@Rubedo_project

Rubedo
Merci à tous pour votre participation

&

Bonnes fêtes de fin d’année

Meetup CMS Rubedo 12 décembre 2013

  • 1.
  • 2.
    SOMMAIRE Pourquoi Rubedo ?(15' - Didier Fanchon) Comment installer Rubedo ? (20' - Gaël Demette) Créer votre premier site (30' - Nicolas Trenti) - Pause pizzas Créer votre extension (20' - Alexandru Dobre) Hébergement (10' - Didier Fanchon) Présentation de la roadmap produit (10' - Didier Fanchon) Echanges libres sur l'avenir de Rubedo & la communauté Meetup Rubedo 17/12/2013
  • 3.
  • 4.
    Pourquoi Rubedo ? PremierCMS open-source basé sur un socle NoSQL Dans un monde où LAMP est LA Norme NoSQL, mais pour quoi faire ? Meetup Rubedo 17/12/2013 +
  • 5.
    NoSQL et gestionde contenus Les CMS gèrent des Contenus … … structurés et classés Meetup Rubedo 17/12/2013
  • 6.
    Approche Relationnelle VSNoSQL : modélisation Approche relationnelle type MySQL Pour un type de contenu : 6 tables Pour 10 types de contenus : 29 tables 1 requête unitaire = 6 tables et 2 jointures Meetup Rubedo 17/12/2013 Approche NoSQL documentaire type MongoDB Pour un type de contenu : 1 collection Pour 10 types de contenus : 1 collection 1 requête unitaire : 1 collection
  • 7.
    Approche Relationnelle VSNoSQL : scalabilité « Scalabilité » verticale Meetup Rubedo 17/12/2013 « Scalabilité » horizontale
  • 8.
    Les atouts duNoSQL Atouts Techniques Performances en lecture/écriture Stockage de grands volumes Montée en charge linéaire Gestion des fichiers intégrée (MongoDB - GridFS) Sécurité centralisée Atouts Fonctionnels Souplesse de modélisation Evolutivité dans le temps Fonctionnalités de Recherche Meetup Rubedo 17/12/2013 Limites & précautions • • Pas de transactions Déport des règles métiers dans la couche applicative • Framework de développement indispensable ! Certaines typologies de projets peuvent nécessiter une architecture hybride (site de e-commerce complexe par exemple) •
  • 9.
    Rubedo, les casd’usage Performances & Volumétrie Mobilité Souplesse Ergonomie Use cases Recherche & Géolocalisation Portails à fort trafic ou volumétrie Plateformes multi-sites Sites mobiles Meetup Rubedo 17/12/2013 Ouverture & Extensibilité Contenus géo-localisés & cartographie Moteurs de recherche verticaux Plateformes de contribution décentralisées
  • 10.
  • 11.
    Prérequis PHP >= 5.3(https://www.zend.com/fr/products/server/free-edition) PHP MongoDB Driver >= 1.3.0 (php.ini) Intl (php.ini) MongoDB >= 2.2 (http://www.mongodb.org/downloads) ElasticSearch – Nécessite java – Dernière version compatible avec Elastica (https://github.com/ruflin/Elastica) – Plugins • Mapper Attachments type (https://github.com/elasticsearch/elasticsearch-mapper-attachments) • ICU Analysis (https://github.com/elasticsearch/elasticsearch-analysis-icu) Meetup Rubedo 17/12/2013
  • 12.
    Préinstallation Distribution linux utilisée: Debian 7.2 – Attention version mongoDB Etapes – Téléverser Rubedo – Préparer Rubedo – Installer Rubedo Meetup Rubedo 17/12/2013
  • 13.
    Téléverser Rubedo Wget – Plusrapide et léger (72Mo deps inc) Git clone – Plus malléable – Installer git Meetup Rubedo 17/12/2013
  • 14.
    Préparer Rubedo (1) Exécuter./install.sh (ou .bat) – Mets à jour le composer.phar – Installe les dépendances – Ajoute les droits sur les dossiers ./update.sh (ou .bat) – Mets à jour le composer.phar – Mets à jour les dépendances – Remets les droits sur les dossiers Meetup Rubedo 17/12/2013
  • 15.
    Préparer Rubedo (2) MeetupRubedo 17/12/2013
  • 16.
    Préparer Rubedo (3: VHOST) Meetup Rubedo 17/12/2013
  • 17.
    Installer Rubedo (1) Accéderà /install Meetup Rubedo 17/12/2013
  • 18.
    Installer Rubedo (2) MeetupRubedo 17/12/2013
  • 19.
    Installer Rubedo (3) MeetupRubedo 17/12/2013
  • 20.
    Installer Rubedo (4) MeetupRubedo 17/12/2013
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
    Installer Rubedo (7) MeetupRubedo 17/12/2013
  • 28.
    Installer Rubedo (8) MeetupRubedo 17/12/2013
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
    Extension L’essentiel pour débuteravec le développement sous Rubedo
  • 37.
    Rubedo et lesextensions Repose sur la structure modulaire de Zend Framework 2 1 extension = 1 module 1 extension permet actuellement de : – Créer un thème graphique ou surcharger un thème existant – Surcharger un template existant – Créer ou surcharger un block (en FO et BO) – Créer ou surcharger un service – Ajouter des types de contenus ou de médias – Etendre le back-office A venir : – Initialisation des données de l’extension – Manager d’extensions dans le back-office Exemple de base auquel se référer : https://github.com/WebTales/Extension Meetup Rubedo 17/12/2013
  • 38.
    Installer et mettreà jour des extensions Déclarer l’extension dans composer.extensions.json Installation ou maj : update.bat ou .sh Meetup Rubedo 17/12/2013
  • 39.
    Poser les basesd’une extension VCS composer.json Module.php module.config.php Meetup Rubedo 17/12/2013
  • 40.
    Poser les basesd’une extension Module.php Meetup Rubedo 17/12/2013 Module.php (dans src/MyExtension)
  • 41.
    Poser les basesd’une extension composer.json Meetup Rubedo 17/12/2013 module.config.php
  • 42.
    Intégrer un thèmebootstrap 1. 2. 3. 4. 5. 6. Intégrer le nouveau template, avec ses css, js, images, …etc. Surcharger la structure générique : page.html.twig Surcharger le menu de navigation : navbar.html.twig Surcharger les blocs génériques : contentlist.html.twig, singlecontent.html.twig, … Créer les nouveaux blocs … Meetup Rubedo 17/12/2013
  • 43.
  • 44.
    Ou héberger votreprojet ? Hébergement mutualisé / sur VM dédiée – www.rubedocloud.com • Offres gratuites • Offres payantes à venir Hébergeurs partenaires : – Smile Hosting – http://www.itsintegra.com/ – http://easyspeedy.com/ Meetup Rubedo 17/12/2013
  • 45.
  • 46.
    Roadmap 2.1 : débutJanvier – Gestion des types d’utilisateurs – Recherche des utilisateurs – Nouveaux blocs : • Annuaire • Fiche profil • Création de compte via le FO – Nouveau module : • Emailing : création des e-mails, gestion de mailing-list, envoi des mails Orientations 2.2 : réseau social & collaboratif Meetup Rubedo 17/12/2013
  • 47.
  • 48.
    Merci à touspour votre participation & Bonnes fêtes de fin d’année