Más contenido relacionado
La actualidad más candente (20)
Más de Ruben Teijeiro (9)
Drupal
- 3. ©Tieto Corporation
Ruben Teijeiro - Drupal Hero at Tieto
1st Computer: MSX SVI-728
1st 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 Solutions
Senior Software Architect
- 11. ©Tieto Corporation Ruben Teijeiro - @rteijeiro
http://w3techs.com/technologies/history_overview/content_management/all/y
CMS Usage Trends
- 12. ©Tieto Corporation Ruben Teijeiro - @rteijeiro
http://w3techs.com/technologies/history_overview/content_management/ms/y
CMS Market Share
- 14. ©Tieto Corporation
Server Side Programming Languages
Ruben Teijeiro - @rteijeiro
http://w3techs.com/technologies/history_overview/programming_language/ms/y
- 33. ©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
- 34. ©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
- 35. ©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.
- 36. ©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.
- 37. ©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.
- 38. ©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.
- 39. ©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.
- 40. ©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.
- 41. ©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.
- 42. ©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.
- 44. ©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
- 46. ©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
- 48. ©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
- 50. ©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
- 55. ©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
- 60. ©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
- 65. ©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
- 66. ©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
- 69. ©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
- 76. ©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
- 78. ©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
- 80. ©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
- 81. ©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