【发布时间】:2017-11-04 11:41:24
【问题描述】:
所以我更具体地使用了可通过 composer 获得的 Elasticsearch。这是5.0版本。我正在尝试在类内的私有函数内建立客户端连接。基本上我想要的是 1 个具有 2 个私有函数的类。第一个私有函数将使用以下方法创建客户端连接:
$hosts = ['host' => 'http://censored'];
$clientBuilder = ClientBuilder::create();
$clientBuilder->setHosts($hosts);
$clientBuilder->setSerializer('\Elasticsearch\Serializers\EverythingToJSONSerializer');
$client = $clientBuilder->build();
$searchParams = ['index' => 'main'];
请注意,下面提到的第二个私有函数必须可以访问 $searchparams 和 $client。
第二个私有函数将从公共函数中获取类型和查询,并使用 $client 和 $searchparam 向 Elasticsearch 发起 API 请求
总结:公共函数将从另一个文件中调用。要使用它,需要传递类型 ($type) 和查询 ($query),这将传递给第二个私有函数。第二个私有函数将向 Elasticsearch 发起 API 请求并将结果返回给公共函数,然后公共函数会将结果回显给用户。
我相信这是可能的,但我不知道如何在私有函数中调用或使用另一个命名空间。将其放入私有函数并预先自动加载 Elasticsearch 会导致找不到 ClientBuilder。
提前谢谢你,很抱歉这么长的帖子。
【问题讨论】:
标签: php oop elasticsearch namespaces