ousaa/sites-diversion-package

v2.1.0 2025-05-28 07:34 UTC

This package is auto-updated.

Last update: 2025-06-28 07:51:03 UTC


README

依赖tp框架(支持版本5.1/6/8)

环境变量配置

需要在项目下加上对应的 redis 配置,必须和分流系统一致

# diversion redis环境
DIVERSION_REDIS_HOST=127.0.0.1
DIVERSION_REDIS_PORT=6379
DIVERSION_REDIS_PASSWORD=
DIVERSION_REDIS_DB=0

接入站群逻辑代码参考(以 TP5.1 为例)

在 route.php 文件中,其他路由配置之前,添加 「分流系统的管理配置」的代码

// 获取分类配置
$diversionConfigs = LinkCacheLogic::getCache();

foreach ($item['domains'] as $domain) {
    Route::domain([$domain], function () use ($routeConfigPath, $rootPath, $item, $domain, $diversionConfigs) {
        // 通过全局变量注入站点标识
        $GLOBALS['SITE_KEY'] = $item['site_key'];

        // 分流系统的管理配置
        if (in_array($domain, array_keys($diversionConfigs))) {
            $config = $diversionConfigs[$domain];
            $onlyDomain = $config['onlyDomain'];
            $uriItems = $config['uriItems'];
            $matchUris = array_keys($uriItems);
            if ($matchUris) {
                foreach ($matchUris as $matchUri) {
                    Route::get($matchUri, route_to_method(\app\common\controller\DiversionController::class, 'handleDiversion'));
                }
            }
            if ($onlyDomain) {
                Route::get('/:any', route_to_method(\app\common\controller\DiversionController::class, 'handleDiversion'))
                    ->pattern(['any' => '[\S]*']);
            }
        }
        
        // ... 原来的站群配置
    }
}

DiversionController

class DiversionController extends CommonBaseController
{
    public function handleDiversion(Request $request)
    {
        $uri = $request->url();
        $host = $request->host();
        $scheme = $request->scheme();
        return DiversionService::getInstance()->handleDiversion($host, $uri, $scheme);
    }
}

如果需要修改这个包的内容,可以改成本地调试

composer.json 里面添加,url 改成你本地对应目录的绝对路径

"repositories": [
    {
        "type": "path",
        "url": "/Volumes/code/php_package/sites-diversion-package",
        "options": {
            "symlink": true
        }
    }
],

包的版本配置改成 dev-master

"ousaa/sites-diversion-package": "dev-master"

然后更新即可

composer update ousaa/sites-diversion-package

修改和调试完成之后,发布 ousaa/sites-diversion-package 的版本。然后删除 composer.json 里面 repositories 的部分, dev-master 改成最新版本即可