Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Drupal 8, presente y futuro

3,091 views

Published on

Recorrido por la arquitectura actual de Drupal 7 y presentación de los cambios que se incorporarán en la próxima versión, Drupal 8.

* Qué es Drupal.
* Arquitectura Drupal 7.
* Requisitos.
* Arquitectura Drupal 8.
* Ciclo de Vida de Drupal.
* Fases de desarrollo.
* Iniciativas en Drupal 8.
* Gestion de la configuración.
* Multiidiomas.
* VDC. (Views in Core).
* Web services
* Mobile.
* Layouts.
* HTML5
* UX.
* Symfony.
* Componentes Symfony.
* Twig

Published in: Technology
  • Be the first to comment

Drupal 8, presente y futuro

  1. 1. Drupal: Presente y FuturoUna introducción a Drupal 8Alfonso Heredia @hmalfonso
  2. 2. Drupal: Presente y Futuro.Planning:1. ¿ Qué es Drupal?2. Arquitectura. Framework.3. Iniciativas de desarrollo de Drupal 8.4. Instalación de Drupal 8. (Demo)5. Preguntas.Alfonso Heredia
  3. 3. ¿ Qué es Drupal?http://www.youtube.com/watch?v=26_OZeBmpXsVideo realizado por ThinküberAlfonso Heredia
  4. 4. ¿ Qué es Drupal?CMSCrearOrganizarManipularInformaciónCMFToolsAPIPlantillasServiciosAlfonso Heredia
  5. 5. Arquitectura DrupalDrupalPHPApache IIS NginxOSMySqlPostgreMariaDBOracleSqlserverVarnishApacheSolrAlfonso Heredia
  6. 6. Arquitectura Drupal: RequisitosRequisitos Drupal 7 Drupal 8Php 5.2.5 (5.3) 5.3.10DB MySql 5.0.15 (PDO). Postgre 8.3 (PDO).WebServer Apache 2.x. Nginx 1.2.x . IIS (5,6,7)Disk Space (core) 13 MB aprox. 40MB aprox.Memory 32MB  ---Alfonso Heredia
  7. 7. Arquitectura: En detalle (D7)TemaSistema de plantillasFormApiMenuApiBlockApiLibrería de funcionesL10nVistasBD ApiEntity ApiField ApiNodosusersTaxonComentMódulos(Core,Contribuidos, Propios)Alfonso Heredia
  8. 8. FormApiMenuApiBlockApiLibrería de funciones BD ApiEntity ApiField ApiArquitectura: En detalle (D8)TemaSistema de plantillasVistasNodosusersTaxonComentMódulos(Core,Contribuidos, Propios)IdiomasAlfonso Heredia
  9. 9. Arquitectura: Un poquito de historia.Version Core Mejoras4.5 Page, Story Código4.6 Page, Story CódigoFlexinode4.7 Page, Story CCK (Tipos dedatos, Campos)5 y 6 Page, Story, TipospropiosCCK (Campos)7 Tipos, campospropios. EntityApiR.I.P. CCK8 Extensión abloques.++++Alfonso Heredia
  10. 10. Drupal: Ciclo de vida.http://buytaert.net/files/state-of-drupal-march-2012.pdfAlfonso Heredia
  11. 11. Drupal: Ciclo de vida.http://buytaert.net/files/state-of-drupal-march-2012.pdfAlfonso Heredia
  12. 12. Drupal: Ciclo de vidahttp://buytaert.net/files/state-of-drupal-march-2012.pdfAlfonso Heredia
  13. 13. Drupal 8: Fases de desarrollo.Alfonso Heredia
  14. 14. Drupal 8: Fases de desarrollo.Alfonso Heredia
  15. 15. Drupal 8: IniciativasMobileHTML5MultilingualCofigurationManagementWeb ServicesLayoutsViewsD8Alfonso Heredia
  16. 16. Drupal 8: Iniciativas (estado)Alfonso Heredia
  17. 17. Drupal 8: Gestión de la configuraciónConfiguration ManagementDirector Greg DunlapInformación http://groups.drupal.org/cmiIRC #drupal-cmiAlfonso Heredia
  18. 18. Drupal 8: Gestión de la configuraciónQué problemas intenta resolver ?Angela Byron slides• Configuración de Drupal residente en la BD.• Solapamiento de contenido entre entornos.Alfonso Heredia
  19. 19. Drupal 8: Gestión de la configuraciónQué problemas intenta resolver ?Angela Byron slidesAlfonso Heredia
  20. 20. Drupal 8: Gestión de la configuraciónSolución:• Hagamos las Entidades realmente “únicas”. (UUID).• Configuración almacenada en ficheros.BdStagingFile StoreActive FileStoreDrupalDevBdStagingFile StoreActive FileStoreDrupalLiveConfiguración ActualConfiguración a importarAlfonso Heredia
  21. 21. Drupal 8: Gestión de la configuraciónSolución:• Ficheros de configuración en formato YAML. (prefix.example.yml)• files/config_XXX/active y files/config_XXX/staging.• Adiós variable_get() y variable_set().• Cambiar todas las varibles para adaptarse a CMI.• Entidades, Campos , Contenido, Ficheros…// Load the site name out of configuration.$config = config(core.site_information);$site_name = $config->get(site_name);// Change the site name to something else.$config->set(site_name, My Awesome Site);$config->save();Alfonso Heredia
  22. 22. Drupal 8: Multiidiomas.MultilingualDirector Gábor HojstyInformación http://groups.drupal.org/i18nIRC #drupal-i18nAlfonso Heredia
  23. 23. Drupal 8: Multiidiomas.Qué problemas intenta resolver ?Angela Byron slides• Muchos modulos (locale, content_translation, i18n, variables,title• Traduzco contenido, entididades ? Que hago con los menus, taxonomias?Alfonso Heredia
  24. 24. Drupal 8: Multiidiomas.Solución:• Algo similar a i18n pero en core. Traducción de interfaz y contenido.• No más idiomas especiales (Inglés).• L10n_update en core.• Mejoras significativas del interfaz de usuario.“Multilingual First”Alfonso Heredia
  25. 25. Drupal 8: VDC.Views in coreDirector Earl MilesInformaciónhttp://drupal.org/community-initiatives/drupal-core/vdc-roadmapIRC #drupal-vdcAlfonso Heredia
  26. 26. Drupal 8: VDC.Ventajas:• Consistencia: Todos los listados… hechos con vistas.• Estabilidad: Ahora los bugs son tratados como bugs delCore.• Potencia: Drupal “out of the box” podrá hacerinfinitud de cosas más que antes.• Y un largo etc...Alfonso Heredia
  27. 27. Drupal 8: Web Services.Web ServicesDirector Larry GarfieldInformación http://groups.drupal.org/wscciIRC #drupal-wscciAlfonso Heredia
  28. 28. Drupal 8: Web Services.Qué problemas intenta resolver ?Angela Byron slides• No todas las peticiones se devuelven en Html. Puede ser Json/Xml• Mejorar la comunicación con otros sistemas , aplicaciones móbiles,frameworks...Alfonso Heredia
  29. 29. Drupal 8: Web Services.Qué problemas intenta resolver ?Angela Byron slidesAlfonso Heredia
  30. 30. Drupal 8: Web Services.Solución:• Convertir a Drupal en un servidor REST de primera clase.• Incluyendo Services en Core y mejorándolo.“Sistema de contexto estandarizado, consistente y extendible”Alfonso Heredia
  31. 31. Drupal 8: Mobile.MobileDirector John Albin WilkinsInformaciónhttp://drupal.org/node/1941432IRC #drupal-mobileAlfonso Heredia
  32. 32. Drupal 8: Mobile.Qué problemas intenta resolver ?Angela Byron slides• Actualmente existe una pobre experiencia de usuario para móviles.• Administración “No Mobile”.Alfonso Heredia
  33. 33. Drupal 8: Mobile.Qué problemas intenta resolver ?Angela Byron slides• Problemas de rendimiento.Alfonso Heredia
  34. 34. Drupal 8: Mobile.Solución:• El Core debe dar proveer de:• Servicios Web que interactúen con aplicacionesmóviles nativas.• Elementos HTML 5 necesarios para aplicacionesweb HTML 5.• Capacidad suficiente para usar los paneles deadministración desde el móvil.• Los temas del core (y contrib) deben ser“Responsive”.• Tiempo de respuesta y peso adecuados.Alfonso Heredia
  35. 35. Drupal 8: Mobile.Solución:• Utilización de breakpoints en temas. (config yml).• Uso de imágenes responsive.mobile: (min-width: 0px)narrow: all and (min-width: 560px) and (max-width: 850px)wide: all and (min-width: 851px)Angela Byron slidesAlfonso Heredia
  36. 36. Drupal 8: Mobile.Solución:• Mejora del CSS:• Guía de estilo CSS.• Rearquitectura CSS (reutilizable, escalable,predecible).• Reorganización de la estructura de archivos CSS• Mejoras en el JS:• jQuery 1.9.• JSHint. (calidad en codigo JavaScript).• Modernizr. (capacidades de un navegador relativasa HTML5 y CSS3).• Declaración explícita de JS. No más drupal_add_jsAlfonso Heredia
  37. 37. Drupal 8: Layouts.LayoutsDirector Kris VanderwaterInformación http://groups.drupal.org/scotchIRC #drupal-scotchComo panels pero mejorAlfonso Heredia
  38. 38. Drupal 8: Layouts.Qué problemas intenta resolver ?Angela Byron slides• Incosistencia en la presentación de datos. (block regions,content region,theme variables).• Bloques no son “multiinstanciables”.• Un solo layout.Alfonso Heredia
  39. 39. Drupal 8: Layouts.Solución:• Mecanismo estandarizado de salida. Todo es tratadocomo bloques, layouts o layouts anidados.Ctools+PageManager+PanelsAngela Byron slidesFuertedependencia conWSCCI y CMIAlfonso Heredia
  40. 40. Drupal 8: Layouts.Solución:title: Two columncategory: Columns: 2template: two-colstylesheets:- two-col.cssregions:first:label: Left sidetype: contentsecond:label: Right sidetype: aside<div class="layout-display layout-two-col clearfix <?php print$attributes[class]; ?>"<?php print $attributes; ?>><div class="layout-region layout-col-first"><?php print $content[first]; ?></div><div class="layout-region layout-col-second"><?php print $content[second]; ?></div></div>• Declaración de layouts.two-col.ymltwo-col.tpl.phpAlfonso Heredia
  41. 41. Drupal 8: HTML5.HTML 5Director Jacine Luisi (cierto tiempo)Informaciónhttp://groups.drupal.org/html5/drupal-8IRC #drupal-html5Alfonso Heredia
  42. 42. Drupal 8: HTML5.Plan:• HTML5 out of the box.• Conversion de las plantillas a HTML5• Inclusión de elementos HTML5 para los formularios.• Tel.• url.• Number.• email.• Mejora del “Markup”.• Estandarización de código.Alfonso Heredia
  43. 43. Drupal 8: UX.Mejora de la experiencia de usuarioAngela Byron slidesAlfonso Heredia
  44. 44. Drupal 8: Symfony.Qúe es?• Framework PHP.• Flexible.• Extensible• Componentes desacoplados.Alfonso Heredia
  45. 45. Drupal 8: Symfony. (componentes)ClassLoader:• Autocargado de clases.• Estandar PSR-0.Namespace DirectorioDrupalCore core/lib/Drupal/Core/DrupalComponent core/lib/Drupal/Component/Drupalcomment modules/comment/lib/Drupal/comment/Drupalentity modules/entity/lib/Drupal/entity/Drupalnode modules/node/lib/Drupal/node/Drupaltaxonomy modules/taxonomy/lib/Drupal/taxonomy/Alfonso Heredia
  46. 46. Drupal 8: Symfony. (componentes)ClassLoader:Alfonso Heredia
  47. 47. Drupal 8: Symfony. (componentes)HttpFoundation:• Capa orientada a objetos para la especificación Http.• Objetos Request y Response.• Variables globales “mapeadas” a Request.Requestquery ($_GET)request ($_POST)cookies ($_COOKIE )attributesFiles ($_FILES)server ($_SERVER )headersResponseheaderstatusContentBrowser ServerAlfonso Heredia
  48. 48. Drupal 8: Symfony. (componentes)Routing:• Mapea peticiones a “controladores”.• Rutas estáticas. • Rutas dinámicas se usa routing del Framework(ChainRouter)user_register:pattern: /user/registerdefaults:_content: DrupaluserUserRouteController::registerrequirements:_access_user_register: TRUEuser.routing.ymlAlfonso Heredia
  49. 49. Drupal 8: Symfony. (componentes)Inyección de dependencias:• Estandariza y centraliza la manera en la que seconstruyen los objetos de la aplicación.• La clase no crea los objetos que necesita. Se lesuministran.• Facilita el testeo. (desacoplamiento)class A {public function GetB(){return new B();}}class A {private $b;public function __construct(B $b){$this->b = $b;}public function GetB() {return $this->b;}}Alfonso Heredia
  50. 50. Drupal 8: Symfony. (componentes)Y más:Alfonso Heredia
  51. 51. Drupal 8: TwigQué es?:• Motor de plantillas para PHP, rápido, seguro yflexible.• Nomenclatura clara, concisa y fácil de entender.Por qué?:• Difícil de aprender. ( print o print render()).• Infinidad de plantillas.• Theming Functions ?Alfonso Heredia
  52. 52. Drupal 8: TwigPor qué?:Jen LamptonAlfonso Heredia
  53. 53. Drupal 8: Twig<!DOCTYPE html><html><head><title>My Webpage</title></head><body><ul id="navigation">{% for item in navigation %}<li><a href="{{ item.href }}">{{ item.caption }}</a></li>{% endfor %}</ul><h1>My Webpage</h1>{{ a_variable }}</body></html>Alfonso Heredia
  54. 54. Drupal 8: TwigVentajas:• Menos código que con las funciones.Jen LamptonAlfonso Heredia
  55. 55. Drupal 8: TwigVentajas:• Inspección de variables. {{ dump(user)}}.• Herencia de plantillas.Jen Lampton<!DOCTYPE html><html><head>{% block head %}<link rel="stylesheet" href="style.css" /><title>{% block title %}{% endblock %} - My Webpage</title>{% endblock %}</head><body><div id="content">{% block content %}{% endblock %}</div><div id="footer">{% block footer %}&copy; Copyright 2011 by <ahref="http://domain.invalid/">you</a>.{% endblock %}</div></body></html>{% extends "base.html" %}{% block title %}Index{% endblock %}{% block head %}{{ parent() }}<style type="text/css">.important { color: #336699; }</style>{% endblock %}{% block content %}<h1>Index</h1><p class="important">Welcome to my awesome homepage.</p>{% endblock %}Alfonso Heredia
  56. 56. PreguntasAlfonso Heredia
  57. 57. Gracias/Créditos.• Angela Byron.• Dries Buytaert.• Jen Lampton.• Jose Reyero.• Pedro Lozano.• Larry Gardfield.Alfonso Heredia
  58. 58. “ Muchas gracias a todos por permitirme pasar esteratito hablando de Drupal”Alfonso HerediaIngeniero informático por la Universidad de Málaga@hmalfonsoAlfonso Heredia

×