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



  • 相关阅读:
    014-CallbackServlet代码
    PaymentServlet代码
    013-PaymentUtils工具类模板
    案例30-在线支付
    案例29-购物车提交订单
    案例28-清空购物车
    案例27-购物车删除单一商品
    案例26-购物车
    案例25-servlet的抽取
    在Eclipse或工作空间中 ,复制或修改项目后,把项目部署后发现还是原来的项目名称
  • 原文地址:https://www.cnblogs.com/qinqiu/p/8432159.html
Copyright © 2011-2022 走看看