SlideShare a Scribd company logo
THE DRUPAL 8 PLUGIN
SYSTEM: EXTENSIBILITY FOR
ALL
I am , , and .Xano @BartFeenstra http://mynameisbart.com
WHAT ARE PLUGINS?
Swappable extensions that provide logic for a specific (set of) task(s)
Uniquely identifiable
Metadata
Multiple instances can co-exist (reuse)
DRUPAL 7 PLUGINS
Hook discovery (core and most contributed modules)
File-based discovery (ctools)
Magic hooks/callbacks/includes
Some plugins are classed
SAY WHAT?
DRUPAL 8 PLUGINS
Are classed. Always.
Should implement interfaces.
Consistent API for discovering and instantiating plugins, regardless of
type.
NO MORE DARK MAGIC
JARGON, DO YOU SPEAK IT?
PLUGIN TYPE
PLUGIN (DEFINITION)
PLUGIN DISCOVERY
PLUGIN FACTORY
PLUGIN MANAGER
(DISCOVERY + FACTORY + ...)
PLUGIN INSTANCE
PLUGIN CONFIGURATION
RECREATING/CLONING
PLUGIN INSTANCES
Using Plugin type/manager, ID, and configuration through
ConfigurablePluginInterface.
DISCOVERY METHODS
Annotated class discovery (mostly different logic)
YAML discovery (mostly reused logic)
Static discovery (testing)
Hook discovery (deprecated)
FORMS
THERE'S A MODULE FOR
THAT
http://drupal.org/project/plugin
PLUGIN TYPE DISCOVERY
ADMINISTRATIVE OVERVIEW
CONFIGURATION SCHEMAS
plugin.plugin_configuration.*.*
TYPED PLUGIN DEFINITION
API
Now: PluginDefinitionMapperInterface
Future: PluginDefinitionInterface
PLUGIN SELECTORS
FIELD
TYPES/WIDGETS/FORMATTER
S
CONCLUSION
EXTENDING DRUPAL HAS NEVER BEEN EASIER.
Review this presentation at .http://slideshare.net/bartfeenstra
Find the Plugin module at .http://drupal.org/project/plugin
I am , , and .Xano @BartFeenstra http://mynameisbart.com
DO YOU HAVE ANY QUESTIONS?
© subsetsum @ Flickr (CC BY-NC-ND 2.0)

More Related Content

Similar to The Drupal 8 plugin system: extensibility for all

the Concept of Object-Oriented Programming
the Concept of Object-Oriented Programmingthe Concept of Object-Oriented Programming
the Concept of Object-Oriented Programming
Aida Ramlan II
 
Intro Java Rev010
Intro Java Rev010Intro Java Rev010
Intro Java Rev010
Rich Helton
 
Future Programming Language
Future Programming LanguageFuture Programming Language
Future Programming Language
YLTO
 
24 33 -_metasploit
24 33 -_metasploit24 33 -_metasploit
24 33 -_metasploit
wozgeass
 
babsatu-140703233001-phpapp666666601.pdf
babsatu-140703233001-phpapp666666601.pdfbabsatu-140703233001-phpapp666666601.pdf
babsatu-140703233001-phpapp666666601.pdf
kashafishfaq21
 

Similar to The Drupal 8 plugin system: extensibility for all (20)

the Concept of Object-Oriented Programming
the Concept of Object-Oriented Programmingthe Concept of Object-Oriented Programming
the Concept of Object-Oriented Programming
 
Configure once, run everywhere 2016
Configure once, run everywhere 2016Configure once, run everywhere 2016
Configure once, run everywhere 2016
 
Intro Java Rev010
Intro Java Rev010Intro Java Rev010
Intro Java Rev010
 
Metasploit
MetasploitMetasploit
Metasploit
 
JDD2015: ClassIndex - szybka alternatywa dla skanowania klas - Sławek Piotrowski
JDD2015: ClassIndex - szybka alternatywa dla skanowania klas - Sławek PiotrowskiJDD2015: ClassIndex - szybka alternatywa dla skanowania klas - Sławek Piotrowski
JDD2015: ClassIndex - szybka alternatywa dla skanowania klas - Sławek Piotrowski
 
Future Programming Language
Future Programming LanguageFuture Programming Language
Future Programming Language
 
Spl in the wild
Spl in the wildSpl in the wild
Spl in the wild
 
Do you know all of Puppet?
Do you know all of Puppet?Do you know all of Puppet?
Do you know all of Puppet?
 
24 33 -_metasploit
24 33 -_metasploit24 33 -_metasploit
24 33 -_metasploit
 
Metasploit
MetasploitMetasploit
Metasploit
 
Gwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing APIGwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing API
 
Drupal 8, Where Did the Code Go? From Info Hook to Plugin
Drupal 8, Where Did the Code Go? From Info Hook to PluginDrupal 8, Where Did the Code Go? From Info Hook to Plugin
Drupal 8, Where Did the Code Go? From Info Hook to Plugin
 
Introduction of Pharo 5.0
Introduction of Pharo 5.0Introduction of Pharo 5.0
Introduction of Pharo 5.0
 
Whoops! Where did my architecture go?
Whoops! Where did my architecture go?Whoops! Where did my architecture go?
Whoops! Where did my architecture go?
 
Bab satu
Bab satuBab satu
Bab satu
 
babsatu-140703233001-phpapp666666601.pdf
babsatu-140703233001-phpapp666666601.pdfbabsatu-140703233001-phpapp666666601.pdf
babsatu-140703233001-phpapp666666601.pdf
 
Extrabacon's sploit core
Extrabacon's sploit coreExtrabacon's sploit core
Extrabacon's sploit core
 
OOP in Python, a beginners guide..........
OOP in Python, a beginners guide..........OOP in Python, a beginners guide..........
OOP in Python, a beginners guide..........
 
Python Interview Questions And Answers 2019 | Edureka
Python Interview Questions And Answers 2019 | EdurekaPython Interview Questions And Answers 2019 | Edureka
Python Interview Questions And Answers 2019 | Edureka
 
Basics of Object Oriented Programming in Python
Basics of Object Oriented Programming in PythonBasics of Object Oriented Programming in Python
Basics of Object Oriented Programming in Python
 

More from Bart Feenstra

More from Bart Feenstra (7)

PHP-FIG: how the PHP world got off their islands (DrupalCamp Vienna 2015)
PHP-FIG: how the PHP world got off their islands (DrupalCamp Vienna 2015)PHP-FIG: how the PHP world got off their islands (DrupalCamp Vienna 2015)
PHP-FIG: how the PHP world got off their islands (DrupalCamp Vienna 2015)
 
An Introduction to Object-Oriented Programming (DrupalCamp Leuven 2015)
An Introduction to Object-Oriented Programming (DrupalCamp Leuven 2015)An Introduction to Object-Oriented Programming (DrupalCamp Leuven 2015)
An Introduction to Object-Oriented Programming (DrupalCamp Leuven 2015)
 
An Introduction to Object-Oriented Programming (DrupalCamp North 2015)
An Introduction to Object-Oriented Programming (DrupalCamp North 2015)An Introduction to Object-Oriented Programming (DrupalCamp North 2015)
An Introduction to Object-Oriented Programming (DrupalCamp North 2015)
 
An Introduction to Object-Oriented Programming (SaunaCamp Helsinki 2015)
An Introduction to Object-Oriented Programming (SaunaCamp Helsinki 2015)An Introduction to Object-Oriented Programming (SaunaCamp Helsinki 2015)
An Introduction to Object-Oriented Programming (SaunaCamp Helsinki 2015)
 
Entity API in Drupal 8 (Drupal Tech Talk October 2014)
Entity API in Drupal 8 (Drupal Tech Talk October 2014)Entity API in Drupal 8 (Drupal Tech Talk October 2014)
Entity API in Drupal 8 (Drupal Tech Talk October 2014)
 
Payment processing in drupal 8 (DrupalCamp Ghent 2014)
Payment processing in drupal 8 (DrupalCamp Ghent 2014)Payment processing in drupal 8 (DrupalCamp Ghent 2014)
Payment processing in drupal 8 (DrupalCamp Ghent 2014)
 
An Introduction to Object-Oriented Programming (DrupalCamp London 2015)
An Introduction to Object-Oriented Programming (DrupalCamp London 2015)An Introduction to Object-Oriented Programming (DrupalCamp London 2015)
An Introduction to Object-Oriented Programming (DrupalCamp London 2015)
 

Recently uploaded

Article writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptxArticle writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptx
abhinandnam9997
 
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
aagad
 

Recently uploaded (12)

ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
Article writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptxArticle writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptx
 
The AI Powered Organization-Intro to AI-LAN.pdf
The AI Powered Organization-Intro to AI-LAN.pdfThe AI Powered Organization-Intro to AI-LAN.pdf
The AI Powered Organization-Intro to AI-LAN.pdf
 
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
 
How Do I Begin the Linksys Velop Setup Process?
How Do I Begin the Linksys Velop Setup Process?How Do I Begin the Linksys Velop Setup Process?
How Do I Begin the Linksys Velop Setup Process?
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 
Pvtaan Social media marketing proposal.pdf
Pvtaan Social media marketing proposal.pdfPvtaan Social media marketing proposal.pdf
Pvtaan Social media marketing proposal.pdf
 
The Best AI Powered Software - Intellivid AI Studio
The Best AI Powered Software - Intellivid AI StudioThe Best AI Powered Software - Intellivid AI Studio
The Best AI Powered Software - Intellivid AI Studio
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
The Use of AI in Indonesia Election 2024: A Case Study
The Use of AI in Indonesia Election 2024: A Case StudyThe Use of AI in Indonesia Election 2024: A Case Study
The Use of AI in Indonesia Election 2024: A Case Study
 

The Drupal 8 plugin system: extensibility for all