SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Automatisation
Gestionnaires de contenu
CMS
Christophe Villeneuve
@hellosct1
Qui ???
Christophe
Villeneuve
mozilla reps - firefox os - B2GOS - ausy - afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – Libre@toi – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – elephpant - owasp -security
RMLL 2017 – 6 Juillet 2017
Les sites Webs à l'ancienne
RMLL 2017 – 6 Juillet 2017
Les sites Webs d'Aujourd'hui
RMLL 2017 – 6 Juillet 2017
Industrialisation
● = Usine à sites
● Répondre à 1 ou plusieurs objectifs
– Le temps
● Délais court → Mise en production
– Le coût
● Réduction du coût de fabrication
– La maintenance
● Réduction du coût de maintenance
– L'homogénéité
● Respect d'un catalogue de fonctionnalités
● Permettre une présence massive et cohérente
RMLL 2017 – 6 Juillet 2017
Les forces
● Ce n'est pas un outil de conception pour
→ Un seul et unique site
● Approche par couche
● Une gestion et utilisation simultanée pour plusieurs
sites
→ Plusieurs méthodes
→ Plusieurs architectures possibles
● Point clé
→ Pas nécessaire d'installer plusieurs Drupal
RMLL 2017 – 6 Juillet 2017
Implémentation du contrôle d'accès !!! (1/2)
● Un pilotage des sites est unique ou non
→ Quel autonomie doit disposer chacun des sites ?
● Un visuel pour un visiteur :
→ Un site à part
→ Faisant partie d'un site unique
RMLL 2017 – 6 Juillet 2017
Implémentation du contrôle d'accès !!! (2/2)
● Le thème et la mise en page des contenus
→ Suivre une ligne éditorial précise ou non
● Un processus de publication
→ Unique
● Le contenu devra être partagé ou pas
→ Entre les différentes sites
RMLL 2017 – 6 Juillet 2017
Cas 1 : Installations distinctes (1/2)
● Approche autonome
– Chaque utilisation
unique
– Contrôle complet ou
presque complet
● Possibilité d'avoir des
versions différentes du
CMS
● Utilisation différentes
● Un fonctionnement
différent
● Pas de mise à jour
centralisée
● Connexion unique pour
les modifications
● Impossible de partager
de le même contenu sur
plusieurs sites
Avantages Inconvénients
RMLL 2017 – 6 Juillet 2017
Cas 1 : Installations distinctes (2/2) : Réalisation
● Réplication des nœuds
● Implémentations pour le référencement (SEO)
● La gestion des droits
● La gestion des profils
● La synchronisation
● Gestion
– Noms de domaines distincts
– Sous domaines
RMLL 2017 – 6 Juillet 2017
Cas 2 : Installations distinctes par Features (1/2)
● Variation de
l'architecture
● Outil pour exporter la
configuration d'un site
● Approche en micro-
services
● Configuration mi-
chemin : entre
– Le contenu
– La configuration
Avantages Inconvénients
RMLL 2017 – 6 Juillet 2017
Cas 2 : Installations distinctes Features (2/2)
● Type de contenu
● Les vues
● La gestion des images
● La duplication de certaines fonctionnalités
RMLL 2017 – 6 Juillet 2017
Cas 3 :Multi-sites (1/3)
● 1 seul core
● Facilité la maintenance
● Economie au niveau
mémoire vive des
serveurs
● Une configuration
unique
Avantages Inconvénients
RMLL 2017 – 6 Juillet 2017
Cas 3 :Multi-sites (2/3) : Réalisations
RMLL 2017 – 6 Juillet 2017
Cas 3 : Multi-sites : Domain Access (1/3)
● 1 seul Drupal core
● Gestion unique
● Gestion des droits et
uniques
● Gestion de plusieurs
domaines
● Une seule structure
– Type de contenu
– Vues
● Les variations plus
délicates
Avantages Inconvénients
RMLL 2017 – 6 Juillet 2017
Cas 3 : Domain Access (2/3) : Réalisations
RMLL 2017 – 6 Juillet 2017
Environnement
● Linux
– Debian, Ubuntu, Mint, CentOS, Redhat...
● Serveur :
– Apache / Nginx
● Langage :
– PHP 5.6 / PHP 7
● Base de données :
– MySQL / MariaDB / PostgreSQL
● Drupal
– 7 ou 8
● Cache externe :
– Varnish / Akamaï
RMLL 2017 – 6 Juillet 2017
Outils
● Drush
● Drupal Console
Drupal 7 et +
Drupal 8
RMLL 2017 – 6 Juillet 2017
Drupal : en lignes de commande
● Composer
● YML ou classique
● Makefile
● Mode console
● Méthode Synfony
$ drupal
generate:module
$ drupal
generate:controller
Drush Drupal Terminal
RMLL 2017 – 6 Juillet 2017
Install avec Drush (1/3)
> drush dl drupal
> cd drupal-8.2
> drush si standard -y
--db-url=mysql://login:PWD@localhost/drupal_bdd
--site-name="Drupal Ausy Nantes"
--account-name=admin
--account-pass=admin
--account-mail=mail@mail.com
RMLL 2017 – 6 Juillet 2017
Install avec Drush (2/3)
● Download
– Drupal
– Modules contrib
● Install Drupal
● Update Drupal and
contrib module
versions
● Run updatedb
● Clear the cache
● Run cron
● Run Drupal with a
lightweight web server
● Import, export and merge
configuration
● Add users and set their
roles
● Add permissions to roles
● Back up and restore Drupal
● Copy your database and
files to a remote server
● Compile twig templates
RMLL 2017 – 6 Juillet 2017
Install avec Drush (3/3)
Drupal 7 Drupal 8
RMLL 2017 – 6 Juillet 2017
Install avec Drupal console (1/3)
> curl -sS https://getcomposer.org/installer | php
> sudo mv composer.phar /usr/local/bin/composer
> sudo composer create-project
drupal-composer/drupal-project:$VERSION
$DIR --stability dev –no-interaction
> vendor/bin/drush si standard -y --db-url=$BDD_URL 
--site-mail=$MAIL --site-name=$NOMSITE --sites-
subdir=$DIRMULTI 
--account-name=$LOGIN --account-pass=$PASSWORD
--account-mail=$MAIL
RMLL 2017 – 6 Juillet 2017
Install avec Drupal Console (2/3)
● Installation à partir de
'composer'
● Produire du code
– Console command
– Content type
– Controller
– Entity
– Form alter hook
– Module
– Field type, widget and
formatter
– Image effect
– Rest resource
– Service
– Theme
RMLL 2017 – 6 Juillet 2017
Install avec Drupal Console (3/3)
Drupal 8
RMLL 2017 – 6 Juillet 2017
Automatisation
RMLL 2017 – 6 Juillet 2017
Intégration continue
Git
Jenkins
Behat
Ansible
...
RMLL 2017 – 6 Juillet 2017
Behat Drive Développement (BDD)
● Framework de tests
● Axé sur le comportement
Feature: Function to test
description
Free text
Scenario: Scenario 1
Given preconditions
When actions
Then results
Scenario: Scenario 2
RMLL 2017 – 6 Juillet 2017
Behat : exemple
Scenario: Title
Given I am on the homepage
Then I should see "Drupal"
Scenario: Log in
Given I visit "/user"
# fill the username and password input fields,
and click submit
When I fill in "Username" with "admin"
And I fill in "Password" with "admin"
And I press the "Log in" button
Then I should get a "200" HTTP response
And I should see text matching "Log out"
RMLL 2017 – 6 Juillet 2017
Test Drive Développement (TDD)
● Écrivez un test
● Exécutez le test
● Laissez le test échouer
● Écrire assez de code
● Exécutez votre test à nouveau
● Refactorez / nettoyer le code
● Exécutez le test à nouveau
● Répéter
RMLL 2017 – 6 Juillet 2017
Pourquuoi l'utiliser ?
● Meilleure compréhension
→ de ce que vous allez écrire
● Force la politique d'écriture
→ Un peu mieux
● Accélère le développement
RMLL 2017 – 6 Juillet 2017
Avantages de TDD
● Code testable
● Design propre
● Peut être refactoré avec confiance
● Le code minimal
→ Nécessaire pour satisfaire la carte d'histoire
● Une spécification personnelle
→ De fonctionnement du code
● Capable de soutenir un rythme
→ Soutenable de nouvelles fonctionnalités
RMLL 2017 – 6 Juillet 2017
Selenium
RMLL 2017 – 6 Juillet 2017
Automatisation
● Jenkins
● Hudson
● GitLab CI
● Travis CI
RMLL 2017 – 6 Juillet 2017
Merci
@hellosct1
Questions

Más contenido relacionado

La actualidad más candente

NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile App
Habib MAALEM
 
Front end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeFront end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitée
Ouadie LAHDIOUI
 

La actualidad más candente (15)

Benchmark php7
Benchmark php7Benchmark php7
Benchmark php7
 
Adopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front SideAdopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front Side
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile App
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
Les WebExtensions et Firefox - JDLL 2017
Les WebExtensions et Firefox - JDLL 2017Les WebExtensions et Firefox - JDLL 2017
Les WebExtensions et Firefox - JDLL 2017
 
Node.js
Node.jsNode.js
Node.js
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptx
 
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
 
Les web extensions
Les web extensionsLes web extensions
Les web extensions
 
Drupal 8
Drupal 8Drupal 8
Drupal 8
 
Front end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitéeFront end, une île qui mérite d'être visitée
Front end, une île qui mérite d'être visitée
 
Firefox et les WebExtensions
Firefox et les WebExtensionsFirefox et les WebExtensions
Firefox et les WebExtensions
 
Livre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JSLivre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JS
 
Jquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter BootstrapJquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter Bootstrap
 
Wonder_picture_nguyen_patois_rollot_scala
Wonder_picture_nguyen_patois_rollot_scalaWonder_picture_nguyen_patois_rollot_scala
Wonder_picture_nguyen_patois_rollot_scala
 

Similar a Automatisation des gestionnaires de contenus (CMS)

Pourquoi choisir un CMS Open Source ?
Pourquoi choisir un CMS Open Source ?Pourquoi choisir un CMS Open Source ?
Pourquoi choisir un CMS Open Source ?
OSInet
 
Kiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetKiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internet
Devclic
 

Similar a Automatisation des gestionnaires de contenus (CMS) (20)

Pas possible en drupal, c'est faux
Pas possible en drupal, c'est fauxPas possible en drupal, c'est faux
Pas possible en drupal, c'est faux
 
Pourquoi un CMS
Pourquoi un CMSPourquoi un CMS
Pourquoi un CMS
 
PHP et MariaDB dans le Cloud
PHP et MariaDB dans le CloudPHP et MariaDB dans le Cloud
PHP et MariaDB dans le Cloud
 
Pourquoi choisir un CMS Open Source ?
Pourquoi choisir un CMS Open Source ?Pourquoi choisir un CMS Open Source ?
Pourquoi choisir un CMS Open Source ?
 
WebExtensions - it's now / c'est maintenant
WebExtensions - it's now / c'est maintenantWebExtensions - it's now / c'est maintenant
WebExtensions - it's now / c'est maintenant
 
Les tests de sécurité
Les tests de sécuritéLes tests de sécurité
Les tests de sécurité
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
 
Introduction webextensions
Introduction webextensionsIntroduction webextensions
Introduction webextensions
 
Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017
 
La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans Firefox
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnect
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Migrations Drupal-to-Drupal avec migrate_d2d - Drupal Meetup Paris Sept 2013
Migrations Drupal-to-Drupal avec migrate_d2d - Drupal Meetup Paris Sept 2013Migrations Drupal-to-Drupal avec migrate_d2d - Drupal Meetup Paris Sept 2013
Migrations Drupal-to-Drupal avec migrate_d2d - Drupal Meetup Paris Sept 2013
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
 
la boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsla boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtools
 
DevOps with OpenShift
DevOps with OpenShiftDevOps with OpenShift
DevOps with OpenShift
 
S43 passer à php 7 sous IBM i
S43   passer à php 7 sous IBM iS43   passer à php 7 sous IBM i
S43 passer à php 7 sous IBM i
 
Kiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetKiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internet
 
Api les intefaces du cloud computing
Api les intefaces du cloud computingApi les intefaces du cloud computing
Api les intefaces du cloud computing
 

Más de Christophe Villeneuve

Más de Christophe Villeneuve (20)

MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
pister les pisteurs
pister les pisteurspister les pisteurs
pister les pisteurs
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le web
 
Mariadb une base de données NewSQL
Mariadb une base de données NewSQLMariadb une base de données NewSQL
Mariadb une base de données NewSQL
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnante
 
Pentest bus pirate
Pentest bus piratePentest bus pirate
Pentest bus pirate
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le design
 
Foxfooding semaine 3
Foxfooding semaine 3Foxfooding semaine 3
Foxfooding semaine 3
 
Foxfooding
FoxfoodingFoxfooding
Foxfooding
 
Accessibilite web wcag rgaa
Accessibilite web wcag rgaaAccessibilite web wcag rgaa
Accessibilite web wcag rgaa
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activites
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et Microsoft
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
Send large files with addons
Send large files with addonsSend large files with addons
Send large files with addons
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratique
 
Donnez la voix aux machines
Donnez la voix aux machinesDonnez la voix aux machines
Donnez la voix aux machines
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applications
 
la réalité mélangée de A a Z
la réalité mélangée de A a Zla réalité mélangée de A a Z
la réalité mélangée de A a Z
 

Automatisation des gestionnaires de contenus (CMS)

  • 2. Qui ??? Christophe Villeneuve mozilla reps - firefox os - B2GOS - ausy - afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – Libre@toi – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – elephpant - owasp -security
  • 3. RMLL 2017 – 6 Juillet 2017 Les sites Webs à l'ancienne
  • 4. RMLL 2017 – 6 Juillet 2017 Les sites Webs d'Aujourd'hui
  • 5. RMLL 2017 – 6 Juillet 2017 Industrialisation ● = Usine à sites ● Répondre à 1 ou plusieurs objectifs – Le temps ● Délais court → Mise en production – Le coût ● Réduction du coût de fabrication – La maintenance ● Réduction du coût de maintenance – L'homogénéité ● Respect d'un catalogue de fonctionnalités ● Permettre une présence massive et cohérente
  • 6. RMLL 2017 – 6 Juillet 2017 Les forces ● Ce n'est pas un outil de conception pour → Un seul et unique site ● Approche par couche ● Une gestion et utilisation simultanée pour plusieurs sites → Plusieurs méthodes → Plusieurs architectures possibles ● Point clé → Pas nécessaire d'installer plusieurs Drupal
  • 7. RMLL 2017 – 6 Juillet 2017 Implémentation du contrôle d'accès !!! (1/2) ● Un pilotage des sites est unique ou non → Quel autonomie doit disposer chacun des sites ? ● Un visuel pour un visiteur : → Un site à part → Faisant partie d'un site unique
  • 8. RMLL 2017 – 6 Juillet 2017 Implémentation du contrôle d'accès !!! (2/2) ● Le thème et la mise en page des contenus → Suivre une ligne éditorial précise ou non ● Un processus de publication → Unique ● Le contenu devra être partagé ou pas → Entre les différentes sites
  • 9. RMLL 2017 – 6 Juillet 2017 Cas 1 : Installations distinctes (1/2) ● Approche autonome – Chaque utilisation unique – Contrôle complet ou presque complet ● Possibilité d'avoir des versions différentes du CMS ● Utilisation différentes ● Un fonctionnement différent ● Pas de mise à jour centralisée ● Connexion unique pour les modifications ● Impossible de partager de le même contenu sur plusieurs sites Avantages Inconvénients
  • 10. RMLL 2017 – 6 Juillet 2017 Cas 1 : Installations distinctes (2/2) : Réalisation ● Réplication des nœuds ● Implémentations pour le référencement (SEO) ● La gestion des droits ● La gestion des profils ● La synchronisation ● Gestion – Noms de domaines distincts – Sous domaines
  • 11. RMLL 2017 – 6 Juillet 2017 Cas 2 : Installations distinctes par Features (1/2) ● Variation de l'architecture ● Outil pour exporter la configuration d'un site ● Approche en micro- services ● Configuration mi- chemin : entre – Le contenu – La configuration Avantages Inconvénients
  • 12. RMLL 2017 – 6 Juillet 2017 Cas 2 : Installations distinctes Features (2/2) ● Type de contenu ● Les vues ● La gestion des images ● La duplication de certaines fonctionnalités
  • 13. RMLL 2017 – 6 Juillet 2017 Cas 3 :Multi-sites (1/3) ● 1 seul core ● Facilité la maintenance ● Economie au niveau mémoire vive des serveurs ● Une configuration unique Avantages Inconvénients
  • 14. RMLL 2017 – 6 Juillet 2017 Cas 3 :Multi-sites (2/3) : Réalisations
  • 15. RMLL 2017 – 6 Juillet 2017 Cas 3 : Multi-sites : Domain Access (1/3) ● 1 seul Drupal core ● Gestion unique ● Gestion des droits et uniques ● Gestion de plusieurs domaines ● Une seule structure – Type de contenu – Vues ● Les variations plus délicates Avantages Inconvénients
  • 16. RMLL 2017 – 6 Juillet 2017 Cas 3 : Domain Access (2/3) : Réalisations
  • 17.
  • 18. RMLL 2017 – 6 Juillet 2017 Environnement ● Linux – Debian, Ubuntu, Mint, CentOS, Redhat... ● Serveur : – Apache / Nginx ● Langage : – PHP 5.6 / PHP 7 ● Base de données : – MySQL / MariaDB / PostgreSQL ● Drupal – 7 ou 8 ● Cache externe : – Varnish / Akamaï
  • 19. RMLL 2017 – 6 Juillet 2017 Outils ● Drush ● Drupal Console Drupal 7 et + Drupal 8
  • 20. RMLL 2017 – 6 Juillet 2017 Drupal : en lignes de commande ● Composer ● YML ou classique ● Makefile ● Mode console ● Méthode Synfony $ drupal generate:module $ drupal generate:controller Drush Drupal Terminal
  • 21. RMLL 2017 – 6 Juillet 2017 Install avec Drush (1/3) > drush dl drupal > cd drupal-8.2 > drush si standard -y --db-url=mysql://login:PWD@localhost/drupal_bdd --site-name="Drupal Ausy Nantes" --account-name=admin --account-pass=admin --account-mail=mail@mail.com
  • 22. RMLL 2017 – 6 Juillet 2017 Install avec Drush (2/3) ● Download – Drupal – Modules contrib ● Install Drupal ● Update Drupal and contrib module versions ● Run updatedb ● Clear the cache ● Run cron ● Run Drupal with a lightweight web server ● Import, export and merge configuration ● Add users and set their roles ● Add permissions to roles ● Back up and restore Drupal ● Copy your database and files to a remote server ● Compile twig templates
  • 23. RMLL 2017 – 6 Juillet 2017 Install avec Drush (3/3) Drupal 7 Drupal 8
  • 24. RMLL 2017 – 6 Juillet 2017 Install avec Drupal console (1/3) > curl -sS https://getcomposer.org/installer | php > sudo mv composer.phar /usr/local/bin/composer > sudo composer create-project drupal-composer/drupal-project:$VERSION $DIR --stability dev –no-interaction > vendor/bin/drush si standard -y --db-url=$BDD_URL --site-mail=$MAIL --site-name=$NOMSITE --sites- subdir=$DIRMULTI --account-name=$LOGIN --account-pass=$PASSWORD --account-mail=$MAIL
  • 25. RMLL 2017 – 6 Juillet 2017 Install avec Drupal Console (2/3) ● Installation à partir de 'composer' ● Produire du code – Console command – Content type – Controller – Entity – Form alter hook – Module – Field type, widget and formatter – Image effect – Rest resource – Service – Theme
  • 26. RMLL 2017 – 6 Juillet 2017 Install avec Drupal Console (3/3) Drupal 8
  • 27. RMLL 2017 – 6 Juillet 2017 Automatisation
  • 28. RMLL 2017 – 6 Juillet 2017 Intégration continue Git Jenkins Behat Ansible ...
  • 29. RMLL 2017 – 6 Juillet 2017 Behat Drive Développement (BDD) ● Framework de tests ● Axé sur le comportement Feature: Function to test description Free text Scenario: Scenario 1 Given preconditions When actions Then results Scenario: Scenario 2
  • 30. RMLL 2017 – 6 Juillet 2017 Behat : exemple Scenario: Title Given I am on the homepage Then I should see "Drupal" Scenario: Log in Given I visit "/user" # fill the username and password input fields, and click submit When I fill in "Username" with "admin" And I fill in "Password" with "admin" And I press the "Log in" button Then I should get a "200" HTTP response And I should see text matching "Log out"
  • 31. RMLL 2017 – 6 Juillet 2017 Test Drive Développement (TDD) ● Écrivez un test ● Exécutez le test ● Laissez le test échouer ● Écrire assez de code ● Exécutez votre test à nouveau ● Refactorez / nettoyer le code ● Exécutez le test à nouveau ● Répéter
  • 32. RMLL 2017 – 6 Juillet 2017 Pourquuoi l'utiliser ? ● Meilleure compréhension → de ce que vous allez écrire ● Force la politique d'écriture → Un peu mieux ● Accélère le développement
  • 33. RMLL 2017 – 6 Juillet 2017 Avantages de TDD ● Code testable ● Design propre ● Peut être refactoré avec confiance ● Le code minimal → Nécessaire pour satisfaire la carte d'histoire ● Une spécification personnelle → De fonctionnement du code ● Capable de soutenir un rythme → Soutenable de nouvelles fonctionnalités
  • 34. RMLL 2017 – 6 Juillet 2017 Selenium
  • 35. RMLL 2017 – 6 Juillet 2017 Automatisation ● Jenkins ● Hudson ● GitLab CI ● Travis CI
  • 36. RMLL 2017 – 6 Juillet 2017 Merci @hellosct1 Questions