多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 引用第三方类库 将你的第三方类库直接放到插件根目录或者新建文件夹放好。 例如`demo`插件下新建`libaray`文件夹,之后把类库放入`library`文件夹。 ## 修改类库的命名空间 通过上面,类库放进来并不能调用到,我们需要增加或修改命名空间。 如下图,放入了两个类库文件,我们只需把命名空间改成:namespace addons\插件名称\library\;,library里面还有文件夹就继续按目录层次写下去即可。 ![](https://img.kancloud.cn/9c/44/9c446dcbd8260b8801c637c8a2da6993_367x241.png) 根据插件命名空间调整,如下所示 ~~~ <?php // addons\插件名称\目录 namespace addons\demo\library; class World { public function show() { echo 1; } } ~~~ ~~~ <?php namespace addons\demo\library\oat; class Lumoto { } ~~~ 改好后调用 ~~~ $w = new \addons\demo\library\World(); $w->show(); ~~~ <br> <br> ## 通过初始化事件自动注册 如果类库文件过多或者是一个composer包,修改起来麻烦,可参考如下代码,在插件名称、插件初始化时执行 <blockquote class="danger"><p>2.2.1.20220603版本起支持</p></blockquote> 如下:在`addonsInitHook`事件中调用了`addNamespace`自动注册第三方类库方法 ~~~ <?php declare (strict_types=1); namespace addons\demo; use think\Addons; class Demo extends Addons { public function install() { return true; } public function uninstall() { return true; } public function addonsInitHook() { $this->addNamespace('命名空间'); } } ~~~ 例如:以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目录因为他的命名空间是 ~~~ PhpOffice\PhpWord ~~~ 所以我们需要在创建`PhpOffice`文件夹,完成这一步后在`addonsInitHook`事件中添加命名空间 ~~~ $this->addNamespace('PhpOffice\PhpWord'); ~~~ 在插件里面或者其他地方使用类似于PhpOffice\PhpWord空间的类库时都会在这加载。 <br> <br> ## composer 方式安装第三方类库 <blockquote class="danger"><p>2.2.1.20220603版本起支持</p></blockquote> 使用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内容 ``` { "name": "hkcms/demo", "description": "demo plugin", "type": "hkcms-addon", "license": "apache2.0", "authors": [ { "name": "demo", "email": "demo@hkcms.cn" } ], "config": { }, "require": { } } ``` `name`composer包的名字,格式为“vendor名称/包名” `description`描述信息,简单描述下你的插件 `type`固定为**hkcms-addon** `license`固定`apache2.0` `authors`作者,按上面的格式改掉即可 `` 3. 跟composer一样在当前插件目录安装、更新、删除第三方库包。 例如安装第三方微信SDK ~~~ composer require overtrue/wechat:~4.0 -vvv ~~~ 安装成功后即可使用。 > 注意,插件必须是安装后才能生效