cturbelin / rserve-php
PHP 的 Rserve 客户端库
Requires
- php: >=7.4
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-18 00:05:44 UTC
README
Rserve 的 php5 客户端 http://www.rforge.net/Rserve/(R 统计软件的 TCP/IP 服务器)
从 1.0 版本的变化
- 所有类都在 Sentiweb\Rserve 命名空间下声明,允许 PSR-4 自动加载
- 解析器现在已细化为类
- 可以将 Parser 实例直接用作 evalString() 的第二个参数,以替换默认解析器(请参阅示例)
测试
您可以使用 phpunit 运行测试
某些测试需要有一个正在运行的 Rserve 服务器(不由本库处理)。要配置使用服务器的测试,您必须使用环境变量配置连接或创建一个在 tests/config.php 中的文件并定义常量(在 tests/config.php.sample 中有一个示例文件)。预期的变量(在环境变量中或在 tests/config.php 中的常量)
RSERVE_HOST:Rserve 服务器的主机名或 IP(例如,对于本地服务器为 'localhost' 或 127.0.0.1)。RSERVE_PORT:端口号,如果值为 '0' 或 'unix',则期望 HOST 为 Unix 套接字路径。RSERVE_USER:如果 Rserve 服务器需要身份验证,则输入用户名,如果不需要,则跳过或留空。RSERVE_PASS:如果 Rserve 服务器需要身份验证,则输入密码,如果不需要,则跳过或留空。
RSERVE_HOST 必须定义(要么在环境变量中,要么在 config.php 中),才能运行连接感知测试,如果不这样做,则这些测试将被跳过。
无凭证测试
-
启动无凭证的 Rserve 实例
-
可以通过以下命令完成:
docker run -d -p 6311:6311 wnagele/rserve -
如果使用 composer 安装:
composer test -
否则,使用
phpunit运行
登录测试:此测试套件需要运行一个受凭证保护的 Rserve 实例(不由本库提供)以及凭证(如上所述配置的用户名和密码)
安装
不使用 composer:将 src/autoload.php 包含到您的项目中
使用 composer
- 运行
composer require cturbelin/rserve-php:2.0.x-dev - 将
require __DIR__.'/../vendor/autoload.php';添加到您的项目中
一些用法示例提供在 example 目录中
使用登录授权
用法与原版用法相同,只是在构造函数中有所不同
$cnx = new \Sentiweb\Rserve\Connection('myserverhost', 6311, ['username'=>username,'password'=>password])
解析器
由 R 提供的结果可以使用多个解析器处理
-
NativeArray 将 R 结构转换为 php 简单数组。它对于从 R 获取简单值非常有用
-
包装数组使用 NativeArray 并在构造函数中使用参数
array("wrapper"=>true)返回具有 R 对象属性的对象。结果对象可以作为数组使用,并提供用于访问 R 对象属性的方法 -
调试将 R 响应转换为用于调试的结构
-
REXP 将 R 响应转换为 REXP 类
异步模式
几个函数允许在异步模式下使用连接
- getSocket() 获取套接字并设置一些选项
- setAsync() 允许设置异步模式
- getResults($parser) : 在异步模式下,在调用 evalString() 之后获取和解析结果