10.1 基本概念

插件即plugin,后文都以插件来指代plugin。

插件是一些可插拔的功能块。Drupal8包含很多不同的插件类型,比如field widget这个插件类型下,又包含了很多插件。

插件通常是在模块中定义,插件系统包含这些概念:

1、插件类型(Plugin Type)

插件类型提供一个控制类来定义插件如何被发现和实例化,比如cache backends, image actions, blocks等。

2、插件发现(Plugin Discovery)

指如何通过代码去发现插件。

3、插件工厂(Plugin Factory)

负责实例化具体的插件。

4、派生插件(Plugin Derivatives)

插件派生允许一种插件在多个地方工作。当一个用户使用插件输入数据时,这是很有用的。例如,如果在屏幕上使用一个插件放置了一个菜单,当管理员创建一个新菜单时,放置菜单仍然是可用的,而不需要再使用一个插件。插件派生允许在用户界面上的同一个地方显示多个插件。插件派生的主要目的是提供部份配置的插件,因为在用户界面中插件的第一个实体与其它实体是无法区分的,这减轻了管理员使用这些插件的负担。

5、发现封装器(Discovery Decorators)

发现封装器是另一种可用的寻找插件的方法,它是对已存在的发现方法的封装。当前的核心提供了CacheDecorator,它会缓存选择插件类型的过程。如果需要,这个类也可以进行扩展。

6、插件映射(Plugin Mappers)

插件映射允许对插件实例进行映射,如映射一个字符串到一个插件实例。插件类型可以使用它的方法返回已配置的并实例化的插件,而不用开发者使用API手工实例化和配置插件实例。

本书共79小节。


评论 (0)