tp5.1整合gateway

1、安装think-gateway:composer require evan-li/think-gateway

2、项目新建应用(eg:application/worker)

3、处理gateway配置文件,将下载的think-gateway里面的starter文件夹复制到worker应用下,如图:

config文件为配置信息,Events文件为事件处理类,其他是启动时需要注册的文件不做赘述

4、添加启动服务控制器,在worker应用下新建Start控制器(控制器命名随意)

<?php
namespace app\worker\controller;


use Workerman\Worker;
use think\gateway\Utils;

class Start extends Worker
{
    public function __construct($socket_name = '', array $context_option = array())
    {
        parent::__construct($socket_name, $context_option);

        Utils::checkExtension();

        // 标记是全局启动
        define('GLOBAL_START', 1);

        // 加载所有/start/start_*.php,以便启动所有服务
        foreach(glob(__DIR__ . '/../starter/start_*.php') as $start_file)
        {
            require_once $start_file;
        }
        // 运行所有服务
        Worker::runAll();
    }
}

5、添加thinkphp入口文件(server.php用来实现整合后启动服务)

<?php
namespace think;


// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');

// 加载基础文件
require __DIR__ . '/../thinkphp/base.php';

// 执行应用并响应,此处一定要绑定默认模块,否则默认执行tp配置文件中默认访问模块
Container::get('app')->bind('worker/Start')->path(APP_PATH)->run()->send();

6、相应操作命令(与正常的gateway相同,此处做记录)

1)启动

以debug(调试)方式启动

php server.php start

以daemon(守护进程)方式启动

php server.php start -d

2)停止

php server.php stop

3)重启

php server.php restart

4)平滑重启

php server.php reload

5)查看状态

php server.php status

tp5.0的整合gateway可以参考一下:https://github.com/evan-li/think-gateway-demo

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章