当前位置: 首页 > 软件库 > 程序开发 > GUI开发框架 >

PHPSciter

跨平台 GUI 框架
授权协议 Apache
开发语言 C/C++
所属分类 程序开发、 GUI开发框架
软件类型 开源软件
地区 国产
投 递 者 艾望
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

关于Sciter

Sciter 是一个非常优秀的的跨平台GUI框架,它使用HTML5 + CSS来绘制界面,使用TIScritpt来做交互。
Sciter由Andrew发起。这是一位非常资深的UI专家,以邀请专家的身份参与HTML5标准的制定,Evernote最早的三个开发者之一。Sciter主要的特点:

  • 跨平台:Sciter支持Windows、Linux和MacOS
  • 轻量级:Sciter整体的实现非常轻,只有几兆大小
  • 使用Html5实现:Sciter使用HTML,CSS来渲染窗口,使用TIScript做交互。表现力强,上手简单。 

Sciter作者正在开发 Sciter-JS项目,这个项目集成了quickjs。这个项目发布以后很快得到了很多人的关注,相信会吸引更多的人使用Sciter项目。

关于PHPSciter

PHPSciter是一个PHP的扩展,将Sciter集成到PHP中,这样就可以使用PHP来开发桌面应用。对于广大的PHPer来说,之前B/S架构下面的开发经验基本上可以移植到Sciter下面来。这样可以充分的享受PHP已有的各种类库,快速的开发桌面应用工具。

安装PHPSciter

我们已经帮大家打好了各个平台下面的包:

Windows: https://github.com/longyan/phpsciter/raw/master/package/windows/phpsciter.zip
Ubuntu: https://github.com/longyan/phpsciter/raw/master/package/deb/phpsciter_php7.4.3-4ubuntu2.4_am64.deb
CentOS: https://github.com/longyan/phpsciter/raw/master/package/rpm/php7.4-phpsciter-7.4.3-5.x86_64.rpm

运行demo

以windows为例,解压缩之后,有一个example目录。

D:\Sciter>php examples\phpsciter-callback\index.phpt
<?php
$oSciter = new PHPSciter();
$oSciter->setResourcePath('file://' . __DIR__ . '/res/');
$oSciter->setWindowFrame(100, 100, 100 + 500 + 1, 100 + 500 + 1);
$oSciter->setWindowTitle('hello');
$oSciter->loadFile('index.php');
$oSciter->setOption(PHPSciter::SCITER_SET_SCRIPT_RUNTIME_FEATURES,PHPSciter::ALLOW_FILE_IO | PHPSciter::ALLOW_SOCKET_IO | PHPSciter::ALLOW_EVAL |PHPSciter::ALLOW_SYSINFO);
$oSciter->run(PHPSciter::SW_TITLEBAR | PHPSciter::SW_RESIZEABLE | PHPSciter::SW_MAIN | PHPSciter::SW_ENABLE_DEBUG|PHPSciter::SW_CONTROLS);
?>

这个运行之后,会加载res目录下面的index.php,里面的代码如下:

<?php
 include_once "callback.php";
 ?>
<html>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<div>
    Request & Get Int:
    <button id="plus_btn">Click Plus</button>
    <button id="sum_btn">Click Sum</button>
    <br/>
</div>
<script type="text/tiscript">
$(#plus_btn).on("click", function() {
    var plus = view.plus(100);
    $(#data_json).html = JSON.stringify(plus);
    $(#data_area).html = "";
});
$(#sum_btn).on("click", function() {
    var sum = view.sum(1,2,3);
    $(#data_json).html = JSON.stringify(sum);
    $(#data_area).html = "";
});
callback.phpl里面的代码如下:
<?php
class classTest
{
    static public function plus($a)
    {
        return $a + 30;
    }
    static public function sum($a, $b, $c)
    {
        return $a + $b + $c;
    }
}
PHPSciter::defineFunction('plus', 'classTest::plus');
PHPSciter::defineFunction('sum', 'classTest::sum');

运行之后的界面:

运行机制

1. 启动Sciter窗口,加载index.php
2. index.php里面通过html的方式定义了若干的元素,并绑定了其click事件的响应函数。
3. 当事件触发后,sciter引擎会将click事件的调用传给php的解释引擎。
4. 在callback里面通过PHPSciter::defineFunction()方法定义了响应函数。
5. PHP引擎调用该函数,并将结果返回。
6. 前段的JS更新页面元素。

关于龙之言

青岛龙之言软件有限责任公司由国内著名的 Swoole团队和 禅道团队合资成立。Swoole团队是业内知名的PHP底层开发团队,为PHP贡献了协程、加密、监控等多种方案,有力地弥补了PHP在高并发高性能场景的短板。禅道团队是PHP语言的重度用户,先后使用PHP语言开发了四款开源软件。两个团队在PHP社区上都有深厚的感情,都想为PHP社区做些自己的贡献。于是就诞生了龙之言这个公司。

龙之言公司主要的使命就是弥补PHP的短板,完善PHP的生态,为中国的PHP用户提供有力的技术支持。我们主要的工作方向有如下几个:

  • 提高PHP在高性能高并发场景的适用性
  • 适配国产化操作系统
  • 完善各种类库
  • 加强PHP对人工智能场景的支持
  • 加强PHP在物联网场景的支持
  • 加强PHP在打包安装方面的支持

我们的项目将主要以开源的方式来进行发布,如果您有什么好的想法,或者痛点,或者想参与到我们的开发中来,欢迎和我们联系。我们的联系方式: guoxinhua@swoole.com

 相关资料
  • 问题内容: 将在官方网站上MongoDB的GUI客户端应用程序的列表已经过时:某些客户端不支持,有些是严重势必.NET和Linux上运行的不是。而且它们都缺乏编辑已存储文档的能力(即提供只读访问权限)。 我需要一个GUI客户端: 适用于Linux(但不适用于Web); 免费; 支持文档编辑。 是否有满足这些要求的应用程序? 问题答案: Robomongo-跨平台MongoDB GUI客户端 更新:

  • 多平台支持 Mpx支持在多个小程序平台中进行增强,目前支持的小程序平台包括微信,支付宝,百度,qq和头条,不过自2.0版本后,Mpx支持了以微信增强语法为base的跨平台输出,实现了一套业务源码在多端输出运行的能力,大大提升了多小程序平台业务的开发效率,详情可以查看template增强特性 不同平台上的模板增强指令按照平台的指令风格进行设计,文档和代码示例为了方便统一采用微信小程序下的书写方式。

  • 本文向大家介绍JavaScript跨平台的开源框架NativeScript,包括了JavaScript跨平台的开源框架NativeScript的使用技巧和注意事项,需要的朋友参考一下 NativeScript是一款使用JavaScript语言来构建跨平台原生移动应用的开源框架,支持iOS、Android和Windows Phone。且NativeScript的使用没有过多繁杂的要求,只需使用自己已

  • 我需要在我的应用程序中为不同的标签指定不同的FontFamily。我需要使用默认字体(如Android的Roboto和iOS的Helvetica)及其修改(如轻、中、粗)。据我所知,我应该使用Roboto-Light和Helvetica-Light来获得字体的轻版本(中号和粗体相同)。除了这个需求之外,我还需要在XAML中设置字体(如文档中所描述的),所以我最终得到了以下代码 然而,在Androi

  • 作为第三代数据统计和分析平台,诸葛实现了对用户的实名(实账号)分析,并主张互联网产品分析以用户为中心的分析思想并提供了一系列方法论。对用户的唯一标识来源于企业自身数据库对用户的唯一识别符,也即诸葛底层数据采集是以用户为中心的采集,我们提供了跨平台分析版本, 满足企业以用户为中心的整体的分析需求,不同平台相同业务价值下的用户完整的故事解读(例如:分析电商的用户在PC端浏览产品,在移动端支付的转化率)