Drupal 8 has introduced a number of new (to Drupalists) technologies, but embedded in this mix are a handful of Drupal-centric innovations. Amongst the first of these to be introduced to Drupal 8 was the Plugin system. The Plugin system is a far reaching PHP Component that has largely replaced the old hook_info/alter pattern within Drupal and can be used outside of Drupal as well.
The Drupal 8 plugin system provides a new API within Drupal for discovery, instantiation and invocation of classes beyond what traditional hooks have provided in past version of Drupal core. The plugin system provides the underlying structure to allow classes to sit in place of what has often been multiple disconnected hooks. Many subsystems in Drupal have been converted to plugins including blocks, conditions, field widgets and more. We'll discuss many of these at some level and build examples of what appropriate plugin system usage looks like, what tools already exist, how to leverage them, and where to get more information on building your own plugin types.
Usage and deconstruction of the new DefaultPluginManager class will be a big part of this talk as we dig into the facilities Drupal is provided out of the box, and begin to build our own example plugin type.