kalcaddle / kodbox

kodbox is a file manager for web. It is a newly designed product based on kodexplorer. It is also a web code editor, which allows you to develop websites directly within the web browser.You can run kodbox either online or locally,on Linux, Windows or Mac based platforms
https://kodcloud.com
2.18k stars 373 forks source link

插件支持数据库相关操作,自定义接口 #275

Closed jdysya closed 2 months ago

jdysya commented 2 months ago

文档中提到,插件中的install方法在安装时调用,可实现数据库表创建等操作,请问具体应该如何操作,后续能否通过插件自定义接口,操作数据表文件呢。

我想通过插件实现一个可保存文本信息的插件,将文本信息保存到kodbox的数据表中,能否实现呢?我通过index.php?plugin/插件名称/插件方法方式测试了一下,直接请求这个接口的话没有返回数据,应该是被拦截了?

image image
kalcaddle commented 2 months ago

文档中说明了, 可在对应方法中添加逻辑即可

如果是自己使用的插件,可以直接在数据库中手动创建好,插件中 直接使用即可. 提供给别人的插件, 可以将创建数据表的相关代码写到默认入口中; 需要自行编写代码,大概如下; 当然,初始化表或其他相关数据,也可以在echoJs中处理(插件只要启用,页面访问后就会调用到; 初始化前后需要自行记录标记位,用于判断是否初始化过)

    // sql执行,包括创建数据库等;
    $sqlArr  = sqlSplit(file_get_contents('your.sql'));
    foreach($sqlArr as $sql){
        Model()->db()->execute($sql);
    }

插件方法调用,就是上面文档中说明的, 按对应方式编写即可.例如要添加一个方法: ?plugin/emlViewer/test 在plugins/emailViewer/app.php 中添加一个方法即可

public function test(){
    echo "hello";
}