eduluz1976 / action
动态动作(方法/函数)执行包装器。
0.1.1
2019-02-16 08:42 UTC
Requires
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- phpunit/phpunit: =7.0
- vlucas/phpdotenv: ^2.5@dev
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
。