Come progettare e realizzare una distribuzione in Drupal 8

24

Transcript of Come progettare e realizzare una distribuzione in Drupal 8

Page 1: Come progettare e realizzare una distribuzione in Drupal 8
Page 2: Come progettare e realizzare una distribuzione in Drupal 8

COME PROGETTARE E REALIZZARE UNA

DISTRIBUZIONE IN DRUPAL 8

Page 3: Come progettare e realizzare una distribuzione in Drupal 8

LUCA LUSSO

SENIOR DRUPAL DEVELOPER @WELLNET

Twitter: @lussolucaLinkedin: it.linkedin.com/pub/luca-lusso/29/3a9/1a2/Drupal.org: www.drupal.org/u/lussolucawww.drupal.org/project/develwww.drupal.org/project/xhprof

Page 4: Come progettare e realizzare una distribuzione in Drupal 8

AGENDAprerequisiti: Composer e CMIprofili d’installazioneconfigurazionifixturesscript di buildtesting

Page 5: Come progettare e realizzare una distribuzione in Drupal 8

Drupal core +moduli contrib +tema e moduli custom +fixtures +colla =

distribuzione

Page 6: Come progettare e realizzare una distribuzione in Drupal 8

COMPOSER

Package manager per PHP

composer.json -> lista dei pacchetti da scaricare (e da

dove scaricarli)

composer.lock -> elenco versioni specifiche per il

progetto

composer update -> controlla aggiornamenti

composer install -> installa le versione indicate in

composer.lock

Page 7: Come progettare e realizzare una distribuzione in Drupal 8

CMIConfiguration Management InitiativePosso esportare tutta (TUTTA) la configurazione di unsito in filesAPI e best practices che tutti gli sviluppatori di modulidevono rispettareConfigurazioni semplici (nome del sito, chiave diGoogle Analytics)Configurazioni complesse, o entità di configurazione(content type, viste, …)

Page 8: Come progettare e realizzare una distribuzione in Drupal 8

PROFILI D'INSTALLAZIONE

Quali moduli installare?Quali configurazioni installare?Modifica al workflow di installazionePersonalizzazione dell’installazioneIl Core ne ha due: standard e minimal

Page 9: Come progettare e realizzare una distribuzione in Drupal 8

PROFILI D'INSTALLAZIONE

ddd.info.ymlddd.installddd.profileconfig/install/*.yml

Page 10: Come progettare e realizzare una distribuzione in Drupal 8

DDD.INFO.YML

name: DDD

type: profile

description: 'Drupal Dev Days 2016 installation profile.'

version: VERSION

core: 8.x

Page 11: Come progettare e realizzare una distribuzione in Drupal 8

DDD.INFO.YML

name: DDD

type: profile

description: 'Drupal Dev Days 2016 installation profile.'

version: VERSION

core: 8.x

dependencies:

- node

- block

- ckeditor

[...]

- contact

- captcha

- recaptcha

themes:

- ddd2016

- seven

Page 12: Come progettare e realizzare una distribuzione in Drupal 8

CREARE CT DI DEFAULT (DRUPAL 7)$types = array( array( 'type' => 'page', 'name' => st('Basic page'), 'base' => 'node_content', 'description' => st("Use <em>basic pages</em> for your static content, such as an 'About us' page." 'custom' => 1, 'modified' => 1, 'locked' => 0, ), ); foreach ($types as $type) { $type = node_type_set_defaults($type); node_type_save($type); node_add_body_field($type); }

standard.install

Page 13: Come progettare e realizzare una distribuzione in Drupal 8

CREARE CT DI DEFAULT (DRUPAL 8)langcode: en status: true dependencies: { } name: 'Basic page' type: page description: 'Use <em>basic pages</em> for your static content, such as an ''About us'' page.'help: ''new_revision: false preview_mode: 1 display_submitted: false

node.type.page.yml

Page 14: Come progettare e realizzare una distribuzione in Drupal 8

CREARE CT DI DEFAULT (DRUPAL 8)langcode: en status: true dependencies: module: - node - text id: node.body field_name: bodyentity_type: node type: text_with_summary settings: { } module: text locked: false cardinality: 1 translatable: true indexes: { } persist_with_no_fields: true custom_storage: false

field.storage.node.body.yml

Page 15: Come progettare e realizzare una distribuzione in Drupal 8

CREARE CT DI DEFAULT (DRUPAL 8)langcode: en status: true dependencies: config: - field.storage.node.body - node.type.page module: - text id: node.page.body field_name: bodyentity_type: node bundle: page label: Body description: '' required: false translatable: true default_value: { } default_value_callback: '' settings: display_summary: true field_type: text_with_summary

field.field.node.page.body.yml

Page 16: Come progettare e realizzare una distribuzione in Drupal 8

CREARE CT DI DEFAULT (DRUPAL 8)node.type.page.ymlcore.base_field_override.node.page.promote.ymlcore.entity_form_display.node.page.default.ymlcore.entity_view_display.node.page.default.ymlcore.entity_view_display.node.page.teaser.ymlfield.field.node.page.body.ymlfield.storage.node.body.yml

Page 17: Come progettare e realizzare una distribuzione in Drupal 8

"FEATURES"Nel profilo d'installazioneIn moduli custom specificiconfig_devel

Page 18: Come progettare e realizzare una distribuzione in Drupal 8

FIXTURESmigratedefault_contentdevel_generate

Page 19: Come progettare e realizzare una distribuzione in Drupal 8

SCRIPT DI BUILDphing (https://www.phing.info) -> xmlrobo (http://robo.li) -> php

Page 20: Come progettare e realizzare una distribuzione in Drupal 8

TESTINGunitario -> phpunitfunzionale -> codeceptiondi accettazione (o comportamentale) ->codeception/behat

Page 21: Come progettare e realizzare una distribuzione in Drupal 8

Hackathon & Drupal school -> domani

Page 22: Come progettare e realizzare una distribuzione in Drupal 8
Page 23: Come progettare e realizzare una distribuzione in Drupal 8

Grazie!

Domande?

Page 24: Come progettare e realizzare una distribuzione in Drupal 8