eduluz1976/action

动态动作(方法/函数)执行包装器。

0.1.1 2019-02-16 08:42 UTC

This package is auto-updated.

Last update: 2024-09-16 21:31:23 UTC


README

介绍

此类旨在实现程序化和动态的函数调用。

如何使用

要使用Action类,只需使用factory方法,构建一个新对象,传递在此函数上要使用的参数。最后,只需执行实例的exec方法,并可选地传递额外的参数。

您可以使用的URI模式

  • 尚未实现

简单函数

调用一个全局函数。

示例

function multiply($x,$y) {
    return $x * $y;
}

$action = Action::factory('multiply()');

$response = $action->exec(2,5);

// result = 10

类方法

实例化一个类对象,并执行分配的方法。

构造函数

如果你的类有构造函数方法,并且需要任何参数,你可以在factory方法的第三个参数中提供它。

$action = Action::factory('MyClass::myFunction()',[],['constructor'=>[1,'string',false]]);

在上面的情况下,值1'string'false将应用于MyClass构造函数。

示例

class MyClass {


    public function myFunction($id, $fieldName) {
        // ...
        return [
            'id' => $id,
            'field_name'=> $fieldName
        ];
    }

}


$action = Action::factory('MyClass::myFunction()', [1, 'name']);

$response = $action->exec();

print_r($response);
 

将显示

Array 
(
    [id] => 1
    [field_name] => name
)

URL调用

ActionURLCallTest类执行远程URL调用,并返回解析的内容。

示例

假设你想调用一个端点

$url = 'post;https://username:password@my.hostname:9090/path?arg=value#anchor';

$action = Action::factory($url);

$response = $action->exec();

测试

要执行测试,只需从根项目文件夹运行vendor/bin/phpunit

但要运行集成测试,需要启动本地服务器。在这种情况下,只需在~/bin/run_integration_tests.sh上执行脚本,然后在另一个终端窗口中运行phpunit