yangweijie/ui 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yangweijie/ui

最新稳定版本:v0.5.0

Composer 安装命令:

composer require yangweijie/ui

包简介

ui extension wrapper for kingbes/libui

README 文档

README

这是一个对 kingbes/libui 的面向对象封装,提供了更符合 PHP 习惯的 API,灵感来源于 PHP 官方的 UI 扩展

安装

composer require yangweijie/ui

使用示例

简单按钮示例

// example/button.php

require dirname(__DIR__) . "/vendor/autoload.php";

use UI\UI;
use UI\Window;
use UI\Size;
use UI\Controls\Box;
use UI\Controls\Orientation;
use UI\Controls\Button;

// 初始化应用
UI::init();

// 创建窗口
$window = new Window("窗口", new Size(640, 480), false);
// 窗口设置边框
$window->setMargin(true);

// 窗口关闭事件
$window->onClose(function ($window) {
    echo "窗口关闭\n";
    // 退出应用
    UI::exit();
    // 返回 true:关闭窗口, false:不关闭
    return true;
});

// 创建垂直容器
$box = new Box(Orientation::Vertical);
$box->setPadded(true); // 设置边距
$window->setChild($box); // 设置窗口子元素

// 创建按钮
$btn01 = new Button("按钮");
// 按钮点击事件
$btn01->onClick(function ($btn01) use ($window) {
    echo "按钮点击\n";
    $window->msgBox("提示", "世界上最好的语言PHP~");
});
// 追加按钮到容器
$box->append($btn01, false);

// 显示窗口
$window->show();

// 启动主循环
UI::run();

运行示例:

php example/button.php

测试

本项目使用 Pest 作为测试框架。要运行测试,请执行以下命令:

# 运行所有测试
php run_pest_tests.php

# 或者直接使用 Pest
php vendor/pestphp/pest/bin/pest

API 设计

本库的 API 设计尽可能贴近 PHP 官方 UI 扩展的接口,方便开发者学习和使用。

核心类包括:

  • UI\UI: UI 入口。
  • UI\Window: 窗口控件。
  • UI\Size: 用于表示尺寸。
  • UI\Control: 所有控件的基类。
  • UI\Controls\Box: 布局容器。
  • UI\Controls\Button: 按钮控件。
  • 更多控件正在封装中...

依赖

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-10