1. THE DRUPAL 8 PLUGIN SYSTEM: EXTENSIBILITY FOR ALL I am , ,
and .Xano @BartFeenstra http://mynameisbart.com
2. WHAT ARE PLUGINS? Swappable extensions that provide logic
for a specific (set of) task(s) Uniquely identifiable Metadata
Multiple instances can co-exist (reuse)
3. DRUPAL 7 PLUGINS Hook discovery (core and most contributed
modules) File-based discovery (ctools) Magic
hooks/callbacks/includes Some plugins are classed
4. SAY WHAT?
5. DRUPAL 8 PLUGINS Are classed. Always. Should implement
interfaces. Consistent API for discovering and instantiating
plugins, regardless of type.
6. NO MORE DARK MAGIC
7. JARGON, DO YOU SPEAK IT?
8. PLUGIN TYPE
9. PLUGIN (DEFINITION)
10. PLUGIN DISCOVERY
11. PLUGIN FACTORY
12. PLUGIN MANAGER (DISCOVERY + FACTORY + ...)
13. PLUGIN INSTANCE
14. PLUGIN CONFIGURATION
15. RECREATING/CLONING PLUGIN INSTANCES Using Plugin
type/manager, ID, and configuration through
ConfigurablePluginInterface.
16. DISCOVERY METHODS Annotated class discovery (mostly
different logic) YAML discovery (mostly reused logic) Static
discovery (testing) Hook discovery (deprecated)
25. TYPED PLUGIN DEFINITION API Now:
PluginDefinitionMapperInterface Future:
PluginDefinitionInterface
26. PLUGIN SELECTORS
27. FIELD TYPES/WIDGETS/FORMATTER S
28. 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)