番茄/hessian-php

dev-master 2016-12-02 15:48 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:51:14 UTC


README

HessianPHP 2 是一个实现 PHP 5 的 Hessian 二进制 Web 服务协议的库。

Hessian 二进制 Web 服务协议使得 Web 服务能够在不要求大型框架的情况下使用,也不需要学习另一套协议。因为它是一个二进制协议,非常适合发送二进制数据,无需扩展协议以添加附件。

Hessian 是由 Caucho Technology 使用 Java 编程语言创建的。这个协议旨在设计得快速简单易学易用。它通过发送和接收对远程服务的 POST 请求使用 HTTP 作为传输。

HessianPHP 2 是对几年前发布的原始 HessianPHP 库的完全重写,以便使其与最新版本的协议和 PHP 兼容。

安装

composer require tomato/hessian-php

特性

  • 仅 PHP 5
  • Hessian 协议版本 1 和 2,支持自动检测
  • 可以创建客户端和服务器
  • 支持 CURL 和标准 http 流包装器

快速开始

消费 Hessian Web 服务

要开始消费远程 Hessian Web 服务,您只需做以下操作

  1. 创建一个 HessianClient 对象,传递服务的 URL 以及如果需要的话额外的选项
  2. 调用方法

这是一个示例代码,它创建了一个远程服务的代理,调用几个方法并打印结果

$testUrl = 'https:///mathService.php';
$proxy = new HessianClient($testUrl);
try {
    echo $proxy->div(2, 5); 
} catch (Exception $e) {
   // ...handle error
}

创建 Hessian Web 服务

您必须在 Web 服务器中创建一个脚本,按照以下步骤操作

  1. 创建一个 HessianService 包装对象
  2. 在服务构造函数中或通过调用 registerObject() 注册先前创建或新的对象。
  3. 执行 handle() 方法。

例如,如果我们想发布一个与上一个示例兼容的计算器服务,我们必须创建一个类似这样的类

class Math {
  function add($n1,$n2) {
    return $n1+$n2;
  }    
  function sub($n1,$n2) {
    return $n1-$n2;
  }    
  function mul($n1,$n2) {
    return $n1*$n2;
  }    
  function div($n1,$n2) {
    return $n1/$n2;
  }
}

然后创建服务包装器并注册一个 Math 对象,使其可以通过 Hessian 访问

$service = new HessianService(new Math());
$service->handle();

就是这样。现在我们已经成功地从常见的 PHP 对象中发布了 Hessian Web 服务。服务的 URL 与脚本的 URL 相同。

如果您尝试使用 Web 浏览器访问该 URL,您将得到一个 500 错误,因为 Hessian 需要 POST 来操作。

状态

这是一个开发 master 版本。它与 PHP 5.3 兼容。部署需要超过 100KB。

HessianPHP 采用 MIT 许可证,因此您可以在商业应用程序中舒适地使用它。