Skip to content

PreparedQuery

Daniel Carbone edited this page Nov 6, 2026 · 1 revision

PreparedQuery

$consul->PreparedQuery wraps Consul's Prepared Query API.

use DCarbone\PHPConsulAPI\PreparedQuery\PreparedQueryDefinition;
use DCarbone\PHPConsulAPI\PreparedQuery\ServiceQuery;

[$id, $wm, $err] = $consul->PreparedQuery->Create(query: new PreparedQueryDefinition(
    Name: 'web-query',
    Service: new ServiceQuery(Service: 'web', OnlyPassing: true),
));

[$result, $qm, $err] = $consul->PreparedQuery->Execute(queryIDOrName: 'web-query');
foreach ($result->Nodes as $entry) {
    // ServiceEntry, same shape as Health->Service results
    echo "{$entry->Node->Node} {$entry->Service->Port}\n";
}

[$wm, $err] = $consul->PreparedQuery->Delete(queryID: $id);

Get returns an array of definitions (Consul's endpoint returns a list), so use $defs[0]:

[$defs, $qm, $err] = $consul->PreparedQuery->Get(queryID: $id);
$def = $defs[0];

ServiceQuery also supports Tags, NodeMeta, ServiceMeta, Near, Failover and IgnoreCheckIDs.

See Responses and Errors and Query and Write Options.

Clone this wiki locally