Todo lo que necesitas saber sobre Drupal 8

65
Todo lo que necesita saber sobre los 8 principales cambios en Drupal 8 Carlos Ospina- Gerente de Cuenta Técnico, Acquia Jairo Alberto Pinzón- Gerente General, SeeD Aldibier Morales- CTO y Cofundador de SeeD

Transcript of Todo lo que necesitas saber sobre Drupal 8

Page 1: Todo lo que necesitas saber sobre Drupal 8

Todo lo que necesita saber sobre los 8 principales cambios en Drupal 8

➔ Carlos Ospina- Gerente de Cuenta Técnico, Acquia ➔ Jairo Alberto Pinzón- Gerente General, SeeD➔ Aldibier Morales- CTO y Cofundador de SeeD

Page 2: Todo lo que necesitas saber sobre Drupal 8

Angie @Webchick Byron

@webchick

Page 3: Todo lo que necesitas saber sobre Drupal 8

… Desde entonces

➔ El blog de Dries del 8 de Septiembre◆ http://buytaert.net/drupal-8-now-ships-with-beta-to-beta-

updates➔ Actualizaciones beta-a-beta ➔ Oportunidad para comenzar a desarrollar en Drupal 8

◆ Sitios que dependen mayormente de las funcionalidades proporcionadas en el core de Drupal 8

◆ Proyectos que tomaran varios meses de desarrollo ◆ Sitios para los cuales el beneficio de usar Drupal 8

sobrepasan el esfuerzo de trabajar con módulos que aún no cuentan con la versión de Drupal 8 correspondiente

Page 4: Todo lo que necesitas saber sobre Drupal 8

1. Experiencia mejorada en la creación de

contenido

Page 5: Todo lo que necesitas saber sobre Drupal 8

¿Cuál es el propósito de este webinar?

• Ir a través de los 8 principales cambios de Drupal 8, en orden de rareza. ;)

• Recorrer algunos de los grandes cambios en la API de D8 para desarrolladores de módulos

• Responder a las preguntas frecuentes

• Preguntas y respuestas

Page 6: Todo lo que necesitas saber sobre Drupal 8
Page 7: Todo lo que necesitas saber sobre Drupal 8
Page 8: Todo lo que necesitas saber sobre Drupal 8
Page 9: Todo lo que necesitas saber sobre Drupal 8
Page 10: Todo lo que necesitas saber sobre Drupal 8

2. Enfoque a móviles primero

Page 11: Todo lo que necesitas saber sobre Drupal 8
Page 12: Todo lo que necesitas saber sobre Drupal 8
Page 13: Todo lo que necesitas saber sobre Drupal 8

3. Mejoras en

construcción de sitios

Page 14: Todo lo que necesitas saber sobre Drupal 8

¡Vistas en el Core!

Page 15: Todo lo que necesitas saber sobre Drupal 8

¿Qué es el módulo Vistas?• Creación totalmente personalizable de:

• "Admin listings"

• Contenido lateral

• Galerías de imágenes

• "Slideshows" (presentación en diapositivas)

• Salida en XML/JSON

¡con cero líneas de código!

Page 16: Todo lo que necesitas saber sobre Drupal 8

Mejoras en los bloques

Page 17: Todo lo que necesitas saber sobre Drupal 8

Nuevos tipos de campos

Page 18: Todo lo que necesitas saber sobre Drupal 8

4. Multidioma++

Page 19: Todo lo que necesitas saber sobre Drupal 8
Page 20: Todo lo que necesitas saber sobre Drupal 8

¡Todo es traducible!• Contenido

• Bloques

• Menús

• Perfiles de usuarios

• Taxonomías

• Vistas

• Estilos de imágenes

• Formatos de texto

• Comentarios

• Feeds

• …y más!

• ¡No se requieren módulos contribuidos!

Page 21: Todo lo que necesitas saber sobre Drupal 8

5. Administración de la configuración

Page 22: Todo lo que necesitas saber sobre Drupal 8

Un sistema central para resolver este problema

variable_set()/variable_get()

ctools_export_object()/ctools_export_load_object()

db_select()/db_update()/db_delete()

$conf[...];hook_update_N()

drush fu

Page 23: Todo lo que necesitas saber sobre Drupal 8
Page 24: Todo lo que necesitas saber sobre Drupal 8
Page 25: Todo lo que necesitas saber sobre Drupal 8
Page 26: Todo lo que necesitas saber sobre Drupal 8

6. Mejoras para desarrolladores Front-end

Page 27: Todo lo que necesitas saber sobre Drupal 8
Page 28: Todo lo que necesitas saber sobre Drupal 8

Formularios HTML5

Page 29: Todo lo que necesitas saber sobre Drupal 8

PHPTemplate es ahora Twig7.x: page.tpl.php 8.x: page.html.twig

<div id="page-wrapper"><div id="page"><div id="header"><div class="section clearfix"><?php if ($logo): ?><a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo"> <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" /></a><?php endif; ?>

<div class="layout-container"> <header role="banner"> {% if logo %} <a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home"> <img src="{{ logo }}" alt="{{ 'Home'|t }}"/> </a> {% endif %}

• Un sintaxis más sencillo para los diseñadores • Variables auto-escaped para mejor seguridad

http://twig.sensiolabs.org

Page 30: Todo lo que necesitas saber sobre Drupal 8

No más soporte (en el core) para IE 6, 7 y 8

Page 31: Todo lo que necesitas saber sobre Drupal 8

7. Servicios Web

Page 32: Todo lo que necesitas saber sobre Drupal 8
Page 33: Todo lo que necesitas saber sobre Drupal 8

8. Código moderno orientado a objetos - OO

Page 34: Todo lo que necesitas saber sobre Drupal 8

Advertencia: Las cosas se van a poner... extrañas.

Page 35: Todo lo que necesitas saber sobre Drupal 8

"Saliendo del aislamiento"

Page 36: Todo lo que necesitas saber sobre Drupal 8

Las mejores prácticas del PHP moderno

• PHP 5.4+

• Classes/Interfaces

• Namespaces

• Traits

• Dependency Injection

• La mayoría de estándares PSR-*

Page 38: Todo lo que necesitas saber sobre Drupal 8

…y docenas de otras librerías (las mejores)

Page 39: Todo lo que necesitas saber sobre Drupal 8

…and dozens of other librariesUn vistazo bajo el capó

Page 40: Todo lo que necesitas saber sobre Drupal 8

YAML, YAML en todas partes

7.x: example.info 8.x: example.info.ymlname = Exampledescription = "Example module"core = 7.xfiles[] = example.testconfig = admin/config/exampledependencies[] = node

name: Exampletype: moduledescription: "Example module"core: 8.xconfig: admin.exampledependencies: - node

• Nueva propiedad "type" obligatoria• No más archivos [] (vamos a llegar a esto más

adelante)• Las paths ahora tienen nombre de máquina

para prevenir daños (también vamos a llegar a esto más adelante)

Page 41: Todo lo que necesitas saber sobre Drupal 8

Classes, classes en todas partes

sites/all/modules

example

example.test

7.xmodule

sexampl

e

8.x

src▼

ExampleForm.php

ExampleInterface.php

ExampleController.php

…Páginas, formularios, bloques, etc. Ahora todo es orientado a objetos.

Page 42: Todo lo que necesitas saber sobre Drupal 8

"Hello World" en Drupal 7

function example_menu() { $items['hello'] = array( 'title' => 'Hello world', 'page callback' => '_example_page', 'access callback' => 'user_access', 'access arguments' => 'access content', ); return $items;} function _example_page() { return t('Hello world.');}

example.module

Drupalismo: "ArrayPIs" ;)

Page 43: Todo lo que necesitas saber sobre Drupal 8

"Hello World" en Drupal 8example.hello: path: '/hello' defaults: _content: '\Drupal\example\ExampleController::hello' requirements: _permission: 'access content'

example.routing.yml

<?php namespace Drupal\example; use Drupal\Core\Controller\ControllerBase; /** * Returns responses for Example module routes. */class ExampleController extends ControllerBase { public function hello() { return new Response($this->t('Hello world.')); }}

src/ExampleController.php

"Orgullosamente tomado de otro lado":

- YAML- Autocarga de clases

PSR-4- Código OO

Page 44: Todo lo que necesitas saber sobre Drupal 8

Definiendo un bloque: 7.xexample.module<?phpfunction example_block_info() { $blocks['example'] = array( 'info' => t('Example block'), ); return $blocks;}function example_block_view($delta = '') { $block = array(); switch ($delta) { case 'example': $block['subject'] = t('Example block'); $block['content'] = array( 'hello' => array( '#markup' => t('Hello world'), ), ); break; } return $block;}

Drupalismo: ”código misterioso" APIs

basadas en convenciones de

nombres

Page 45: Todo lo que necesitas saber sobre Drupal 8

Definiendo un bloque: 8.x<?php

namespace Drupal\example\Plugin\Block;

use Drupal\block\BlockBase;

/** * Provides the Example block. * * @Block( * id = "example", * admin_label = @Translation("Example block"), * category = @Translation("Example") * ) */ class ExampleBlock extends BlockBase { public function build() {

return array('hello' => array( '#markup' => $this->t('Hello world.')

)); } }

src/Plugin/Block/ExampleBlock.php

" Orgullosamente inventado en otro

lado":- Anotaciones

- APIs definidas por interfaces

Page 46: Todo lo que necesitas saber sobre Drupal 8

Definiendo un bloque: 8.x<?php

namespace Drupal\example\Plugin\Block;

use Drupal\block\BlockBase;

/** * Provides the Example block. * * @Block( * id = "example", * admin_label = @Translation("Example block"), * category = @Translation("Example") * ) */ class ExampleBlock extends BlockBase { public function build() {

return array('hello' => array( '#markup' => $this->t('Hello world.')

)); } }

src/Plugin/Block/ExampleBlock.php

Page 47: Todo lo que necesitas saber sobre Drupal 8

¡Entérate de más!

https://api.drupal.org/api/drupal/8 https://www.drupal.org/documentation/developer/api

Page 48: Todo lo que necesitas saber sobre Drupal 8

Cada cambio de API en Drupal 8

https://www.drupal.org/list-changes

Page 49: Todo lo que necesitas saber sobre Drupal 8

Resumen de grandes mejoras• Mejora en la experiencia

de creación de contenidos

• Desarrollo orientado a móviles

• Vistas, modelado de contenido expandido

• Multidioma++

• Administración de la configuración

• Twig y HTML5

• Servicios Web

• Código OO moderno

• …y ¡otros cientos de mejoras!

• Y en total detalle: https://www.acquia.com/resources/ebooks/ultimate-guide-drupal-8

Page 50: Todo lo que necesitas saber sobre Drupal 8
Page 51: Todo lo que necesitas saber sobre Drupal 8

¡Respuesta a las preguntas espinosas sobre Drupal 8!

Page 52: Todo lo que necesitas saber sobre Drupal 8

¿Cuándo será lanzado Drupal 8?

Page 53: Todo lo que necesitas saber sobre Drupal 8

¿Cuando es "cuando esté listo"?

Algún tiempo después de que este gráfico llegue a cero.

https://www.drupal.org/drupal-8.0/get-involved

Page 54: Todo lo que necesitas saber sobre Drupal 8

¿Qué es lo que queda en la lista?

• Mejoras/ajustes de rendimiento

• Mejoras/ajustes de seguridad

• Ruta de actualización de Beta-a-beta

• A futuro (PHP7, Symfony 3, etc.)

Page 55: Todo lo que necesitas saber sobre Drupal 8

beta -> rc -> 8.0.0• Mientras el conteo de “issues”

críticos > 0, crear lanzamientos betas mensuales (acá estamos)

• Si los issues críticos === 0, iniciar lanzamientos quincenales de versiones candidatas (tal como las ventanas de lanzamiento de D6/D7)

• Solo arreglos críticos, no bloqueantes (Ej: documentación), con parches lanzados solo sobre la versión candidata, para evitar regresiones.

• Una vez la cantidad , importancia, y naturaleza de los asuntos críticos parezcan manejables, se establecerá una fecha de lanzamiento >= 3 semanas después.

https://www.drupal.org/core/release-cycle#rc

alpha releases

beta

RC1

Acá estamos!

x

“CUANDO ESTÉ”

Page 56: Todo lo que necesitas saber sobre Drupal 8

¿qué pasa después de 8.0.0?

• Se termina el soporte a Drupal 6 3 meses después del lanzamiento de Drupal 8.0.0.

• Lanzamientos de de corrección de errores/seguridad continúan en la agenda mensual tal como ahora en D6/D7.

• Nuevos "lanzamientos de funcionalidades" de Drupal 8 cada 6 meses (8.1.x, 8.2.x…) with non-BC breaking improvements.

• Drupal 9 no tendrá una rama hasta mucho después, cuando haya suficiente "carne" (propuestas de cambios completadas y que no puedan ser implementadas en 8.x) para hacer un producto atractivo

• Drupal 8 ingresa en modo "LTS" (solo correcciones de seguridad) después de Drupal 9.0.0

D6 NO MÁS

SOPORTE

8.2.0

8.1.0

NUEVAS CARACTERÍSTICAS

Page 57: Todo lo que necesitas saber sobre Drupal 8

¿Qué pasará con las actualizaciones?

• Ruta de Actualización entre versiones 8.x

• No soportada en el “core” todavía; ver https://www.drupal.org/project/head2head en contribución por el momento

• Ruta de Migración entre las versiones más importantes (6/7 => 8)

• Desarrolle su nuevo sitio en Drupal 8, luego migre el contenido, usuarios, etc. …cambio y fuera

• Drupal 6 => 8 ya es posible hacer migraciones! Drupal 7 => 8 migraciones en progreso…

• Debe portar su código personalizado; quédese con los módulos contribuidos que funcionan, si puede

Page 58: Todo lo que necesitas saber sobre Drupal 8

Empiece a portar su código personalizado

https://www.drupal.org/project/drupalmoduleupgrader

Page 59: Todo lo que necesitas saber sobre Drupal 8
Page 60: Todo lo que necesitas saber sobre Drupal 8

¿Cuándo puedo usar D8?

Page 61: Todo lo que necesitas saber sobre Drupal 8

Algunos adoptantes tempranos ya lo están usando…

Page 62: Todo lo que necesitas saber sobre Drupal 8

¿Cuándo se podrá usar D8 masivamente?

Desarrollador de módulos/temas

*ya mismo*!(todavía hay tiempo de

mejoras en las APIs!)

Mayoría

Una vez se cruce este limite

total

D8

D7

Adoptante temprano

Una vez soportadas las actualizaciones beta a

beta(porta tus

contribuciones)

Conservadores

Cuando todo esté estable y la comunidad empiece a

hablar de D9

Deja que la comunidad sea tu guía.https://www.drupal.org/project/usage/drupal

Page 63: Todo lo que necesitas saber sobre Drupal 8

Estoy construyendo un sitio Uso D7 o D8?

http://www.slideshare.net/horncologne/why-drupal-8-why-now-aprmay-2015

Drupal 7 Drupal 8

Orientada al publico Interno/prototipo/investigación

Despliegue rápido Menos urgente

Grande, necesidades complejas Puede ser hecho con lo que ya hay en el core

Completo conjunto de funcionalidades Sitio a modo de brochure

Misión critica Experimental

Equipo de desarrollo limitadoEquipo de desarrollo

experto/Cómodo con el parcheo constante

Desarrolladores más cómodos con código procedimental

Desarrolladores cómodos con código OO / Symfony

Page 64: Todo lo que necesitas saber sobre Drupal 8

¿Te quedas con D7? Te queremos contar cómo obtener características de D8 en D7

En Drupal 8 Equivalente en Drupal 7WYSIWYG CKEditor: https://drupal.org/project/ckeditor

In-Place Editing Quick Edit: https://drupal.org/project/quickedit

Responsive Toolbar “Mobile Friendly Navigation Toolbar"https://drupal.org/project/navbar

Responsive Front-End Theme Omega, Zen, Adaptive, etc. base themes

Responsive Admin Theme Ember: https://drupal.org/project/ember

Responsive Images Picture: https://drupal.org/project/picture

Responsive Tables Responsive Tables: https://drupal.org/project/responsive_tables

Simplified Overlay Escape Admin: https://drupal.org/project/escape_admin

Multilingual Internationalization: https://www.drupal.org/project/i18nEntity Translation: https://www.drupal.org/project/entity_translation

Better Blocks Bean: https://www.drupal.org/project/bean

Configuration Management Features: https://www.drupal.org/project/features

Web Services RESTful Web Services: https://www.drupal.org/project/restws

Page 65: Todo lo que necesitas saber sobre Drupal 8

¡Gracias! :)¿Preguntas?