PHP code example of tsaotai / tsaotai-addons

1. Go to this page and download the library: Download tsaotai/tsaotai-addons library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

tsaotai / tsaotai-addons example snippets



use tsaotai\addons\Loader;

Loader::load();


use tsaotai\addons\Router;

Router::register();


return [
    // 插件路径
    'path' => root_path('addons'),

    // 是否自动注册路由
    'auto_register' => true,

    // 是否自动加载插件
    'auto_load' => true,
];


use tsaotai\addons\Config;

$config = 


use tsaotai\addons\Config;

// 获取配置
$path = Config::get('path');

// 设置配置
Config::set('auto_register', false);

// 批量设置
Config::set([
    'auto_register' => true,
    'auto_load' => true,
]);


use tsaotai\addons\facade\Addons;

// 快速创建一个插件
Addons::create('demo', [
    'title' => '示例插件',
    'description' => '这是一个示例插件',
    'author' => '教员',
    'version' => '2026.1.1',
]);

// 创建包含可选目录的插件
Addons::create('demo', [
    'title' => '示例插件',
    'with_model' => true,      // 生成 model 目录
    'with_validate' => true,   // 生成 validate 目录
    'with_public' => true,     // 生成 public 目录
]);


return [
    // 【核心唯一标识】必须与插件目录名一致,小写字母,不可重复、不可修改
    'identifier' => 'demo',
    
    // 【插件展示名称】后台列表、插件页头部正式显示名称,支持中文
    'title' => '示例插件',
    
    // 【插件完整描述】详细说明插件作用、能力、使用场景,禁止过短,便于后期查阅
    'description' => '这是一个示例插件',
    
    // 【当前版本号】语义化版本格式 主版本.次版本.修订号
    'version' => '2026.1.1',
    
    // 【开发作者】填写开发负责人/团队名称,用于版权与溯源
    'author' => '教员',
    
    // 【创建/更新日期】固定格式 YYYY-MM-DD,版本迭代同步更新
    'create' => '2026-05-03',
    'update' => '2026-05-03',
    
    // 【图标标识】BootstrapIcons 纯图标名,不带 bi- 前缀
    'icon' => 'tools',
    
    // 【功能分类】tool=工具类 / function=功能类 / business=业务类
    'category' => 'tool',
    
    // 【排序权重】纯数字,数值越大,后台插件列表展示越靠前
    'sort' => 0,
    
    // 【运行状态】enable=默认启用 / disable=默认禁用
    'state' => 'enable',
    
    // 【独立配置页】布尔值 true=存在单独配置页面 / false=无额外配置
    'config' => false,
    
    // 【安装流程】布尔值 true=需要执行安装逻辑(建表/初始化数据) / false=直接启用
    'install' => true,
    
    // 【卸载清理】布尔值 true=卸载同步删除业务数据 / false=保留数据,防止误删丢失
    'clean' => false,
    
    // 【依赖插件】多个依赖逗号分隔,无依赖留空;填写目标插件 identifier 标识
    'rely' => '',
    
    // 【后台访问入口】插件独立管理页面路由地址,用于菜单点击跳转
    'entry' => 'addons/demo',
    
    // 【适用范围】admin=仅后台使用 / index=仅前台使用 / all=全模块通用
    'scope' => 'admin',
    
    // 【插件品类】free=免费版 / basic=基础版 / pro=专业付费版
    'classify' => 'free',
    
    // 【文档地址】填写文档/知识库链接,无文档留空
    'domain' => '',
    
    // 【开源协议】标注版权协议,内部项目可自定义填写内部专用
    'licence' => 'Apache-2.0',
    
    // 【补充备注】填写使用注意事项、特殊说明、限制条件,运营/维护查看
    'remark' => ''
];


declare (strict_types=1);

namespace addons\demo\controller;

use tsaotai\addons\BaseController;

class Demo extends BaseController
{
    // 插件首页
    public function index()
    {
        // 分配变量到视图
        $this->assign('name', 'TsaoTai');
        
        // 渲染视图(自动定位到 view/demo/index.html)
        return $this->fetch();
    }
    
    // API 接口示例
    public function api()
    {
        return json(['code' => 1, 'msg' => 'success', 'data' => []]);
    }
}


declare (strict_types=1);

namespace addons\demo\controller;

use tsaotai\addons\PluginController;

class Plugin extends PluginController
{
    // 自定义安装逻辑
    public function install(): \think\response\Json
    {
        // 你的安装代码,比如建表、初始化数据
        // ...
        
        return parent::install();
    }
    
    // 自定义卸载逻辑
    public function uninstall(): \think\response\Json
    {
        // 你的卸载代码
        // ...
        
        return parent::uninstall();
    }
    
    // 插件设置页面
    public function setting()
    {
        return $this->fetch();
    }
}


use think\facade\Route;

// 插件自定义路由示例
Route::get('demo/api/list', 'addons\demo\controller\Demo@list');

// 配置文件:config.php
// 公共函数:common.php  
// 请求绑定:request.php
// 服务文件:service.php
// 依赖注入:provider.php
// 事件监听:event.php
// 中间件:middleware.php


// 获取插件管理器
$addons = addons();

// 获取单个插件信息
$demo = addons('demo');


// 生成插件 URL
$url = addons_url('demo/index');
// 相当于 url('addons/demo/index')


// 渲染插件视图
return addons_view('demo/index/index', $vars);


// 获取插件根目录
$path = addons_path();

// 获取指定插件目录
$demoPath = addons_path('demo');

// 获取插件下的文件
$pluginConfig = addons_path('demo/plugin.php');


use tsaotai\addons\facade\Addons;

// 获取所有插件信息
$addons = Addons::getAddons();

// 扫描插件目录
$addons = Addons::scanAddons();

// 创建新插件
Addons::create('demo', ['title' => '示例插件']);
bash
# 创建基本插件
php think addon:make demo

# 或者这个
php think plugin:make demo

# 原来的命令也能用
php think make:addon demo
bash
php think addon:make demo --title="示例插件" --description="这是一个示例插件" --author="教员" --plugin-version="2026.1.1"