PHPackages                             kingbes/framework - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. kingbes/framework

ActiveLibrary[Framework](/categories/framework)

kingbes/framework
=================

The KingBes Windows GUI Framework.

v0.0.10(1y ago)641[1 issues](https://github.com/KingBes/framework/issues)Apache-2.0PHPPHP &gt;=8.1.0

Since Feb 21Pushed 1y ago1 watchersCompare

[ Source](https://github.com/KingBes/framework)[ Packagist](https://packagist.org/packages/kingbes/framework)[ RSS](/packages/kingbes-framework/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (11)Used By (0)

[![](view/images/001.png)](view/images/001.png)

PHP 桌面应用开发
==========

[](#php-桌面应用开发)

[![PHP Version](https://camo.githubusercontent.com/04744bae0a61d2ffe29c26f07a9612eae20445fc6feaeb77b3af1f0e9be6447c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e312d3838393242462e737667)](http://www.php.net/)[![PHP FFI-EXT](https://camo.githubusercontent.com/ea155e89487fc2c6b4bf4fff182e6660dd2fbea13962429456900ee0189751f4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4646492d2a2d3841324245322e737667)](https://www.php.net/manual/zh/class.ffi)[![License](https://camo.githubusercontent.com/0f43fddc07ecf7a85a9c76f8ef282e678ca990e7d1dd474b37cc314de6e596dd/68747470733a2f2f706f7365722e707567782e6f72672f746f707468696e6b2f6672616d65776f726b2f6c6963656e7365)](https://packagist.org/packages/kingbes/framework)

要求
--

[](#要求)

- PHP `8.1+`
- FFI `*`

安装
==

[](#安装)

```
composer create-project kingbes/framework desktop
```

启动应用
----

[](#启动应用)

```
cd desktop
php index.php
```

命名规范
====

[](#命名规范)

遵循PSR-2命名规范和PSR-4自动加载规范。

文档
==

[](#文档)

基础
--

[](#基础)

### 目录结果

[](#目录结果)

```
├─app                应用目录
│  ├─config          配置目录
│  │  ├─app.php           应用配置
│  │  ├─database.php      数据库配置
│  │  ├─menu.php          图标菜单配置
│  │  └─middleware.php    中间件配置
│  │
│  ├─controller      控制器目录
│  ├─kingbes         源码目录
│  ├─middleware      中间件目录
│  ├─ ...            更多类库目录
│  │
│  ├─public.php      公共函数文件
│  └─sqlite3.db      sqlite文件
│
├─vendor             Composer类库目录
├─view               视图目录
├─composer.json      composer 定义文件
├─favicon.ico        图标文件
├─index.php          入口文件
└─README.md          README 文件

```

### 配置

[](#配置)

#### app.php 应用配置

[](#appphp-应用配置)

```
return [
    // 窗口
    "windows" => [
        // 标题
        "title" => "PHP GUI",
        // 宽
        "width" => 640,
        // 高
        "height" => 480,
        // 是否测试模式 ,非测试模式：false
        "debug" => true
    ],
    // 默认控制器
    "default_controller" => "Home",
    // 默认时区
    "default_timezone" => "Asia/Shanghai",
    // 视图
    "default_view" => [
        // 目录名
        "dirname" => "view",
        // 文件后缀
        "suffix" => "html"
    ]
];
```

#### database.php 采用独立的`ThinkORM`库 数据库配置

[](#databasephp-采用独立的thinkorm库-数据库配置)

```
return [
    'default' => 'sqlite',
    'connections' => [
        'sqlite' => [
            // 数据库类型
            'type'        => 'sqlite',
            // 数据库名
            'database'    => app_path("sqlite3.db"),
            // 数据库编码默认采用utf8
            'charset'     => 'utf8',
            // 数据库表前缀
            'prefix'      => '',
        ],
    ],
];
```

#### menu.php 小图标菜单配置

[](#menuphp-小图标菜单配置)

```
return [
    [
        "name" => "显示", // 名称
        "fn" => function () { // 点击后触发的函数
            app()->show_win(); // 触发显示窗口函数
        }
    ],
    [
        "name" => "退出",
        "fn" => function () {
            app()->destroy_win(); // 关闭应用
        }
    ]
    ... //追加更多
];
```

效果

[![](view/images/002.png)](view/images/002.png)

#### middleware.php 中间件配置

[](#middlewarephp-中间件配置)

```
return [
    // 例子
    app\middleware\TestMiddleware::class
];
```

控制器和视图
------

[](#控制器和视图)

一个控制器文件对应一个视图文件，控制器 `Home.php` 对应视图 `Home.html`，文件名相同。

### 公共函数

[](#公共函数)

`Home.php` 控制器，每个公共函数绑定一个js函数，可直接在js中触发

```
namespace app\controller;

class Home
{
    /**
     * get function
     *
     * @param integer $seq 触发次数
     * @param array $req js传来的参数
     * @return array
     */
    public function get(int $seq, array $req): array
    {
        /**
         * 你的逻辑代码
         */
        ...

        return ["PHP WINDOWS GUI"];
    }
}
```

`Home.html` 视图触发

```
>

    Document

    触发get

        function onBtn(){
            // 直接在js中调用
            get('hello').then(function (res) {
                console.log(res) //拿到的结果
            })
        }

```

### 公共参数

[](#公共参数)

`$width`、`$height`、`$hint` 会改变当前窗口大小

```
namespace app\controller;

// 窗口提示类型
use app\kingbes\PhpWebview\WindowSizeHint;

class SizeWin
{
    /**
     * 改变当前窗口的宽度 variable
     *
     * @var integer
     */
    public int $width = 800;
    /**
     * 改变当前窗口的高度 variable
     *
     * @var integer
     */
    public int $height = 800;
    /**
     * 改变当前窗口的提示 variable
     *
     * @var WindowSizeHint
     */
    public WindowSizeHint $hint =  WindowSizeHint::HINT_FIXED;
}
```

### 页面跳转

[](#页面跳转)

常规的页面跳转是无法绑定到控制器里面的函数的,在js中调用函数`app_jump("要跳转的控制器文件名即可")`

`跳转about` 成功跳转到About页面 和绑定好的控制器函数

`跳转about` 跳转了，但没有绑定对于的控制器函数

中间件
---

[](#中间件)

```
class TestMiddleware
{
    public function process(string $page, object $next_class): bool
    {
        var_dump("下一页的页面");
        var_dump($page);
        var_dump("下一页的class");
        var_dump($next_class);
        // true 会放行 , false不放行
        return true;
    }
}
```

数据库
---

[](#数据库)

thinkphp的orm库 [点击进入](https://github.com/top-think/think-orm)

自带的公共函数
-------

[](#自带的公共函数)

```
/**
 * 根目录路径 function
 *
 * @param string ...$path 拼接
 * @return string
 */
function base_path(string ...$path): string {}

/**
 * app目录路径 function
 *
 * @param string ...$path 拼接
 * @return string
 */
function app_path(string ...$path): string {}

/**
 * app应用 function
 *
 * @return object
 */
function app(): object {}

/**
 * 页面跳转 function
 *
 * @param string $page
 * @return void
 */
function app_jump(string $page): void {}

/**
 * 消息对话框 function
 *
 * @param string $str
 * @param integer $type
 * @return boolean
 */
function dialog_msg(string $str, int $type = 0): bool {}

/**
 * 输入对话框 function
 *
 * @return string
 */
function dialog_prompt(): string {}

/**
 * 打开文件对话框 function
 *
 * @return string
 */
function dialog_file(): string {}

/**
 * 打开文件夹对话框 function
 *
 * @param string $default_dir 默认文件夹路径位置
 * @return string
 */
function dialog_dir(string $default_dir = ""): string {}

/**
 * 保存文件对话框 function
 *
 * @param string $content 内容
 * @param string $filename 文件名 如：test.txt
 * @param string $path 保存路径 如：D:/dir
 * @return boolean
 */
function dialog_save(
    string $content,
    string $filename,
    string $path = ""
): bool {}
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance29

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~14 days

Recently: every ~22 days

Total

10

Last Release

685d ago

PHP version history (2 changes)v0.0.1PHP &gt;=8.0.0

v0.0.8PHP &gt;=8.1.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/fb58545c720c65fc3a128dec9077ca1e63c7de006c8ffa6f2041636ad94d1d74?d=identicon)[KingBes](/maintainers/KingBes)

---

Top Contributors

[![KingBes](https://avatars.githubusercontent.com/u/48203677?v=4)](https://github.com/KingBes "KingBes (20 commits)")

---

Tags

phpframeworkguiwindows

### Embed Badge

![Health badge](/badges/kingbes-framework/health.svg)

```
[![Health](https://phpackages.com/badges/kingbes-framework/health.svg)](https://phpackages.com/packages/kingbes-framework)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
