annotation/plugin.php -> 定义 configuration 键值
Plugin/PN/xxx.php  具体的plugin实现
PNInnterface -> plugin的最初的属性方法定义
PNBase.php -> 定义基本的插件属性和方法
PNManager.php -> 插件的发现和实例化
PNManagerInterface.php  -> 定义和约束的问题
------------------------
core/lib/Drupal/Core/Block

具体拿openidconnect这个模块来说
/src/Annotation/OpenIDConnectClient.php  定义 configuration 键值
src/Plugin/OpenIDConnectClientInterface.php 定义插件最基本的方法和属性
src/Plugin/OpenIDConnectClientBase.php  插件的基本的方法和属性
src/Plugin/OpenIDConnectClientManager.php 负责插件的实例化和发现和其他操作
src/Plugin/OpenIDConnectClient/Facebook.php 具体的插件实现
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
pluginInterface是起约束作用
pluginBase是主力军,主要是各个Plugin都要去实现的功能,也许是公共功能,这个类所extend的plugin结构不是很复杂,就是关于plugin本身的配置定义等等的操作
pluginManager就是告诉其他系统关于这个plugin的subdir, interface路径,annotation的类的路径,等等。
----
其实都是在后面大量的Plugin系统的代码 基础上的。
---
annotation/xxx.php就是为了定义plugin的definition数组,也许还有configuration数组之类的。
pluginBase这个值是如何被抓取进来的呢, 因为subdir下面的所有的xxx.php,也就是pLugin的具体实现类是会去extend PluginBase这个类的,类是可以不断定义的,只要有联系就行。

转载于:https://www.cnblogs.com/qinqiu/p/8432159.html

创建一个plugin - drupal 8相关推荐

  1. 创建一个dynamics 365 CRM online plugin (四) - PreValidation

    开始之前,我们要确认一下 Plugin 的 pipeline. PreValidation -> PreOperation -> Server Side System Main Event ...

  2. 创建一个dynamics 365 CRM online plugin (一) - Hello World Plugin

    源代码连接:https://github.com/TheMiao/Dynamics365CRM/blob/master/MyCRM/MyCRM/HelloWorld.cs 首先,我们需要创建一个.NE ...

  3. 创建一个dynamics 365 CRM online plugin (三) - PostOperation

    上两节我们创建了一个 PreOperation的plugin 今天我们创建一个PostOpeartion的plugin和之前的plugin连接起来 当创建contact之后,我们要添加一个task给新 ...

  4. 五分钟创建一个ChatGPT Plugin

    OpenAI 在2023年3月发布了 ChatGPT 的官方 API ,且于今天发布了Plugin开发使用资格,许多开发者和创业者都兴致勃勃地想办法将其整合到自己的业务运营中. 但是,想要做到这一点, ...

  5. 如何创建一个基础jQuery插件

    如何创建一个基础插件 How to Create a Basic Plugin 有时你想使一块功能性的代码在你代码的任何地方有效.比如,也许你想调用jQuery对象的一个方法,对该对象进行一系列的操作 ...

  6. [K/3Cloud] 创建一个单据转换插件

    概念: 创建一个业务单据转换插件,在单据转换的各个时点干预单据转换的相关逻辑控制. 示例: 新建一个类,继承自单据转换插件基类Kingdee.BOS.Core.Metadata.ConvertElem ...

  7. Day 4:PredictionIO——如何创建一个博客推荐器

    今天是"30天学习30种新技术"的第4天.到目前为止我很享受,而且周围开发者反响也很不错.我现在更有动力在30天内完成它了.在这篇文章中,我将介绍如何在Java下使用Predict ...

  8. spring cloud教程之使用spring boot创建一个应用

    <7天学会spring cloud>第一天,熟悉spring boot,并使用spring boot创建一个应用. Spring Boot是Spring团队推出的新框架,它所使用的核心技术 ...

  9. SSM之一(使用idea创建一个Spring+SpringMVC的项目)

    文章目录 1. 使用idea创建一个基本的maven项目(Web版本) 2. 完善目录结构 3. 相关依赖 4. 配置spring与springmvc 1. 使用idea创建一个基本的maven项目( ...

最新文章

  1. 在 Wiki 标记中添加无序列表
  2. 查询进程并杀死该进程
  3. Converting KVM VirtualHost To VMware vSphere VirtualHost
  4. GDCM:2个DICOM文件的diff测试程序
  5. 华为鸿蒙搭载哪些手机,华为鸿蒙系统支持哪些手机 可以装华为鸿蒙系统手机...
  6. mysql max_pac_如何解决 MySQL max
  7. java设计模式2--工厂模式
  8. PHP全文索引 讯搜xunsearch
  9. “刑不上大夫,礼不下庶人”真实意思是什么
  10. 欧姆龙rxd指令讲解_欧姆龙cp1h常用指令学习(四)串口无协议读写指令TXD,RXD...
  11. Algorithm Analysis: common functions, asymptotic notation
  12. 解决span标签之间的空隙问题
  13. MyBatis-Spring(五)--MapperScannerConfigurer实现增删改查
  14. glColor3f函数颜色
  15. Shell脚本之IP验证
  16. Android开发、adb、monkey测试
  17. 勤于奋寻找联盟程序方法介绍
  18. CSS - 文本文字 增加外框、阴影、边框
  19. Nyquist稳定性判据通俗理解及应用
  20. 5分钟商学院-个人篇-思考能力

热门文章

  1. Swift-函数的理解
  2. eclipse通过classpath variable引用类库
  3. [数据结构]顺序单链表插入
  4. ACdream 1103 瑶瑶正式成为CEO(树链剖分+费用流)
  5. Oracle查询一个用户的所有表的结构信息的SQL语句
  6. python 逐行读取csv_Python逐行写入CSV
  7. 矩形法求定积分的原理和实现
  8. write up web:网站被黑
  9. 1779: 无法言表(map+queue)
  10. dubbo-go v1.5.6来喽!