wisonlau / hyperf-debug
Debug for Hyperf
Installs: 10
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Language:HTML
Requires
- php: >=7.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.0
- phpstan/phpstan: ^1.0
- phpunit/phpunit: >=7.0
- swoole/ide-helper: ^4.5
Suggests
- swow/swow: Required to create swow components.
This package is auto-updated.
Last update: 2025-05-10 11:53:56 UTC
README
Debug for Hyperf
安装组件:
composer require wisonlau/hyperf-debug
安装 WebSocket 服务:
修改 config/autoload/server.php,增加以下配置。
'servers' => [ [ 'name' => 'ws', 'type' => Server::SERVER_WEBSOCKET, 'host' => '0.0.0.0', 'port' => 9502, 'sock_type' => SWOOLE_SOCK_TCP, 'callbacks' => [ Event::ON_HAND_SHAKE => [Hyperf\WebSocketServer\Server::class, 'onHandShake'], Event::ON_MESSAGE => [Hyperf\WebSocketServer\Server::class, 'onMessage'], Event::ON_CLOSE => [Hyperf\WebSocketServer\Server::class, 'onClose'], ], ], ],
发布配置:
php bin/hyperf.php vendor:publish wisonlau/hyperf-debug
注意事项:
-
配置文件路径:config/autoload/hpdebug.php
-
默认地址是 ws://127.0.0.1:9502, 需修改成服务实际配置地址
使用方法:composer.json
- 通过自定义路由 Router 添加输出页面 修改 /hyperf/config/routes.php,增加以下配置。
Router::addRoute(['GET', 'POST', 'HEAD'], '/hpdebug', function() { $wsdebug = new \Wisonlau\HyperfDebug\Hpdebug(); $response = new \Hyperf\HttpServer\Response(); return $response->raw($wsdebug->getHtml())->withHeader('content-type', 'text/html; charset=utf-8'); }); Router::addServer('ws', function () { Router::get('/', Wisonlau\HyperfDebug\Hpdebug::class); });
- Demo
php>=8.0 <?php namespace App\HttpController; use Hyperf\Di\Annotation\Inject; use Wisonlau\HyperfDebug\Hpdebug; class TestController { #[Inject] protected Hpdebug $debug; public function test() { $userData = [ 'uid' => 1, 'username' => 'hyperf-debug', ]; $this->debug->send($userData); } } php<8.0 <?php namespace App\HttpController; use Hyperf\Di\Annotation\Inject; use Wisonlau\HyperfDebug\Hpdebug; class TestController { /** * @Inject() * @var Hpdebug */ protected $debug; public function test() { $userData = [ 'uid' => 1, 'username' => 'hyperf-debug', ]; $this->debug->send($userData); } }