soluble/japha-pjb62-compat

此软件包已被弃用且不再维护。未建议替代软件包。

可溶性PHP Java桥PJB62兼容层

1.1.0 2017-03-01 13:51 UTC

This package is auto-updated.

Last update: 2022-02-01 12:59:03 UTC


README

PHP Version Build Status Code Coverage Scrutinizer Code Quality Latest Stable Version Total Downloads License

介绍

*** 进行中 ***

历史上,PHP/Java桥客户端不支持命名空间。

如果您有依赖旧版php-java-bridge的现有代码,并且不想迁移到由soluble/japha提供的较新实现,请安装此软件包。

特性

要求

安装

  1. PHP安装 (客户端)

    通过 composer

    $ composer require "soluble/japha-pjb62-compat"

    大多数现代框架都包含Composer,但请确保以下文件已包含

    <?php
    // include the Composer autoloader
    require 'vendor/autoload.php';
  2. PHP-Java-bridge服务器

    参考soluble-japha项目中提供的最新文档。

    或使用独立的服务器快速安装指南

    $ mkdir -p /my/path/pjbserver-tools
    $ cd /my/path/pjbserver-tools
    $ composer create-project --no-dev --prefer-dist "belgattitude/pjbserver-tools"
    $ ./bin/pjbserver-tools pjbserver:start -vvv ./config/pjbserver.config.php.dist

    服务器将在默认端口 8089 上启动。如果您想更改它,创建./config/pjbserver.config.php.dist的本地副本,并在上述命令中引用它。

    使用pjbserver:stoppjbserver:restartpjbserver:status命令来控制或查询服务器状态。

    对于生产环境,建议将JavaBridge servlet部署到J2EE兼容服务器(Tomcat等)。请参阅完整的java服务器安装文档

示例

连接示例

使用正确的驱动程序(目前仅支持Pjb62)和PHP-Java-bridge服务器地址配置您的桥接适配器。

<?php

use Soluble\Japha\Bridge\Adapter as BridgeAdapter;

$ba = new BridgeAdapter([
    'driver' => 'Pjb62',
    'servlet_address' => 'localhost:8089/servlet.phpjavabridge'
]);

这将替换之前版本中使用的include('xxx/Java.inc)

基本Java使用

在启用旧模式的情况下,您可以直接使用java*函数

<?php

use Soluble\Japha\Bridge\Adapter as BridgeAdapter;

$ba = new BridgeAdapter([
    'driver' => 'Pjb62',
    'servlet_address' => 'localhost:8083/servlet.phpjavabridge'
]);

$bigint = new Java("java.math.BigInteger", 1);
$system = java_class('java.lang.System);

java_instanceof($bigint, 'java.math.BigInteger'); // -> true
java_inspect($bigint); 
java_values($bigint);
//java_invoke();

API

重构常量

常量 示例
JAVA_HOSTS define("JAVA_HOSTS", "127.0.0.1:8787")
JAVA_SERVLET define("JAVA_SERVLET", "/MyWebApp/servlet.phpjavabridge")
JAVA_PREFER_VALUES define("JAVA_PREFER_VALUES", 1)
JAVA_LOG_LEVEL define("JAVA_LOG_LEVEL", null)
JAVA_SEND_SIZE define("JAVA_SEND_SIZE", 8192)
JAVA_RECV_SIZE 定义("JAVA_RECV_SIZE", 8192)
JAVA_DISABLE_AUTOLOAD 不再适用 - PSR4 ;)

初始化

旧方法 新方法
包含(... /Java.inc) $ba = new Bridge\Adapter($option);

API

以下表格映射了旧版和新版推荐API。

遗留 Bridge\Adapter ($ba)
new Java($class, $args=null) : Java $ba->java($class, $args=null) : Interfaces\JavaObject
java_class($class) : JavaClass $ba->javaClass($class) Interfaces\JavaClass
java_instanceof($object, $class) : boolean $ba->isInstanceOf($object, $class) : boolean

(正在审查,即将实现)

遗留 Bridge\Adapter ($ba)
java_values($object) : mixed $ba->getValues($object) : mixed
java_invoke($object, $method, $args=null) : `mixed null
java_inspect($object) : string $ba->debug()->inspect($object) : string
getLastException : Exception $ba->debug()->getLastException() : Exception
clearLastException $ba->debug()->clearLastException()

function java_is_null($value) function java_is_true($value) function java_is_false($value)

重构指南

保持逐步方法...你可以同时使用API。

  1. 尝试更改初始化顺序

编码标准