轻量级的调试服务器工具。

维护者

详细信息

github.com/swow-cloud/xr

源代码

0.1.3 2022-02-08 17:49 UTC

This package is auto-updated.

Last update: 2024-09-10 12:34:19 UTC


README

🔔 订阅 通讯,不错过任何关于 Chevere 的更新。

XR

Crocanty.mp4

🦄 查看演示

Code size Apache-2.0

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Coverage Technical Debt CodeFactor Codacy Badge

XR 是一个用于 PHP 的导出调试服务器工具。无需任何额外组件,随时随地调试您的 PHP 代码。

XR light XR light

特性

  • 💎 颜色丰富、类型明确的变量高亮显示,易于阅读
  • ✨ 导出任意数量的参数
  • 🐘 一键启动 PHP 服务器(无需额外组件)
  • 👻 通过 主题表情 过滤消息
  • ✍️ 将 "XR 会话" 重命名为任何您想要的名称
  • 🏁 播放、暂停、停止和清除调试窗口控件
  • 🥷 为忍者提供键盘快捷键(播放 R,暂停 P,停止 S 和清除 C
  • 😊 将消息导出到剪贴板(纯文本)或作为内联下载的 PNG 图像
  • 📟 生成导出 回溯
  • 暂停 和恢复代码执行 (*未实现*)
  • 🌚 深色 / 🌝 亮色模式遵循您的系统首选项
  • 👽 临时存储,不保留任何持久数据
  • 🍒 基于 HTML(保存页面、搜索、快捷键等)
  • 🔥 使用 FiraCode 字体显示 美观的导出
  • 😅 处理异常(钩子或替换您现有的处理程序)

XR light demo XR dark demo

贡献

请随时通过 问题讨论 贡献您的想法,以改进 XR。

入门

  • chevere/xr 添加到您的项目中作为开发依赖
composer require --dev chevere/xr

🚧 最小稳定性开发

您需要将以下内容添加到您的 composer.json 文件中。

    "minimum-stability": "dev",
    "prefer-stable": true

启动服务器

php vendor/chevere/xr/server.php -p 27420

服务器将在 https://:27420 上可用

演示

打开调试器然后运行

php vendor/chevere/xr/demo.php

XR 辅助工具

导出变量

使用 xr($var1, $var2,...) 从您的代码中导出 任何变量

xr($var, 'Hola, mundo!');

主题

通过传递 t: 添加主题。

xr(
    $var,
    'Hola, mundo!',
    t: 'Epic win'
);

表情

通过传递 e: 添加表情。

xr(
    $var,
    'Hola, mundo!',
    t: 'Epic win',
    e: '😎'
);

标志

传递位标志以触发特殊行为。

  • f: XR_BACKTRACE 以导出调试回溯。
xr(
    $var,
    'Hola, mundo!',
    t: 'Epic win',
    e: '😎',
    f: XR_BACKTRACE
);
  • f: XR_PAUSE 以暂停代码执行 (*未实现*)。
xr(
    $var,
    'Hola, mundo!',
    t: 'Epic win',
    e: '😎',
    f: XR_PAUSE
);

发送原始消息

使用 xrr 向服务器发送原始消息。

💡 xrr 还支持 主题 t表情 e标志 f 参数。

xrr(
    '<h1>Hola, mundo!</h1>',
    t: 'Greet'
);

异常处理

使用 registerThrowableHandler 启用 XR 处理 throwables。

use Chevere\Xr\registerThrowableHandler;

// True append XR's to your existing handler
// False use only XR's handler
registerThrowableHandler(true);

或者,您可以在任何现有的异常处理逻辑中使用 throwableHandler

use Chevere\Xr\throwableHandler;

set_exception_handler(
    function(Throwable $throwable) {
        // ...
        try {
            throwableHandler($throwable);
        } catch(Throwable) {
            // Don't panic
        }
    }
);

错误处理

您需要将错误作为异常处理,然后使用 异常处理

use use Chevere\ThrowableHandler\ThrowableHandler;

set_error_handler(
    ThrowableHandler::ERRORS_AS_EXCEPTIONS
);
register_shutdown_function(
    ThrowableHandler::FATAL_ERROR_HANDLER
);

配置

可选地通过在项目目录中创建名为 xr.php 的文件来配置 XR,其中包含以下选项

  • 启用
    • bool 控制向服务器发送消息。设置为 true 启用,false 禁用。
  • 主机
    • string XR 服务器运行的主机名/IP 地址。
  • 端口
    • int 连接到 host 的端口号。

以下示例是一个具有默认设置的 xr.php 文件。

<?php

return [
    'enable' => true,
    'host' => 'localhost',
    'port' => 27420,
];

对于软件提供商

如果您想在现有应用程序逻辑中某处处理 XR 设置(不依赖于 xr.php 文件),您可以这样做

use Chevere\Xr\XrInstance;

// (...) your logic sets $enable, $host and $port

new XrInstance(
    new Xr(enable: $enable, host: $host: port: $port)
);

Docker

请参阅 DOCKER

消息参考

XR 堆栈服务器可以接收来自任何地方的消息

POST https://:27420/message
    body=Hola, mundo
    file_path=/var/www/file.php
    file_line=123
    ...
  • body - 消息原始体(HTML)。
  • file_path - 文件路径。
  • file_line - 文件行。
  • emote - 表情(表情符号/符号)
  • topic - 作为消息上下文的主题。

许可证

版权所有 2022 Rodolfo Berrios A.

XR 使用 Apache 许可证第 2.0 版进行许可。有关完整许可文本,请参阅 LICENSE

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的特定语言和限制,请参阅许可证。