soluble / japha-pjb62-compat
此软件包已被弃用且不再维护。未建议替代软件包。
可溶性PHP Java桥PJB62兼容层
1.1.0
2017-03-01 13:51 UTC
Requires
- php: ^5.6 || ^7.0
- soluble/japha: ^1.0
Requires (Dev)
- belgattitude/pjbserver-tools: ^2.1.1
- friendsofphp/php-cs-fixer: ^2.0.0
- phpunit/phpunit: ^4.8 || ^5.4
Suggests
- belgattitude/pjbserver-tools: PHPJavabridge standalone server support (unit tests)
README
介绍
*** 进行中 ***
历史上,PHP/Java桥客户端不支持命名空间。
如果您有依赖旧版php-java-bridge的现有代码,并且不想迁移到由soluble/japha提供的较新实现,请安装此软件包。
特性
- 使 soluble-japha 兼容旧版phpjavabridge过程式API
要求
- PHP 5.5+, 7.0 或 HHVM >= 3.2。
- PHPJavaBridge服务器运行
安装
-
PHP安装 (客户端)
通过 composer。
$ composer require "soluble/japha-pjb62-compat"
大多数现代框架都包含Composer,但请确保以下文件已包含
<?php // include the Composer autoloader require 'vendor/autoload.php';
-
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:stop
、pjbserver:restart
、pjbserver: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。
- 尝试更改初始化顺序