SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
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
Angie @Webchick
Byron
… 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
1. Experiencia mejorada
en la creación de
contenido
¿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
2. Enfoque a móviles
primero
3. Mejoras en
construcción de sitios
¡Vistas en el Core!
¿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!
Mejoras en los bloques
Nuevos tipos de campos
4. Multidioma++
¡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!
5. Administración de la
configuración
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
6. Mejoras para
desarrolladores Front-end
Formularios HTML5
PHPTemplate es ahora Twig
7.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
No más soporte (en el core)
para IE 6, 7 y 8
7. Servicios Web
8. Código moderno
orientado a objetos - OO
Advertencia:
Las cosas se van a
poner... extrañas.
"Saliendo del aislamiento"
Las mejores prácticas del
PHP moderno
• PHP 5.4+
• Classes/Interfaces
• Namespaces
• Traits
• Dependency Injection
• La mayoría de estándares PSR-*
Soportado por Symfony2
Tutorial: http://fabien.potencier.org/article/50/create-your-own-
framework-on-top-of-the-symfony2-components-part-1
…y docenas de otras
librerías (las mejores)
…and dozens of other
librariesUn vistazo bajo el capó
YAML, YAML en todas
partes
7.x: example.info 8.x: example.info.yml
name = Example
description = "Example module"
core = 7.x
files[] = example.test
config = admin/config/example
dependencies[] = node
name: Example
type: module
description: "Example module"
core: 8.x
config: admin.example
dependencies:
- 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)
Classes, classes en todas
partes
sites/all/module
s
example
▼
▼
example.test
7.x
module
s
exampl
e
▼
▼
8.x
src▼
ExampleForm.
php
ExampleInterface.
php
ExampleController.
php
…
Páginas, formularios, bloques, etc. Ahora todo es
orientado a objetos.
"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" ;)
"Hello World" en Drupal 8
example.hello:
path: '/hello'
defaults:
_content: 'DrupalexampleExampleController::hello'
requirements:
_permission: 'access content'
example.routing.yml
<?php
namespace Drupalexample;
use DrupalCoreControllerControllerBase;
/**
* 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
Definiendo un bloque: 7.x
example.module
<?php
function 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
Definiendo un bloque: 8.x
<?php
namespace DrupalexamplePluginBlock;
use DrupalblockBlockBase;
/**
* 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
Definiendo un bloque: 8.x
<?php
namespace DrupalexamplePluginBlock;
use DrupalblockBlockBase;
/**
* 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
¡Entérate de más!
https://api.drupal.org/api/drupal/8
https://www.drupal.org/documentation/developer/api
Cada cambio de API en Drupal 8
https://www.drupal.org/list-changes
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/u
ltimate-guide-drupal-8
¡Respuesta a las preguntas
espinosas sobre Drupal 8!
¿Cuándo será lanzado
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-
¿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.)
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
relea
ses
bet
a
RC
1
Acá
estamos!
x
“CUANDO
ESTÉ”
¿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
…
¿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
Empiece a portar su código
personalizado
https://www.drupal.org/project/drupalmoduleupgrader
¿Cuándo puedo usar D8?
Algunos adoptantes tempranos ya lo están usando…
¿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
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 limitado
Equipo 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
¿Te quedas con D7? Te queremos contar cómo obtener
características de D8 en D7
En Drupal 8 Equivalente en Drupal 7
WYSIWYG 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/i18n
Entity 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
¡Gracias! :)
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Presentacion Drupal Ccrtv
Presentacion Drupal CcrtvPresentacion Drupal Ccrtv
Presentacion Drupal Ccrtv
Pedro Cambra
 
Drush Make & Feature Server - Drupal Camp Spain 2010
Drush Make & Feature Server - Drupal Camp Spain 2010Drush Make & Feature Server - Drupal Camp Spain 2010
Drush Make & Feature Server - Drupal Camp Spain 2010
Atenea tech
 
Introducción a Foundation 5
Introducción a Foundation 5Introducción a Foundation 5
Introducción a Foundation 5
Cycle-IT
 
Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2
SEAT, S.A.
 
Taller de Drupal - Sesion 1
Taller de Drupal -  Sesion 1Taller de Drupal -  Sesion 1
Taller de Drupal - Sesion 1
SEAT, S.A.
 

La actualidad más candente (19)

Drupal 7 (2)
Drupal 7 (2)Drupal 7 (2)
Drupal 7 (2)
 
Presentando drupal en xalapa
Presentando drupal en xalapaPresentando drupal en xalapa
Presentando drupal en xalapa
 
Un vistazo al mundo Drupal
Un vistazo al mundo DrupalUn vistazo al mundo Drupal
Un vistazo al mundo Drupal
 
Taller drupal 8 tuxtepec
Taller drupal 8 tuxtepecTaller drupal 8 tuxtepec
Taller drupal 8 tuxtepec
 
Presentando drupal
Presentando drupalPresentando drupal
Presentando drupal
 
Drupalcamp 2014 reconstruir un medio digital idealista news
Drupalcamp 2014   reconstruir un medio digital idealista newsDrupalcamp 2014   reconstruir un medio digital idealista news
Drupalcamp 2014 reconstruir un medio digital idealista news
 
Presentando Drupal en el Flisol Xalapa
Presentando Drupal en el Flisol XalapaPresentando Drupal en el Flisol Xalapa
Presentando Drupal en el Flisol Xalapa
 
Taller de introducción a drupal 7 1ª parte
Taller de introducción a drupal 7 1ª parteTaller de introducción a drupal 7 1ª parte
Taller de introducción a drupal 7 1ª parte
 
Web corporativa con Drupal
Web corporativa con DrupalWeb corporativa con Drupal
Web corporativa con Drupal
 
El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7
 
Joomla vs drupal
Joomla vs drupalJoomla vs drupal
Joomla vs drupal
 
El universo JavaScript en Drupal 8
El universo JavaScript en Drupal 8El universo JavaScript en Drupal 8
El universo JavaScript en Drupal 8
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en Drupal
 
Presentacion Drupal Ccrtv
Presentacion Drupal CcrtvPresentacion Drupal Ccrtv
Presentacion Drupal Ccrtv
 
Drush Make & Feature Server - Drupal Camp Spain 2010
Drush Make & Feature Server - Drupal Camp Spain 2010Drush Make & Feature Server - Drupal Camp Spain 2010
Drush Make & Feature Server - Drupal Camp Spain 2010
 
Introducción a Foundation 5
Introducción a Foundation 5Introducción a Foundation 5
Introducción a Foundation 5
 
Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2
 
Taller de Drupal - Sesion 1
Taller de Drupal -  Sesion 1Taller de Drupal -  Sesion 1
Taller de Drupal - Sesion 1
 
Curso CDA: Drush CLI Drupal
Curso CDA: Drush CLI DrupalCurso CDA: Drush CLI Drupal
Curso CDA: Drush CLI Drupal
 

Destacado

Fundacio Cim Drupal Camp 2010
Fundacio Cim   Drupal Camp 2010Fundacio Cim   Drupal Camp 2010
Fundacio Cim Drupal Camp 2010
Atenea tech
 
Why Drupal 8 Is a Game Changer for Higher Education
Why Drupal 8 Is a Game Changer for Higher EducationWhy Drupal 8 Is a Game Changer for Higher Education
Why Drupal 8 Is a Game Changer for Higher Education
Acquia
 

Destacado (17)

Branding práctico: el Drupal Visual Language Guide
Branding práctico: el Drupal Visual Language GuideBranding práctico: el Drupal Visual Language Guide
Branding práctico: el Drupal Visual Language Guide
 
Presentació Web de Sant Climent de Llobregat a Drupal.cat
Presentació Web de Sant Climent de Llobregat a Drupal.catPresentació Web de Sant Climent de Llobregat a Drupal.cat
Presentació Web de Sant Climent de Llobregat a Drupal.cat
 
¿Qué es drupal?
¿Qué es drupal? ¿Qué es drupal?
¿Qué es drupal?
 
Why Drupal 8? Why now? FEB/MAR 2015
Why Drupal 8? Why now? FEB/MAR 2015Why Drupal 8? Why now? FEB/MAR 2015
Why Drupal 8? Why now? FEB/MAR 2015
 
Fundacio Cim Drupal Camp 2010
Fundacio Cim   Drupal Camp 2010Fundacio Cim   Drupal Camp 2010
Fundacio Cim Drupal Camp 2010
 
Drupal 8 improvements for developer productivity php symfony and more
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and more
 
The Future of a Content-Driven World: How To Prepare Your Team
The Future of a Content-Driven World: How To Prepare Your TeamThe Future of a Content-Driven World: How To Prepare Your Team
The Future of a Content-Driven World: How To Prepare Your Team
 
Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8
 
Acquia Content Hub: Connect Technologies & Extend Systems to Source Content
Acquia Content Hub: Connect Technologies & Extend Systems to Source ContentAcquia Content Hub: Connect Technologies & Extend Systems to Source Content
Acquia Content Hub: Connect Technologies & Extend Systems to Source Content
 
Drupal 8 Quick Start: An Overview of Lightning
Drupal 8 Quick Start: An Overview of LightningDrupal 8 Quick Start: An Overview of Lightning
Drupal 8 Quick Start: An Overview of Lightning
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
 
Business Benefits of Drupal 8: Empower Digital Innovation with the Newest Ver...
Business Benefits of Drupal 8: Empower Digital Innovation with the Newest Ver...Business Benefits of Drupal 8: Empower Digital Innovation with the Newest Ver...
Business Benefits of Drupal 8: Empower Digital Innovation with the Newest Ver...
 
Drupal 8: The Foundation for Digital Experience and Digital Business
Drupal 8: The Foundation for Digital Experience and Digital BusinessDrupal 8: The Foundation for Digital Experience and Digital Business
Drupal 8: The Foundation for Digital Experience and Digital Business
 
Drupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionDrupal 8 - A Brief Introduction
Drupal 8 - A Brief Introduction
 
Business benefits of Drupal 8
Business benefits of Drupal 8Business benefits of Drupal 8
Business benefits of Drupal 8
 
Why Drupal 8 Is a Game Changer for Higher Education
Why Drupal 8 Is a Game Changer for Higher EducationWhy Drupal 8 Is a Game Changer for Higher Education
Why Drupal 8 Is a Game Changer for Higher Education
 
Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8
 

Similar a Todo lo que necesitas saber sobre Drupal 8

Proyecto de Topicos II - HTML5
Proyecto de Topicos II - HTML5Proyecto de Topicos II - HTML5
Proyecto de Topicos II - HTML5
joycesita
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
betabeers
 
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
nacho mascort
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
dokeosla
 

Similar a Todo lo que necesitas saber sobre Drupal 8 (20)

Inciación a Drupal 8
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8
 
Proyecto de Topicos II - HTML5
Proyecto de Topicos II - HTML5Proyecto de Topicos II - HTML5
Proyecto de Topicos II - HTML5
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Introducción a HTML5 y CSS3 AWGR
Introducción a HTML5 y CSS3 AWGRIntroducción a HTML5 y CSS3 AWGR
Introducción a HTML5 y CSS3 AWGR
 
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
Scraping avanzado o Cómo hacer de internet tu base de datos #seoplus2018
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
 
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
 
Twig y otros "themas" en Drupal 8
Twig y otros "themas" en Drupal 8Twig y otros "themas" en Drupal 8
Twig y otros "themas" en Drupal 8
 
Instalacion de Pentaho 5 con PostgreSQL 9.3
Instalacion de Pentaho 5 con PostgreSQL 9.3Instalacion de Pentaho 5 con PostgreSQL 9.3
Instalacion de Pentaho 5 con PostgreSQL 9.3
 
Guia jQuery INCES Militar - Kurt Gude
Guia jQuery INCES Militar - Kurt GudeGuia jQuery INCES Militar - Kurt Gude
Guia jQuery INCES Militar - Kurt Gude
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009
 
Introducción a Foundation 5
Introducción a Foundation 5Introducción a Foundation 5
Introducción a Foundation 5
 
Rails intro
Rails introRails intro
Rails intro
 
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScriptFull-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
 
Masterclass ADWE Madrid
Masterclass ADWE MadridMasterclass ADWE Madrid
Masterclass ADWE Madrid
 
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancarioBancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
 
HTML5
HTML5HTML5
HTML5
 

Más de Acquia

Taking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelTaking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next Level
Acquia
 

Más de Acquia (20)

Acquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdfAcquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdf
 
Acquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdfAcquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdf
 
Taking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelTaking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next Level
 
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdfCDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
 
May Partner Bootcamp 2022
May Partner Bootcamp 2022May Partner Bootcamp 2022
May Partner Bootcamp 2022
 
April Partner Bootcamp 2022
April Partner Bootcamp 2022April Partner Bootcamp 2022
April Partner Bootcamp 2022
 
How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story
 
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CXUsing Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
 
September Partner Bootcamp
September Partner BootcampSeptember Partner Bootcamp
September Partner Bootcamp
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcamp
 
July 2021 Partner Bootcamp
July  2021 Partner BootcampJuly  2021 Partner Bootcamp
July 2021 Partner Bootcamp
 
May Partner Bootcamp
May Partner BootcampMay Partner Bootcamp
May Partner Bootcamp
 
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYDRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
 
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineWork While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
 
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
 
April partner bootcamp deck cookieless future
April partner bootcamp deck  cookieless futureApril partner bootcamp deck  cookieless future
April partner bootcamp deck cookieless future
 
How to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsHow to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutions
 
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
 
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Todo lo que necesitas saber sobre Drupal 8

  • 1. 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
  • 3. … 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
  • 4. 1. Experiencia mejorada en la creación de contenido
  • 5. ¿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
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. 2. Enfoque a móviles primero
  • 11.
  • 12.
  • 14. ¡Vistas en el Core!
  • 15. ¿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!
  • 16. Mejoras en los bloques
  • 17. Nuevos tipos de campos
  • 19.
  • 20. ¡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!
  • 21. 5. Administración de la configuración
  • 22. 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
  • 23.
  • 24.
  • 25.
  • 27.
  • 29. PHPTemplate es ahora Twig 7.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
  • 30. No más soporte (en el core) para IE 6, 7 y 8
  • 32.
  • 34. Advertencia: Las cosas se van a poner... extrañas.
  • 36. Las mejores prácticas del PHP moderno • PHP 5.4+ • Classes/Interfaces • Namespaces • Traits • Dependency Injection • La mayoría de estándares PSR-*
  • 37. Soportado por Symfony2 Tutorial: http://fabien.potencier.org/article/50/create-your-own- framework-on-top-of-the-symfony2-components-part-1
  • 38. …y docenas de otras librerías (las mejores)
  • 39. …and dozens of other librariesUn vistazo bajo el capó
  • 40. YAML, YAML en todas partes 7.x: example.info 8.x: example.info.yml name = Example description = "Example module" core = 7.x files[] = example.test config = admin/config/example dependencies[] = node name: Example type: module description: "Example module" core: 8.x config: admin.example dependencies: - 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)
  • 41. Classes, classes en todas partes sites/all/module s example ▼ ▼ example.test 7.x module s exampl e ▼ ▼ 8.x src▼ ExampleForm. php ExampleInterface. php ExampleController. php … Páginas, formularios, bloques, etc. Ahora todo es orientado a objetos.
  • 42. "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" ;)
  • 43. "Hello World" en Drupal 8 example.hello: path: '/hello' defaults: _content: 'DrupalexampleExampleController::hello' requirements: _permission: 'access content' example.routing.yml <?php namespace Drupalexample; use DrupalCoreControllerControllerBase; /** * 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
  • 44. Definiendo un bloque: 7.x example.module <?php function 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
  • 45. Definiendo un bloque: 8.x <?php namespace DrupalexamplePluginBlock; use DrupalblockBlockBase; /** * 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
  • 46. Definiendo un bloque: 8.x <?php namespace DrupalexamplePluginBlock; use DrupalblockBlockBase; /** * 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
  • 48. Cada cambio de API en Drupal 8 https://www.drupal.org/list-changes
  • 49. 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/u ltimate-guide-drupal-8
  • 50.
  • 51. ¡Respuesta a las preguntas espinosas sobre Drupal 8!
  • 53. ¿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-
  • 54. ¿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.)
  • 55. 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 relea ses bet a RC 1 Acá estamos! x “CUANDO ESTÉ”
  • 56. ¿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 …
  • 57. ¿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
  • 58. Empiece a portar su código personalizado https://www.drupal.org/project/drupalmoduleupgrader
  • 59.
  • 61. Algunos adoptantes tempranos ya lo están usando…
  • 62. ¿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
  • 63. 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 limitado Equipo 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
  • 64. ¿Te quedas con D7? Te queremos contar cómo obtener características de D8 en D7 En Drupal 8 Equivalente en Drupal 7 WYSIWYG 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/i18n Entity 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