用途:面向 Drupal 11 的插件系统开发说明,聚焦 Block、Field、Condition、Filter 等插件类型,讲解如何通过 PHP 属性与依赖注入编写自定义插件。
主要能力:提供 Block 插件示例代码,包括命名空间、#[Block] 属性、BlockBase 继承、StringTranslationTrait、构造函数注入 EntityTypeManagerInterface,以及静态 create() 方法和 build() 返回渲染数组(含 #markup 与 #cache 标签、上下文)。还说明可配置区块的 defaultConfiguration、blockForm、blockSubmit 实现方式,并列出插件生成器命令:drush generate plugin:block、plugin:field:formatter、plugin:field:widget、plugin:field:type、plugin:condition、plugin:filter。
使用方式:在模块的 src/Plugin/Block 等目录下按示例编写类;插件通过 PHP 属性(Drupal 10.2+,Drupal 11 必需风格)被发现,而非 services.yml,遗留注解写法不推荐。若插件需要依赖注入,需实现 ContainerFactoryPluginInterface 及其 create() 方法。
适用场景:为 Drupal 模块开发自定义区块、字段格式化器/控件/类型、条件与过滤器插件。
限制与心智模型:插件通过 PHP 属性发现,不由服务容器实例化,而由各插件管理器(如 BlockManager)创建;插件 ID 必须唯一;资料未提供收费、价格、平台或效果等信息。