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

 

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