# phpSciter **Repository Path**: eecoor/phpSciter ## Basic Information - **Project Name**: phpSciter - **Description**: php Sciter 扩展 - **Primary Language**: PHP - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2019-09-06 - **Last Updated**: 2021-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # phpSciter #### 介绍 php Sciter 扩展,满足我作为phper对前端的小小梦想,演示性大于实用性。 因为能力有限,也不喜欢麻烦,仅做了php脚本与Sciter脚本间方法的相互调用,其他Sciter事件一律没做,请竟可能的依赖tis脚本。 #### 使用说明 (php版本 7.2.12) 1. 页面放置在UI目录下,入口文件为index.html 2. 页面需要加载协助脚本 this://php/init.tis(具体看 example.php ) 3. 支持异步操作处理,后台最多可同时执行8线程php调用(多线程依赖 pthreads)。 4. PHP与Sciter通信是通过json字符串(已由协助脚本处理),不能转换为json的变量类型不支持。 5. bug 未知。 #### 例子 UI: ``` php("func1","参数1","参数2",...) php("func2","参数1","参数2",...,function(re){ view.msgbox(0,re); }) /* php 的第一个参数是要调用的php方法标识字符,后面的参数会被打包成一个数组json。 php 的最后一个参数如果是函数,就自动认为是回调函数,php端自动启用线程异步执行。 */ ``` PHP: ``` \mlx\sciter::run(function ($fname, $jsonstr, $cb) { switch($fname){ case "func1": return "func1 返回"; break; case "func2": $i=0; while($i++<100){ $cb($i); sleep(1); } return 100; } }); /* 回调的第一个参数对应前端php方法的第一个参数 第二个参数,是前端php方法的其他参数打包的数组json(最后一个参数是回调除外)。 第三个参数,是状态回调,可实现进度条(具体看example.php),传参给前端回调函数。 (只有前端php方法的最后一个参数是回调函数时才有效,且只能传递一个参数,与return走的是同一个通道) */ ```