<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 19. 第三方類庫 ## 引用第三方類庫 將你的第三方類庫直接放到插件根目錄或者新建文件夾放好。 例如`demo`插件下新建`libaray`文件夾,之后把類庫放入`library`文件夾。 ## 修改類庫的命名空間 通過上面,類庫放進來并不能調用到,我們需要增加或修改命名空間。 如下圖,放入了兩個類庫文件,我們只需把命名空間改成:namespace addons\\插件名稱\\library;,library里面還有文件夾就繼續按目錄層次寫下去即可。 ![](https://img.kancloud.cn/9c/44/9c446dcbd8260b8801c637c8a2da6993_367x241.png) 根據插件命名空間調整,如下所示 ``` <pre class="calibre16">``` <span class="token"><</span><span class="token">?</span>php <span class="token5">// addons\插件名稱\目錄</span> namespace addons\demo\library<span class="token1">;</span> class <span class="token6">World</span> <span class="token1">{</span> public <span class="token2">function</span> <span class="token6">show</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> echo <span class="token3">1</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` ``` <pre class="calibre16">``` <span class="token"><</span><span class="token">?</span>php namespace addons\demo\library\oat<span class="token1">;</span> class <span class="token6">Lumoto</span> <span class="token1">{</span> <span class="token1">}</span> ``` ``` 改好后調用 ``` <pre class="calibre16">``` $w <span class="token">=</span> <span class="token2">new</span> <span class="token6"><span class="token1">\</span>addons<span class="token1">\</span>demo<span class="token1">\</span>library<span class="token1">\</span>World</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $w<span class="token">-</span><span class="token">></span><span class="token6">show</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> ``` ``` ## 通過初始化事件自動注冊 如果類庫文件過多或者是一個composer包,修改起來麻煩,可參考如下代碼,在插件名稱、插件初始化時執行 > 2.2.1.20220603版本起支持 如下:在`addonsInitHook`事件中調用了`addNamespace`自動注冊第三方類庫方法 ``` <pre class="calibre16">``` <span class="token"><</span><span class="token">?</span>php declare <span class="token1">(</span>strict_types<span class="token">=</span><span class="token3">1</span><span class="token1">)</span><span class="token1">;</span> namespace addons\demo<span class="token1">;</span> use think\Addons<span class="token1">;</span> class <span class="token6">Demo</span> extends <span class="token6">Addons</span> <span class="token1">{</span> public <span class="token2">function</span> <span class="token6">install</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> <span class="token2">return</span> <span class="token3">true</span><span class="token1">;</span> <span class="token1">}</span> public <span class="token2">function</span> <span class="token6">uninstall</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> <span class="token2">return</span> <span class="token3">true</span><span class="token1">;</span> <span class="token1">}</span> public <span class="token2">function</span> <span class="token6">addonsInitHook</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> $this<span class="token">-</span><span class="token">></span><span class="token6">addNamespace</span><span class="token1">(</span><span class="token4">'命名空間'</span><span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` 例如:以PhpWord類庫為例,我們下載后的壓縮包目錄結構如下: ![](https://img.kancloud.cn/cb/6d/cb6d3551b578e8eb314ef433a1825496_303x296.png) 去到src目錄,有如下文件夾 ![](https://img.kancloud.cn/cf/54/cf540228bf2bf50f431f4a66663a1712_199x57.png) 把PhpWord文件夾放入到addons\\demo\\library\\PhpOffice目錄下,之所以還要創建PhpOffice目錄因為他的命名空間是 ``` <pre class="calibre16">``` PhpOffice\PhpWord ``` ``` 所以我們需要在創建`PhpOffice`文件夾,完成這一步后在`addonsInitHook`事件中添加命名空間 ``` <pre class="calibre16">``` $this<span class="token">-</span><span class="token">></span><span class="token6">addNamespace</span><span class="token1">(</span><span class="token4">'PhpOffice\PhpWord'</span><span class="token1">)</span><span class="token1">;</span> ``` ``` 在插件里面或者其他地方使用類似于PhpOffice\\PhpWord空間的類庫時都會在這加載。 ## composer 方式安裝第三方類庫 > 2.2.1.20220603版本起支持 使用composer方式之前你需要先了解什么是composer,鏈接地址:https://pkg.xyz/#how-to-install-composer 1. 分別建立vendor文件夾與composer.json文件 ![](https://img.kancloud.cn/e5/73/e5732dac0eb47d6a22062b80c8fd6a42_556x255.png) 2. composer.json內容 ``` <pre class="calibre16">``` <span class="token1">{</span> <span class="token4">"name"</span><span class="token1">:</span> <span class="token4">"hkcms/demo"</span><span class="token1">,</span> <span class="token4">"description"</span><span class="token1">:</span> <span class="token4">"demo plugin"</span><span class="token1">,</span> <span class="token4">"type"</span><span class="token1">:</span> <span class="token4">"hkcms-addon"</span><span class="token1">,</span> <span class="token4">"license"</span><span class="token1">:</span> <span class="token4">"apache2.0"</span><span class="token1">,</span> <span class="token4">"authors"</span><span class="token1">:</span> <span class="token1">[</span> <span class="token1">{</span> <span class="token4">"name"</span><span class="token1">:</span> <span class="token4">"demo"</span><span class="token1">,</span> <span class="token4">"email"</span><span class="token1">:</span> <span class="token4">"demo@hkcms.cn"</span> <span class="token1">}</span> <span class="token1">]</span><span class="token1">,</span> <span class="token4">"config"</span><span class="token1">:</span> <span class="token1">{</span> <span class="token1">}</span><span class="token1">,</span> <span class="token4">"require"</span><span class="token1">:</span> <span class="token1">{</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` `name`composer包的名字,格式為“vendor名稱/包名” `description`描述信息,簡單描述下你的插件 `type`固定為**hkcms-addon** `license`固定`apache2.0` `authors`作者,按上面的格式改掉即可 `` 3\. 跟composer一樣在當前插件目錄安裝、更新、刪除第三方庫包。 例如安裝第三方微信SDK ``` <pre class="calibre16">``` composer require overtrue<span class="token">/</span>wechat<span class="token1">:</span><span class="token">~</span><span class="token3">4.0</span> <span class="token">-</span>vvv ``` ``` 安裝成功后即可使用。 > 注意,插件必須是安裝后才能生效
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看