thinkphp5.0報錯Class 'think\worker\Server' not found問題解決



環境
win7
thinkphp 5.0
think-worker 1.0.*

 

今天在thinkphp 5.0上使用workman

參照官網教程步驟如下

安裝think-worker 1.0.*版本

composer require topthink/think-worker 1.0.*

 

使用方法
首先創建控制器類並繼承 think\worker\Server,然后設置屬性和添加回調方法,支持workerman所有的回調方法定義(回調方法必須是public類型)

namespace app\index\controller;

use think\worker\Server;

class Worker extends Server
{
    protected $socket = 'http://0.0.0.0:2346';

    public function onMessage($connection,$data)
    {
        $connection->send(json_encode($data));
    }
}

 

在應用根目錄增加入口文件 server.php

#!/usr/bin/env php
<?php
define('APP_PATH', __DIR__ . '/application/');

define('BIND_MODULE','index/Worker');

// 加載框架引導文件
require __DIR__ . '/thinkphp/start.php';

 

在命令行啟動服務端

php server.php start

 

linux下面可以支持下面指令

php server.php start|stop|status|restart|reload

 

執行php server.php start后報錯

[think\exception\ErrorException]
Class 'think\worker\Server' not found

 

找了一些資料,說的是composer問題、大小寫問題等等,都沒有解決

報錯原因分析:沒有加載到類think\worker\Server

解決辦法:

既然沒有加載到這個類,那我加載一下不就行了,修改server.php

server.php文件代碼:

#!/usr/bin/env php
<?php
define('APP_PATH', __DIR__ . '/application/');

define('BIND_MODULE','index/Worker');

//加載composer autoload文件
require __DIR__ . '/vendor/autoload.php';

// 加載框架引導文件
require __DIR__ . '/thinkphp/start.php';

 

保存后,執行php server.php start,出現如下內容:

----------------------- WORKERMAN -----------------------------
Workerman version:3.5.30          PHP version:5.6.9
------------------------ WORKERS -------------------------------
worker               listen                              processes status
none                 http://0.0.0.0:2346                 4         [ok]

 

成功開啟websocket服務,問題解決。

 

參考文檔:
1.think-worker 1.0官網使用教程
https://github.com/top-think/think-worker/tree/v1.0.1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM