zoukankan      html  css  js  c++  java
  • 创建一个plugin

    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这个类的,类是可以不断定义的,只要有联系就行。



  • 相关阅读:
    php中curl类常用方法封装和详解
    一个简单的PHP的CURL类
    PHP的curl常用的5个例子
    PHP封装CURL扩展
    马老师的WoTou生产消费线程讲解例子
    URL路径设置----第二章:创建和管理内容
    浅谈js设计模式之迭代器模式
    浅谈js设计模式之代理模式
    浅谈js设计模式之策略模式
    浅谈js设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/qinqiu/p/8432159.html
Copyright © 2011-2022 走看看