Hkcms 引用第三方类库
将你的第三方类库直接放到插件根目录或者新建文件夹放好。
例如demo
插件下新建libaray
文件夹,之后把类库放入library
文件夹。
修改类库的命名空间
通过上面,类库放进来并不能调用到,我们需要增加或修改命名空间。
如下图,放入了两个类库文件,我们只需把命名空间改成:namespace addons\插件名称\library;,library里面还有文件夹就继续按目录层次写下去即可。
根据插件命名空间调整,如下所示
<?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();
通过初始化事件自动注册
如果类库文件过多或者是一个composer包,修改起来麻烦,可参考如下代码,在插件名称、插件初始化时执行
2.2.1.20220603版本起支持
如下:在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类库为例,我们下载后的压缩包目录结构如下:
去到src目录,有如下文件夹
把PhpWord文件夹放入到addons\demo\library\PhpOffice目录下,之所以还要创建PhpOffice目录因为他的命名空间是
PhpOffice\PhpWord
所以我们需要在创建PhpOffice
文件夹,完成这一步后在addonsInitHook
事件中添加命名空间
$this->addNamespace('PhpOffice\PhpWord');
在插件里面或者其他地方使用类似于PhpOffice\PhpWord空间的类库时都会在这加载。
composer 方式安装第三方类库
2.2.1.20220603版本起支持
使用composer方式之前你需要先了解什么是composer,链接地址:https://pkg.xyz/#how-to-install-composer
分别建立vendor文件夹与composer.json文件
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-addonlicense
固定apache2.0
authors
作者,按上面的格式改掉即可
``
3. 跟composer一样在当前插件目录安装、更新、删除第三方库包。
例如安装第三方微信SDK
composer require overtrue/wechat:~4.0 -vvv
安装成功后即可使用。
注意,插件必须是安装后才能生效