SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
NEW TECHNOLOGIES IN
DRUPAL 8
Camilla Krag Jensen / @naxoc
WHO?
Camilla Krag Jensen. @naxoc
I have been doing Drupal for 5 years.
I work at
You guys?
WHAT IS GOING ON IN THIS TALK?
What is an external library?
Some history through Drupal releases.
For most of the new libraries - a short description.
AN EXTERNAL LIBRARY
Code that lives somewhere else than on d.o. and is maintained
by people that are not nescessarily drupal people.
Can be used by other projects and benefit from collaboration
from a lot of people.
In D8 - anything that lives in /vendor or /assets/vendor.
DRUPAL 4.7

RELEASED IN MAY 2006
There were no external libraries apart from a forked version of
The Incutio XML-RPC Library
We knew how to do things best ourselves
AS FOR JAVASCRIPT: THERE WAS VERY LITTLE
»fn .-ae".s
id
nm *j"
.ms/uoopeej
/icatcmlt.s
.ms/olpej
/icclas.s
.ms/rplj
/icdua.s
.ms/rgesj
/icpors.s
.ms/etraj
/ictxae.s
.ms/paej
/icudt.s
.ms/podj
/icula.s
DRUPAL 5

RELEASED IN JANUARY 2007
2 external libraries were added to Drupal.
One was really important - the other one not so much.
JQUERY!
Write less, do more.
Javascript tools with a really active community.
Everybody agreed that it was a great idea to get it in core, so
from the proposal to when it was committed was less than 2
months.
Issue: Pave the way for integration of jQuery into core
MORE JAVASCRIPT

The external library "Farbtastic" was added.
The total of Javascript files that shipped with Drupal was 11. 2
of them external
DRUPAL 6

RELEASED IN FEBRUARY 2008
No new external libraries were added.
MORE (DRUPAL) JAVASCRIPT IS SHOWING UP
There is a total of 23 JS files.
Still only 2 of them are external libraries.
DRUPAL 7

RELEASED IN JANUARY 2011
Now things start happening.
The PHP library Archive tar by Vincent Blavet was added
There is a total of 85 JS files. A whopping 37 of them are
external libraries. They are almost all jQuery libraries.
Most prominent is probably jQuery UI. It is a collection of UI
components like a datepicker, accordions and so on.
BUT WHAT ABOUT SIMPLETEST?
Well, we only used the concept - not the library.
The impact was immensely positive, but it was still stuff we rolled
ourselves.
DRUPAL 8

RELEASED SOME TIME IN THIS DECADE
Now the fun starts!
We have 193 Javascript files. Of them 87 are external.
JAVASCRIPT STATS
JS-files
Drupal 4.7
Drupal 5
Drupal 6
Drupal 7
Drupal 8

Drupal-specific
7
11
23
85
193

External
0
2
2
37
87

Percent external
0%
18%
9%
44%
45%
PHP LIBRARIES
SYMFONY2
Symfony2 is a lot of loosely coupled components.
It offers us a lot we didn't need to invent ourselves.
The first piece of Symfony2 was put in core in October 2011.
Issue: Add Symfony2 HttpFoundation library to core
COMPOSER

Issue: Use Composer for updating Symfony components
COMPOSER
Dependency manager
Inspired by package managers for other programming
languages like Ruby and Node.
Only used in core for managing external dependencies.
A library declares its dependencies in a composer.js file.
PHPUNIT
Whew.
A mature testing framework that works well for testing OOP
classes.
Testing is much lighter loadwise with PHPUnit.
Has a mocking framework.
Cannot replace our version of simpletest but still is a game
changer.
Issue: Start using PHPUnit for unit tests
ASSETIC
A Symfony component.
A way for Drupal to find stuff like your CSS or JS.
A way to include libraries.
There are 'filters' so that you can use LESS, SCSS, Coffeescript,
etc. and have Assetic compile/massage your files.
Plays nice with Twig.
Issue: Add Assetic component to core
GUZZLE
A much needed upgrade of the way Drupal does HTTP
requests.
Useful for creating/using web services and a lot of other things.
Guzzle "just" wraps cURL.
Maintainers were very helpful in accommodating Drupal's use
of the library.
Issue: Adopt Guzzle library to replace drupal_http_request()
DOCTRINE COMMON
A bit like Symfony - a bunch of libraries like DB abstraction
layers etc.
We have incorporated the "common" library.
We use it for parsing annotations plugin definitions.
Issue: Add the Doctrine Common PHP library
CKEDITOR
This one I think many people know already.
Not having a WYSIWYG has been a serious lack in Drupal - as
well as a feature ;-)
It took a while to make a decision. Initially Aloha editor looked
like it was going in.
Issue: Add CKEditor JS library to core
Editing text now looks like this straight out of the box.
TWIG
Some guy is going to talk about that later this weekend while
swearing profusely.
JAVASCRIPT LIBRARIES
BACKBONE.JS AND UNDERSCORE.JS
Backbone depends on Underscore.
Underscore is a set of low-level utilities for manipulating
arrays and objects.
Backbone is an MVC - Model - View - Controller solution for
javascript.
Gives a lot of freedom in building web apps.
In core so far - it is used on contextual links and in the toolbar.
Issue: Add Backbone.js and Underscore.js to core
MODERNIZR
A library that helps detecting older browsers that lack
capabilities.
Most websites use it, or something like it, today already.
Also makes it possible for other libraries to check for browser
support.
Issue: Add Modernizr to core
QUESTIONS?

Más contenido relacionado

La actualidad más candente

Intro to Git for Drupal 7
Intro to Git for Drupal 7Intro to Git for Drupal 7
Intro to Git for Drupal 7Chris Caple
 
Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Justin Ryan
 
SF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSSSF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSSJustin Ryan
 
Introduction to go, and why it's awesome
Introduction to go, and why it's awesomeIntroduction to go, and why it's awesome
Introduction to go, and why it's awesomeJanet Kuo
 
Composer JSON kills make files
Composer JSON kills make filesComposer JSON kills make files
Composer JSON kills make filesropsu
 
Guillotina: The Asyncio REST Resource API
Guillotina: The Asyncio REST Resource APIGuillotina: The Asyncio REST Resource API
Guillotina: The Asyncio REST Resource APINathan Van Gheem
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners HubSpot
 
Don't be the bottleneck of your open source project!
Don't be the bottleneck of your open source project!Don't be the bottleneck of your open source project!
Don't be the bottleneck of your open source project!Julien Pivotto
 
Puppet DSL: back to the basics
Puppet DSL: back to the basicsPuppet DSL: back to the basics
Puppet DSL: back to the basicsJulien Pivotto
 
Frequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeFrequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeAndreas Jung
 
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesRootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesDaniel Garcia (a.k.a cr0hn)
 
Jenkins and Docker for native Linux packages
Jenkins and Docker for native Linux packagesJenkins and Docker for native Linux packages
Jenkins and Docker for native Linux packagesDaniel Paulus
 
Take A Gulp at Task Automation
Take A Gulp at Task AutomationTake A Gulp at Task Automation
Take A Gulp at Task AutomationJoel Lord
 
Matt Gauger - Git & Github web414 December 2010
Matt Gauger - Git & Github web414 December 2010Matt Gauger - Git & Github web414 December 2010
Matt Gauger - Git & Github web414 December 2010Matt Gauger
 
CPAN Workshop, Chicago 2014
CPAN Workshop, Chicago 2014CPAN Workshop, Chicago 2014
CPAN Workshop, Chicago 2014brian d foy
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014Rafe Colton
 
Nebula: Netflix's OSS Gradle Plugins
Nebula: Netflix's OSS Gradle PluginsNebula: Netflix's OSS Gradle Plugins
Nebula: Netflix's OSS Gradle PluginsRob Spieldenner
 
Puppet, now with google!
Puppet, now with google!Puppet, now with google!
Puppet, now with google!Puppet
 

La actualidad más candente (20)

Intro to Git for Drupal 7
Intro to Git for Drupal 7Intro to Git for Drupal 7
Intro to Git for Drupal 7
 
Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014
 
SF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSSSF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSS
 
Introduction to go, and why it's awesome
Introduction to go, and why it's awesomeIntroduction to go, and why it's awesome
Introduction to go, and why it's awesome
 
Composer JSON kills make files
Composer JSON kills make filesComposer JSON kills make files
Composer JSON kills make files
 
Guillotina: The Asyncio REST Resource API
Guillotina: The Asyncio REST Resource APIGuillotina: The Asyncio REST Resource API
Guillotina: The Asyncio REST Resource API
 
Luigi future
Luigi futureLuigi future
Luigi future
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Don't be the bottleneck of your open source project!
Don't be the bottleneck of your open source project!Don't be the bottleneck of your open source project!
Don't be the bottleneck of your open source project!
 
Lisp in the Cloud
Lisp in the CloudLisp in the Cloud
Lisp in the Cloud
 
Puppet DSL: back to the basics
Puppet DSL: back to the basicsPuppet DSL: back to the basics
Puppet DSL: back to the basics
 
Frequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeFrequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last time
 
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesRootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
 
Jenkins and Docker for native Linux packages
Jenkins and Docker for native Linux packagesJenkins and Docker for native Linux packages
Jenkins and Docker for native Linux packages
 
Take A Gulp at Task Automation
Take A Gulp at Task AutomationTake A Gulp at Task Automation
Take A Gulp at Task Automation
 
Matt Gauger - Git & Github web414 December 2010
Matt Gauger - Git & Github web414 December 2010Matt Gauger - Git & Github web414 December 2010
Matt Gauger - Git & Github web414 December 2010
 
CPAN Workshop, Chicago 2014
CPAN Workshop, Chicago 2014CPAN Workshop, Chicago 2014
CPAN Workshop, Chicago 2014
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014
 
Nebula: Netflix's OSS Gradle Plugins
Nebula: Netflix's OSS Gradle PluginsNebula: Netflix's OSS Gradle Plugins
Nebula: Netflix's OSS Gradle Plugins
 
Puppet, now with google!
Puppet, now with google!Puppet, now with google!
Puppet, now with google!
 

Destacado

Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Angela Byron
 
The Wonderful World of Drupal 8 Multilingual
The Wonderful World of Drupal 8 MultilingualThe Wonderful World of Drupal 8 Multilingual
The Wonderful World of Drupal 8 MultilingualSuzanne Dergacheva
 
Drupal vs WordPress
Drupal vs WordPressDrupal vs WordPress
Drupal vs WordPressWalter Ebert
 
Translate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has BegunTranslate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has BegunChristian López Espínola
 
The Flexibility of Drupal 8
The Flexibility of Drupal 8The Flexibility of Drupal 8
The Flexibility of Drupal 8Michael Miles
 
Drupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionDrupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionJeff Geerling
 
The Flexibility of Drupal 8 | DCNLights 2017
The Flexibility of Drupal 8 | DCNLights 2017The Flexibility of Drupal 8 | DCNLights 2017
The Flexibility of Drupal 8 | DCNLights 2017Michael Miles
 

Destacado (7)

Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
 
The Wonderful World of Drupal 8 Multilingual
The Wonderful World of Drupal 8 MultilingualThe Wonderful World of Drupal 8 Multilingual
The Wonderful World of Drupal 8 Multilingual
 
Drupal vs WordPress
Drupal vs WordPressDrupal vs WordPress
Drupal vs WordPress
 
Translate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has BegunTranslate in Drupal 8: A New Era in Translation Has Begun
Translate in Drupal 8: A New Era in Translation Has Begun
 
The Flexibility of Drupal 8
The Flexibility of Drupal 8The Flexibility of Drupal 8
The Flexibility of Drupal 8
 
Drupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionDrupal 8 - A Brief Introduction
Drupal 8 - A Brief Introduction
 
The Flexibility of Drupal 8 | DCNLights 2017
The Flexibility of Drupal 8 | DCNLights 2017The Flexibility of Drupal 8 | DCNLights 2017
The Flexibility of Drupal 8 | DCNLights 2017
 

Similar a Introduction to new technologies in drupal 8

Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Jay Epstein
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Jay Epstein
 
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itDrupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itRyan Weaver
 
RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)alloy020
 
Get started with AAR
Get started with AARGet started with AAR
Get started with AARRené Mertins
 
Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshowTee Malapela
 
Drupal in Libraries
Drupal in LibrariesDrupal in Libraries
Drupal in LibrariesCary Gordon
 
BarCamb Connotea by Ian Mulvany
BarCamb Connotea by Ian MulvanyBarCamb Connotea by Ian Mulvany
BarCamb Connotea by Ian MulvanyIan Mulvany
 
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s going
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s goingKernel Recipes 2016 - Kernel documentation: what we have and where it’s going
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s goingAnne Nicolas
 
Ready. Set. Drupal! An Intro to Drupal 8, Part 2
Ready. Set. Drupal! An Intro to Drupal 8, Part 2Ready. Set. Drupal! An Intro to Drupal 8, Part 2
Ready. Set. Drupal! An Intro to Drupal 8, Part 2Acquia
 
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 8Acquia
 
We need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal coreWe need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal coreDick Olsson
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker, Inc.
 
Drupal, git and sanity
Drupal, git and sanityDrupal, git and sanity
Drupal, git and sanityCharlie Morris
 
A Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfA Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfLuciano Resende
 
Drupal 8 - Corso frontend development
Drupal 8 - Corso frontend developmentDrupal 8 - Corso frontend development
Drupal 8 - Corso frontend developmentsparkfabrik
 
Stuff we do with OSS in libraries (Bergen, 2009)
Stuff we do with OSS in libraries (Bergen, 2009)Stuff we do with OSS in libraries (Bergen, 2009)
Stuff we do with OSS in libraries (Bergen, 2009)Nicolas Morin
 
Drupal in 30 Minutes
Drupal in 30 MinutesDrupal in 30 Minutes
Drupal in 30 MinutesRobert Carr
 

Similar a Introduction to new technologies in drupal 8 (20)

Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
Drupalcampatl d7
Drupalcampatl d7Drupalcampatl d7
Drupalcampatl d7
 
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itDrupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
 
RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)
 
Get started with AAR
Get started with AARGet started with AAR
Get started with AAR
 
Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshow
 
Drupal in Libraries
Drupal in LibrariesDrupal in Libraries
Drupal in Libraries
 
BarCamb Connotea by Ian Mulvany
BarCamb Connotea by Ian MulvanyBarCamb Connotea by Ian Mulvany
BarCamb Connotea by Ian Mulvany
 
Recipes for Drupal distributions
Recipes for Drupal distributionsRecipes for Drupal distributions
Recipes for Drupal distributions
 
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s going
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s goingKernel Recipes 2016 - Kernel documentation: what we have and where it’s going
Kernel Recipes 2016 - Kernel documentation: what we have and where it’s going
 
Ready. Set. Drupal! An Intro to Drupal 8, Part 2
Ready. Set. Drupal! An Intro to Drupal 8, Part 2Ready. Set. Drupal! An Intro to Drupal 8, Part 2
Ready. Set. Drupal! An Intro to Drupal 8, Part 2
 
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
 
We need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal coreWe need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal core
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in Production
 
Drupal, git and sanity
Drupal, git and sanityDrupal, git and sanity
Drupal, git and sanity
 
A Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfA Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdf
 
Drupal 8 - Corso frontend development
Drupal 8 - Corso frontend developmentDrupal 8 - Corso frontend development
Drupal 8 - Corso frontend development
 
Stuff we do with OSS in libraries (Bergen, 2009)
Stuff we do with OSS in libraries (Bergen, 2009)Stuff we do with OSS in libraries (Bergen, 2009)
Stuff we do with OSS in libraries (Bergen, 2009)
 
Drupal in 30 Minutes
Drupal in 30 MinutesDrupal in 30 Minutes
Drupal in 30 Minutes
 

Último

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 

Último (20)

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 

Introduction to new technologies in drupal 8

  • 1. NEW TECHNOLOGIES IN DRUPAL 8 Camilla Krag Jensen / @naxoc
  • 2. WHO? Camilla Krag Jensen. @naxoc I have been doing Drupal for 5 years. I work at You guys?
  • 3. WHAT IS GOING ON IN THIS TALK? What is an external library? Some history through Drupal releases. For most of the new libraries - a short description.
  • 4. AN EXTERNAL LIBRARY Code that lives somewhere else than on d.o. and is maintained by people that are not nescessarily drupal people. Can be used by other projects and benefit from collaboration from a lot of people. In D8 - anything that lives in /vendor or /assets/vendor.
  • 5. DRUPAL 4.7 RELEASED IN MAY 2006 There were no external libraries apart from a forked version of The Incutio XML-RPC Library We knew how to do things best ourselves
  • 6. AS FOR JAVASCRIPT: THERE WAS VERY LITTLE »fn .-ae".s id nm *j" .ms/uoopeej /icatcmlt.s .ms/olpej /icclas.s .ms/rplj /icdua.s .ms/rgesj /icpors.s .ms/etraj /ictxae.s .ms/paej /icudt.s .ms/podj /icula.s
  • 7. DRUPAL 5 RELEASED IN JANUARY 2007 2 external libraries were added to Drupal. One was really important - the other one not so much.
  • 8. JQUERY! Write less, do more. Javascript tools with a really active community. Everybody agreed that it was a great idea to get it in core, so from the proposal to when it was committed was less than 2 months. Issue: Pave the way for integration of jQuery into core
  • 9. MORE JAVASCRIPT The external library "Farbtastic" was added. The total of Javascript files that shipped with Drupal was 11. 2 of them external
  • 10. DRUPAL 6 RELEASED IN FEBRUARY 2008 No new external libraries were added.
  • 11. MORE (DRUPAL) JAVASCRIPT IS SHOWING UP There is a total of 23 JS files. Still only 2 of them are external libraries.
  • 12. DRUPAL 7 RELEASED IN JANUARY 2011 Now things start happening. The PHP library Archive tar by Vincent Blavet was added There is a total of 85 JS files. A whopping 37 of them are external libraries. They are almost all jQuery libraries. Most prominent is probably jQuery UI. It is a collection of UI components like a datepicker, accordions and so on.
  • 13. BUT WHAT ABOUT SIMPLETEST? Well, we only used the concept - not the library. The impact was immensely positive, but it was still stuff we rolled ourselves.
  • 14. DRUPAL 8 RELEASED SOME TIME IN THIS DECADE Now the fun starts! We have 193 Javascript files. Of them 87 are external.
  • 15. JAVASCRIPT STATS JS-files Drupal 4.7 Drupal 5 Drupal 6 Drupal 7 Drupal 8 Drupal-specific 7 11 23 85 193 External 0 2 2 37 87 Percent external 0% 18% 9% 44% 45%
  • 17. SYMFONY2 Symfony2 is a lot of loosely coupled components. It offers us a lot we didn't need to invent ourselves. The first piece of Symfony2 was put in core in October 2011. Issue: Add Symfony2 HttpFoundation library to core
  • 18. COMPOSER Issue: Use Composer for updating Symfony components
  • 19. COMPOSER Dependency manager Inspired by package managers for other programming languages like Ruby and Node. Only used in core for managing external dependencies. A library declares its dependencies in a composer.js file.
  • 20. PHPUNIT Whew. A mature testing framework that works well for testing OOP classes. Testing is much lighter loadwise with PHPUnit. Has a mocking framework. Cannot replace our version of simpletest but still is a game changer. Issue: Start using PHPUnit for unit tests
  • 21. ASSETIC A Symfony component. A way for Drupal to find stuff like your CSS or JS. A way to include libraries. There are 'filters' so that you can use LESS, SCSS, Coffeescript, etc. and have Assetic compile/massage your files. Plays nice with Twig. Issue: Add Assetic component to core
  • 22. GUZZLE A much needed upgrade of the way Drupal does HTTP requests. Useful for creating/using web services and a lot of other things. Guzzle "just" wraps cURL. Maintainers were very helpful in accommodating Drupal's use of the library. Issue: Adopt Guzzle library to replace drupal_http_request()
  • 23. DOCTRINE COMMON A bit like Symfony - a bunch of libraries like DB abstraction layers etc. We have incorporated the "common" library. We use it for parsing annotations plugin definitions. Issue: Add the Doctrine Common PHP library
  • 24. CKEDITOR This one I think many people know already. Not having a WYSIWYG has been a serious lack in Drupal - as well as a feature ;-) It took a while to make a decision. Initially Aloha editor looked like it was going in. Issue: Add CKEditor JS library to core
  • 25. Editing text now looks like this straight out of the box.
  • 26. TWIG Some guy is going to talk about that later this weekend while swearing profusely.
  • 28. BACKBONE.JS AND UNDERSCORE.JS Backbone depends on Underscore. Underscore is a set of low-level utilities for manipulating arrays and objects. Backbone is an MVC - Model - View - Controller solution for javascript. Gives a lot of freedom in building web apps. In core so far - it is used on contextual links and in the toolbar. Issue: Add Backbone.js and Underscore.js to core
  • 29. MODERNIZR A library that helps detecting older browsers that lack capabilities. Most websites use it, or something like it, today already. Also makes it possible for other libraries to check for browser support. Issue: Add Modernizr to core