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

  1. 分别建立vendor文件夹与composer.json文件

  2. composer.json内容

{
    "name": "hkcms/demo",
    "description": "demo plugin",
    "type": "hkcms-addon",
    "license": "apache2.0",
    "authors": [
        {
            "name": "demo",
            "email": "demo@hkcms.cn"
        }
    ],
    "config": {
    },
    "require": {
    }}

namecomposer包的名字,格式为“vendor名称/包名”
description描述信息,简单描述下你的插件
type固定为hkcms-addon
license固定apache2.0
authors作者,按上面的格式改掉即可
``
3. 跟composer一样在当前插件目录安装、更新、删除第三方库包。
例如安装第三方微信SDK

composer require overtrue/wechat:~4.0 -vvv

安装成功后即可使用。

注意,插件必须是安装后才能生效




联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com