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



  • 相关阅读:
    Linux-获取当前正在执行脚本的绝对路径
    Linux-SSL和SSH和OpenSSH,OpenSSL有什么区别
    Nginx-SSI
    Linux-TCP/IP TIME_WAIT状态原理
    Linux-IP地址后边加个/8(16,24,32)是什么意思?
    Nginx-/etc/sysctl.conf 参数解释
    Linux-内核缓存区和write行为
    常用音频软件:Cool edit pro
    常用音频软件:Wavesufer
    【转】智能音箱技术概览
  • 原文地址:https://www.cnblogs.com/qinqiu/p/8432159.html
Copyright © 2011-2022 走看看