我正在使用php构建一个api,我对扩展类或使用特征并不熟悉。目前我正在使用特征来更好地构建我的主["bob", "fred"]
类。
请参阅下文了解当前的工作方式。我想知道我是否可以在API
类中创建一个类。例如,负责API
方法。这需要访问当前实例的路由器和api上的所有方法。
示例
当人们访问webhook
/v1/{method}/{verb}/{args}
路由器类
if (!array_key_exists('HTTP_ORIGIN', $_SERVER)) {
$_SERVER['HTTP_ORIGIN'] = $_SERVER['SERVER_NAME'];
}
try {
$API = new API($_REQUEST['request'], $_SERVER['HTTP_ORIGIN']);
echo $API->processAPI();
}
catch (Exception $e) {
echo json_encode(['error' => $e->getMessage()]);
}
我的主要API类
abstract class router {
/*
Methods which seek out
* method
* verb
* args
And do authentication
*/
}
答案 0 :(得分:0)
您可以将webhook类对象注入API类。小例子,按要求。
class Webhook { // some methods }
class API extends router {
private $webhook;
public function __construct(Webhook $webhook)
{
$this->webhook = $webhook;
}
// some generic methods specifically for this class
public function useWebhook()
{
$result = $this->webhook->someWebhookMethod();
// ...
}
// Other methods but in different files (for readability and oversight)
use otherMethod1;
use otherMethod2;
// ...
}
何时可以像这样创建对象
$webhook = new Webhook();
$api = new API($webhook);
$api->useWebhook();
你在找这个吗?
您可以在此处详细了解这种称为“依赖注入”的方法:http://php-di.org/doc/understanding-di.html