cturbelin/rserve-php

该软件包最新版本(v2.1)没有可用的许可信息。

PHP 的 Rserve 客户端库

v2.1 2023-08-10 17:08 UTC

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 服务器)

Build Status

从 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() 之后获取和解析结果