plinker/core

PlinkerRPC PHP 客户端/服务器使您能够轻松地将 PHP 组件类链接和执行在远程系统上,同时保持本地方法调用的感觉。


README

Build Status StyleCI Scrutinizer Code Quality Code Coverage Packagist Version Packagist Downloads

PlinkerRPC PHP 客户端/服务器使您能够轻松地将通用 PHP 组件链接和执行在远程系统上,同时保持本地方法调用的感觉。

文档: https://plinker-rpc.github.io/core

版本 3 的新变化包括

  • 现在与 PHP 扩展 兼容。
  • 内置核心组件和 info 方法,以便组件可以被发现。
  • 现在只需要一个客户端实例,使用 __get() 动态设置组件。
  • 用户定义组件/类,因此您可以调用自己的代码。
  • 请求和响应均进行加密和签名。

安装

使用以下命令使用 composer 安装此包

$ composer require plinker/core

额外设置

此组件不需要任何额外设置。

客户端

创建客户端实例的方法如下

<?php
require 'vendor/autoload.php';

/**
 * Initialize plinker client.
 *
 * @param string $server - URL to server listener.
 * @param string $config - server secret, and/or a additional component data
 */
$client = new \Plinker\Core\Client(
    'http://example.com/server.php',
    [
        'secret' => 'a secret password',
    ]
);

// or using global function
$client = plinker_client('http://example.com/server.php', 'a secret password');

服务器

创建服务器监听器的方法如下

可选功能

  • 设置一个密钥,所有客户端都将需要。
  • 锁定到特定的客户端 IP 地址以提供额外的安全性。
  • classes 数组中定义自己的类,然后像上面一样访问 $client->class->method(),可以接口外部作用域组件或 composer 包。
  • 为数据库连接等定义额外的键值,或者您可以通过客户端连接传递参数。
<?php
require 'vendor/autoload.php';

/**
 * Initialize plinker server.
 */
if (isset($_SERVER['HTTP_PLINKER'])) {
    // init plinker server
    echo (new \Plinker\Server([
        'secret' => 'a secret password',
        'allowed_ips' => [
            '127.0.0.1'
        ],
        'classes' => [
            'test' => [
                // path to file
                'classes/test.php',
                // addtional key/values
                [
                    'key' => 'value'
                ]
            ],
            // you can use namespaced classes
            'Foo\\Demo' => [
                // path to file
                'some_class/demo.php',
                // addtional key/values
                [
                    'key' => 'value'
                ]
            ],
            // ...
        ]
    ]))->listen();
}

方法

一旦设置,您可以通过其命名空间调用类的函数。

信息

info 方法返回定义的端点方法和它们的参数。

调用

$result = $client->info();

响应

Array
(
    [class] => Array
        (
            [Foo\Demo] => Array
                (
                    [config] => Array
                        (
                            [key] => value
                        )

                    [methods] => Array
                        (
                            [config] => Array
                                (
                                )

                            [this] => Array
                                (
                                )

                            [test] => Array
                                (
                                    [0] => x
                                    [1] => y
                                )

                        )

                )

        )

)

测试

$ composer test

贡献

有关详细信息,请参阅 CONTRIBUTING

安全性

如果您发现任何与安全性相关的问题,请通过 https://cherone.co.uk 联系我,而不是使用问题跟踪器。

鸣谢

开发鼓励

如果您使用此代码并从中获利,并希望表示您的感谢,请随时进行捐赠 https://www.paypal.me/lcherone,谢谢。

赞助商

让您的公司或姓名在这里列出。

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 获取更多信息。

有关其他组件,请参阅 组织页面