PHP code example of widuu / think-addons

1. Go to this page and download the library: Download widuu/think-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/ */

    

widuu / think-addons example snippets





namespace addons\test;


use think\Addons;

/**
 * Class Test
 * @package addons\test
 */
class Test extends Addons
{

    /**
     * @Event("AppInit")
     */
    public function init()
    {
        echo "监听 AppInit 事件";
    }

    /**
     * @Event(["AppInit", "HttpRun"])
     */
    public function run()
    {
        echo "监听 AppInit 和 HttpRun 事件";
    }

    /**
     * 没有使用注释,直接监听方法名,监听 AddonsInit 事件
     */
    public function AddonsInit()
    {
        echo "监听 AddonsInit 事件";
    }

    protected function install()
    {
        // TODO: Implement install() method.
    }

    protected function uninstall()
    {
        // TODO: Implement uninstall() method.
    }

    protected function enable()
    {
        // TODO: Implement enable() method.
    }

    protected function disable()
    {
        // TODO: Implement disable() method.
    }
}

    /**
     * 处理插件钩子
     * @param string $event 钩子名称
     * @param array|null $params 传入参数
     * @param bool $once 是否只返回一个结果
     * @return mixed
     */
    function hook($event, $params = null, bool $once = false)
    {
        $result = Event::trigger($event, $params, $once);

        return join('', $result);
    }

return [
    // 插件的 namespace 也是插件目录
    'app_namespace'           => 'addons',
    // 生产环境下,开启自动加载时的缓存名称,方便更新
    'addons_autoload_cache'   => 'addons_autoload_cache',
    // 自动解析加载插件事件,此为全局事件,可以在全局访问
    'autoload_addons_event'   => true,
    // 全局加载插件下的 event.php
    'autoload_addons_efile'   => false,
    // 自动解析服务注册,全局服务,可以在全局访问
    'autoload_addons_service' => false,
    // 自动注册路由
    'autoload_addons_route'   => true,
    // 自动注册命令行
    'autoload_addons_command' => true,
    // 监听事件
    'addons_event'            => [],
    // 注册服务
    'addons_service'          => [],
    // 注册命令行
    'addons_commands'         => [],
    // 注册路由
    'route'                   => [],
];

php think addon:build 模块名称

    /**
     * 获取插件类名
     * @param $name
     * @param null $class
     * @param string $type
     * @return string
     */
    function get_addons_class($name, $class = null, $type = '')

    /**
     * 获取插件实例
     * @param $name
     * @return false|mixed
     */
    function get_addons_instance($name)

    /**
     * 获取应用信息
     * @param $name
     * @return array
     */
    function get_addons_info($name): array

    /**
     * 插件显示内容里生成访问插件的url
     * @param $url  string 插件名/控制器/方法
     * @param array $param
     * @param bool|string $suffix 生成的URL后缀
     * @param bool|string $domain 域名
     * @return bool|string
     */
    function addons_url($url = '', $param = [], $suffix = true, $domain = false)