drupal
TRANSCRIPT
©Tieto Corporation
Ruben Teijeiro - Drupal Hero at Tieto
1st Computer: MSX SVI-7281st Language: Logo (at age 8)
From Spain, where I worked on relevant Drupal projects like Unicef and Telefonica.
Moved to Stockholm two years ago to work on Ericsson Intranet project built with Drupal.
Joined Tieto in November 2014.
Ruben Teijeiro - @rteijeiro
CEM SolutionsSenior Software Architect
©Tieto Corporation
What is Drupal?
Ruben Teijeiro - @rteijeiro
20% CMF*
80% CMS
* Content Management Framework
©Tieto Corporation
Weekly Project Usage
Ruben Teijeiro - @rteijeiro
https://www.drupal.org/project/usage/drupal
©Tieto Corporation
Project Usage
Ruben Teijeiro - @rteijeiro
Drupal 8 Beta Releaseat
DrupalCon Amsterdam
https://www.drupal.org/project/usage/drupal
©Tieto Corporation Ruben Teijeiro - @rteijeiro
http://w3techs.com/technologies/history_overview/content_management/all/y
CMS Usage Trends
©Tieto Corporation Ruben Teijeiro - @rteijeiro
http://w3techs.com/technologies/history_overview/content_management/ms/y
CMS Market Share
©Tieto Corporation
Market Position
Ruben Teijeiro - @rteijeiro
http://w3techs.com/technologies/market/content_management
Fewer sites but highest traffic
©Tieto Corporation
Server Side Programming Languages
Ruben Teijeiro - @rteijeiro
http://w3techs.com/technologies/history_overview/programming_language/ms/y
©Tieto Corporation
Community
Ruben Teijeiro - @rteijeiro
https://www.drupal.org/home
©Tieto Corporation
Symfony 2
Ruben Teijeiro - @rteijeiro
● Set of decoupled and reusable PHP components.
● Drupal 8 has included the following components in core:○ HttpFoundation○ HttpKernel○ Routing○ EventDispatcher○ DependencyInjection○ ClassLoader○ Serializer○ Validator○ Yaml
http://symfony.com
©Tieto Corporation
Composer
Ruben Teijeiro - @rteijeiro
https://getcomposer.org
● Tool for dependency management in PHP.
● Inspired by node’s npm and ruby’s bundler.
● Allows you to declare the libraries your project is dependant on and install them.
● Drupal 8 can be installed with all of its dependencies using Composer:
http://drupal-composer.org
©Tieto Corporation
Guzzle
Ruben Teijeiro - @rteijeiro
http://guzzlephp.org
● PHP HTTP Client that abstracts away the HTTP transport layer.
● Supports different HTTP methods like cURL, sockets, PHP’s stream wrapper...
● Manages persistent connections and simplifies POST requests with fields and files.
● Can send both synchronous and asynchronous requests using the same interface.
● Useful for integration with RESTful APIs.
©Tieto Corporation
PHPUnit
Ruben Teijeiro - @rteijeiro
https://phpunit.de
● Programmer-oriented unit testing framework for PHP.
● Drupal 8 core development is supported by multiple unit tests that verifies the consistency of the codebase.
● Easy integration with IDEs like NetBeans, Eclipse and IntelliJ IDEA.
● Supported by Continuous Integration servers like Jenkins, Hudson and Sonar.
©Tieto Corporation
Twig
Ruben Teijeiro - @rteijeiro
http://twig.sensiolabs.org
● Modern template engine for PHP, written by the creator of the Symfony framework.
● Compiles templates into plain, optimized PHP code, making it fast and secure.
● Uses a simple, template-oriented syntax, familiar to front-end developers.
● Powered by a flexible lexer and parser that allows definition of custom tags and filters and creation of a custom DSL.
©Tieto Corporation
jQuery
Ruben Teijeiro - @rteijeiro
https://jquery.com
● Fast, lightweight and feature-rich JavaScript library for easy HTML document traversal and manipulation.
● Easy-to-use API for animations, event handling and AJAX that function across a multitude of browsers.
● Drupal 8 core includes jQuery 2, jQuery UI and other libraries which are built on top of jQuery.
©Tieto Corporation
Backbone.js
Ruben Teijeiro - @rteijeiro
http://backbonejs.org
● Gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
● Several components in Drupal 8, such as the administration toolbar, have been developed using Backbone.js.
©Tieto Corporation
Underscore.js
Ruben Teijeiro - @rteijeiro
http://underscorejs.org
● JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.
● Ships with over 100 functions like the functional helpers: map, filter, invoke — as well as more specialized goodies like function binding, javascript templating, creating quick indexes, deep equality testing, and so on.
©Tieto Corporation
Modernizr
Ruben Teijeiro - @rteijeiro
http://modernizr.com
● JavaScript library that detects HTML5 and CSS3 features in the user’s browser.
● Makes it easy to write conditional JavaScript and CSS to handle each situation, depending on whether a browser supports a feature or not. It’s perfect for doing progressive enhancement easily.
©Tieto Corporation
CKEditor
Ruben Teijeiro - @rteijeiro
http://ckeditor.com
● CKEditor is a ready-for-use HTML text editor designed to simplify web content creation. It's a WYSIWYG editor that brings common word processor features directly to your web pages.
● Drupal 8 ships with CKEditor as the default WYSIWYG editor.
©Tieto Corporation
Performance
● Drupal 8 has an internal caching system that makes it possible to generate and store pages with different elements one time so they can be served faster in future requests.
● SmartCache optimizes how the elements are cached and how that cache is invalidated when an element has been changed, making Drupal 8 twice as fast.
● Drupal 8 rendering strategy follows the model behind Facebook BigPipe, which allows delivery of pages asynchronously, parallelizing browser rendering and server processing.
● No Javascript is loaded by default for anonymous users and CSS/JS assets can be easily aggregated and minified.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Scalability
● Drupal 8 is the first CMS to run on a NoSQL database such as MongoDB. It also allows for easy integration with other storage systems.
● Multisite features in Drupal make it possible to manage many sites across your organization using the same core with an easy site creation and deployment process.
● Drupal 8 integrates with most common high-availability and scalability technologies such as reverse proxies, load balancers, database replication, distributed file systems...
● It also allows for integration with Enterprise Search systems such as Elastic Search and Apache Solr.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Security
● Drupal has his own security team, responsible for detecting and fixing vulnerabilities.
● Drupal 8 includes several third-party components which are maintained by external communities with their own security teams.
● The new codebase in Drupal 8 follows the industry standard approach and is covered by unit tests, making it more reliable and secure.
● Twig, the template system in Drupal 8, sanitizes the data used in the templates and doesn’t allow the use of PHP code and database queries, reducing vulnerabilities due to SQL injection or bad programming.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Mobile Friendly
● Drupal 8 default themes are fully-responsive in both user and administration areas.
● The new administration toolbar has been redesigned to fit perfectly in any screen size.
● Uploaded images, including images uploaded using the WYSIWYG editor, are automatically adapted to any device.
● All the front-end elements such as forms and tables follow the best practices for responsive design to offer the best mobile-enabled user experience.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Responsive Default Theme
Ruben Teijeiro - @rteijeiro
● Desktop● Tablet● Smartphone
©Tieto Corporation
Responsive Administration Toolbar
Ruben Teijeiro - @rteijeiro
● Desktop● Tablet● Smartphone
©Tieto Corporation
Content Authoring Made Easy
● Drupal 8 includes CKEditor as the default WYSIWYG editor that is fully customizable to fulfill all the needs.
● The improved content authoring experience includes in-place content editing features.
● The new editing interface uses a two-column layout to separate the article content from the configuration settings.
● Editors can easily create content revisions to maintain different versions of the same article that can be restored when needed.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Flexible Content Architecture
● Drupal 8 allows creation of custom content types using different field types to store text, dates, numbers, files, etc. One field can be displayed in many different ways using custom field formatters.
● Content can be categorised using Taxonomy vocabularies, that support fields and allows term hierarchy.
● A new block system, that also support fields, allows to present content positioned in different regions of the layout.
● Custom content listings are provided by Drupal Views module, that is a complete GUI for database queries, and allows custom filtering, sorting and relationships.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Custom Content Types and Fields
Ruben Teijeiro - @rteijeiro
● Content Type Edit● Content Create● Content View
©Tieto Corporation
Views as a simple SQL GUI
Ruben Teijeiro - @rteijeiro
● SELECT title, image, body● WHERE status=1 AND type=’Article’● ORDER BY authored DESC
©Tieto Corporation
Views is more than a simple SQL GUI
Ruben Teijeiro - @rteijeiro
● Define a custom Path, Menu Item and Access Permissions● Customize Pager style and items Pagination● Contextual Filters, Relationships and Exposed Filters in a Form
Content Listings in Blocks
©Tieto Corporation
Multilingual
● Drupal has a community of translators that create and maintain module translations to different languages.
● Drupal 8 provides out-of-the-box the necessary tools for content and interfaz translation and different methods for automatic language detection and selection.
● Content, menus, blocks and other elements can be translated to any installed language.
● Different language translations can be easily installed, modified and exported when needed.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Translations in Numbers
Ruben Teijeiro - @rteijeiro
https://localize.drupal.org
©Tieto Corporation
Interface Translation
Ruben Teijeiro - @rteijeiro
● Enable Modules● Add New Languages● Select Default Language
©Tieto Corporation
Unlimited Enterprise Solutions
● Drupal 8 includes the technology necessary to provide a RESTful API that allows for access to content, users and other elements in an standard HAML/JSON format. It also supports different authentication methods.
● The Development/Deployment process in Drupal 8 is easier thanks to the new Configuration Management that allows to export every configuration change in files that can be easily deployed using a CVS.
● Drupal 8 includes a migration tool that allows not only to migrate from Drupal 6 and 7 sites but any other platform.
● An Unit Testing framework is included in Drupal 8 and provides testing coverage to Core codebase.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Additional Modules included in Core
● Actions: Perform tasks on specific events triggered within the system.
● Activity Tracker: Enables tracking of recent content for users.
● Aggregator: Aggregates syndicated content (RSS, RDF, and Atom feeds) from external sources.
● Ban: Enables banning of IP addresses.● Book: Allows users to create and organize related
content in an outline.● Forum: Provides discussion forums.● Statistics: Logs content statistics for your site.● Syslog: Logs and records system events to syslog.● Tour: Provides guided tours.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Community Overview
● Drupal is run by thousands of volunteers around the world.
● Thanks to their contributions Drupal is becoming easier to use and is faster adopting new technologies that makes the project grow.
● The Community also helps people to get started and contribute.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Tieto Contributors
● Tieto Drupal Team has five contributors to Drupal core and expects to have more due to the weekly internal training sessions.
● During these sessions the team members learn different techniques and methodologies to contribute to an Open Source project.
● The team stays updated on the latest technologies, good programming practices and coding standards.
Ruben Teijeiro - @rteijeiro
©Tieto Corporation
Tieto Contributors Hall of Fame
Ruben Teijeiro - @rteijeiro
Ruben Teijeiro Antti Alamäki
Liisa Duerig-Laitinen Chintamani UmaraniSachin Wable