<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 安裝[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E5%AE%89%E8%A3%85) > composer require zzstudio/think-addons ## [](https://github.com/zz-studio/think-addons#%E9%85%8D%E7%BD%AE)配置[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E9%85%8D%E7%BD%AE) ### [](https://github.com/zz-studio/think-addons#%E7%94%9F%E6%88%90%E9%85%8D%E7%BD%AE)生成配置[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E7%94%9F%E6%88%90%E9%85%8D%E7%BD%AE) 系統安裝后會自動在 config 目錄中生成 addons.php 的配置文件, 如果系統未生成可在命令行執行 ~~~html php think addons:config ~~~ 快速生成配置文件 ### [](https://github.com/zz-studio/think-addons#%E5%85%AC%E5%85%B1%E9%85%8D%E7%BD%AE)公共配置[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E5%85%AC%E5%85%B1%E9%85%8D%E7%BD%AE) ``` 'addons' => [ // 是否自動讀取取插件鉤子配置信息(默認是開啟) 'autoload' => true, // 當關閉自動獲取配置時需要手動配置hooks信息 'hooks' => [ // 可以定義多個鉤子 'testhook'\=>'test' // 鍵為鉤子名稱,用于在業務中自定義鉤子處理,值為實現該鉤子的插件, // 多個插件可以用數組也可以用逗號分割 ], 'route' => [], 'service' => [], ]; ``` 或者在\\config目錄中新建`addons.php`,內容為: ``` <?php return [ // 是否自動讀取取插件鉤子配置信息 'autoload' => false, // 當關閉自動獲取配置時需要手動配置hooks信息 'hooks' => [ // 可以定義多個鉤子 'testhook'\=>'test' // 鍵為鉤子名稱,用于在業務中自定義鉤子 處理,值為實現該鉤子的插件,// 多個插件可以用數組也可以用逗號 分割 ], 'route' => [], 'service' => [], ] ?> ``` ## 創建插件[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E5%88%9B%E5%BB%BA%E6%8F%92%E4%BB%B6) > 創建的插件可以在view視圖中使用,也可以在php業務中使用 安裝完成后訪問系統時會在項目根目錄生成名為`addons`的目錄,在該目錄中創建需要的插件。 下面寫一個例子: ### [](https://github.com/zz-studio/think-addons#%E5%88%9B%E5%BB%BAtest%E6%8F%92%E4%BB%B6)創建test插件[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E5%88%9B%E5%BB%BAtest%E6%8F%92%E4%BB%B6) > 在addons目錄中創建test目錄 ### [](https://github.com/zz-studio/think-addons#%E5%88%9B%E5%BB%BA%E9%92%A9%E5%AD%90%E5%AE%9E%E7%8E%B0%E7%B1%BB)創建鉤子實現類[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E5%88%9B%E5%BB%BA%E9%92%A9%E5%AD%90%E5%AE%9E%E7%8E%B0%E7%B1%BB) > 在test目錄中創建 Plugin.php 類文件。注意:類文件首字母需大寫 ``` <?php namespace addons\\test; ? ?// 注意命名空間規范 use think\\Addons; /\*\* ?\* 插件測試 \* @author byron sampson ?\*/ class Plugin extends Addons // 需繼承think\\Addons類 { // 該插件的基礎信息 public $info \= \[ 'name' \=> 'test', ? ?// 插件標識 'title' \=> '插件測試', ? ?// 插件名稱 'description' \=> 'thinkph6插件測試', ? ?// 插件簡介 'status' \=> 1, ? ?// 狀態 'author' \=> 'yms', 'version' \=> '0.1' ? ? \]; /\*\* ? ? ?\* 插件安裝方法 \* @return bool ? ? ?\*/ public function install() ? ? { return true; ? ? } /\*\* ? ? ?\* 插件卸載方法 \* @return bool ? ? ?\*/ public function uninstall() ? ? { return true; ? ? } /\*\* ? ? ?\* 實現的testhook鉤子方法 \* @return mixed ? ? ?\*/ public function testhook($param) ? ? { // 調用鉤子時候的參數信息 //print\_r($param); // 當前插件的配置信息,配置信息存在當前目錄的config.php文件中,見下方 //print\_r($this->getConfig()); // 可以返回模板,模板文件默認讀取的為插件目錄中的文件。模板名不能為空! return $this\->fetch('info'); ? ? } } ``` ### 創建插件配置文件[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E5%88%9B%E5%BB%BA%E6%8F%92%E4%BB%B6%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6) > 在test目錄中創建config.php類文件,插件配置文件可以省略。 ``` <?php return \[ 'display' \=> \[ 'title' \=> '是否顯示:', 'type' \=> 'radio', 'options' \=> \[ '1' \=> '顯示', '0' \=> '不顯示' ? ? ? ? \], 'value' \=> '1' ? ? \] \]; ``` ### 創建鉤子模板文件[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E5%88%9B%E5%BB%BA%E9%92%A9%E5%AD%90%E6%A8%A1%E6%9D%BF%E6%96%87%E4%BB%B6) > 在test->view目錄中創建info.html模板文件,鉤子在使用fetch方法時對應的模板文件。 ``` hello tpl 如果插件中需要有鏈接或提交數據的業務,可以在插件中創建controller業務文件, 要訪問插件中的controller時使用addon\_url生成url鏈接。 如下: link test 或 link test 格式為: test為插件名,Action為controller中的類名\[多級控制器可以用.分割\],link為controller中的方法 ``` ### 創建插件的controller文件[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E5%88%9B%E5%BB%BA%E6%8F%92%E4%BB%B6%E7%9A%84controller%E6%96%87%E4%BB%B6) > 在test目錄中創建controller目錄,在controller目錄中創建Index.php文件 controller類的用法與tp6中的controller一致 ``` <?php namespace addons\\test\\controller; class Index { public function link() { echo 'hello link'; } } ``` ## 使用鉤子[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#%E4%BD%BF%E7%94%A8%E9%92%A9%E5%AD%90) > 創建好插件后就可以在正常業務中使用該插件中的鉤子了 使用鉤子的時候第二個參數可以省略 ### [](https://github.com/zz-studio/think-addons#%E6%A8%A1%E6%9D%BF%E4%B8%AD%E4%BD%BF%E7%94%A8%E9%92%A9%E5%AD%90)模板中使用鉤子 ``` {:hook('testhook', \['id'\=>1\])} ``` ### php業務中使用[#](https://www.cnblogs.com/zhangxilong/p/15958978.html#php%E4%B8%9A%E5%8A%A1%E4%B8%AD%E4%BD%BF%E7%94%A8) > 只要是thinkphp6正常流程中的任意位置均可以使用 ``` hook('testhook', \['id'=>1\]) ``` ### 插件公共方法 ``` /\*\* \* 處理插件鉤子 \* @param string $event 鉤子名稱 \* @param array|null $params 傳入參數 \* @param bool $once 是否只返回一個結果 \* @return mixed \*/ function hook($event, $params = null, bool $once = false); /\*\* \* 讀取插件的基礎信息 \* @param string $name 插件名 \* @return array \*/ function get\_addons\_info($name); /\*\* \* 獲取插件Plugin的單例 \* @param string $name 插件名 \* @return mixed|null \*/ function get\_addons\_instance($name); /\*\* \* 插件顯示內容里生成訪問插件的url \* @param $url 在插件控制器中可忽略插件名,在非插件中生成時需指定插件名。例:插件名://控制器/方法 \* @param array $param \* @param bool|string $suffix 生成的URL后綴 \* @param bool|string $domain 域名 \* @return bool|string \*/ function addons\_url($url = '', $param = \[\], $suffix = true, $domain = false); ```
                  <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>

                              哎呀哎呀视频在线观看