Drupal 8, presente y futuro

2.777 visualizaciones

Publicado el

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

Publicado en: Tecnología
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
2.777
En SlideShare
0
De insertados
0
Número de insertados
631
Acciones
Compartido
0
Descargas
37
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

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

×