Back to Hhvm

GetOpName

hphp/hack/manual/apis/Classes/MCRouter/getOpName.md

latest3.4 KB
Original Source

:::info[Note] This is a point-in-time snapshot of the API documentation from January 2026. Going forward, we will not be maintaining a public copy of these references, and recommend users to refer to the built-in signature helpers available in the Hack LSP instead for complete and up-to-date information. :::

Translate an mc_op_* numeric code to something human-readable

Hack
public static function getOpName(
  int $op,
): string;

Parameters

  • int $op

Returns

  • string - - The name of the op

Examples

The following example shows how to use MCRouter::getOpName to get the English readable name for an MCRouter operation given as an integer.

Here is the list of the current mappings:

IntegerConstantReturned String
0MCRouter::mc_op_unknownunknown
1MCRouter::mc_op_echoecho
2MCRouter::mc_op_quitquit
3MCRouter::mc_op_versionversion
4MCRouter::mc_op_servererrservererr
5MCRouter::mc_op_getget
6MCRouter::mc_op_setset
7MCRouter::mc_op_addadd
8MCRouter::mc_op_replacereplace
9MCRouter::mc_op_appendappend
10MCRouter::mc_op_prependprepend
11MCRouter::mc_op_cascas
12MCRouter::mc_op_deletedelete
13MCRouter::mc_op_nopsnops
14MCRouter::mc_op_incrincr
15MCRouter::mc_op_decrdecr
16MCRouter::mc_op_flushallflushall
17MCRouter::mc_op_flushreflushre
18MCRouter::mc_op_statsstats
19MCRouter::mc_op_verbosityverbosity
20MCRouter::mc_op_lease_getlease-get
21MCRouter::mc_op_lease_setlease-set
22MCRouter::mc_op_shutdownshutdown
23MCRouter::mc_op_endend
24MCRouter::mc_op_metagetmetaget
25MCRouter::mc_op_execexec
26MCRouter::mc_op_getsgets
27MCRouter::mc_op_get_service_infoget-service-info
basic-usage.hack
function get_simple_mcrouter(): \MCRouter {
  $servers = Vector {\getenv('HHVM_TEST_MCROUTER')};
  $mc = \MCRouter::createSimple($servers);
  return $mc;
}

function get_op_name(int $op_num): string {
  return \MCRouter::getOpName($op_num);
}

<<__EntryPoint>>
async function run(): Awaitable<void> {
  $mc = get_simple_mcrouter();

  // You can pass raw integers
  \var_dump(get_op_name(3));
  \var_dump(get_op_name(9));
  \var_dump(get_op_name(-1));
  \var_dump(get_op_name(0));
  \var_dump(get_op_name(100));

  // You can pass MCRouter constants
  \var_dump(get_op_name(\MCRouter::mc_op_servererr));
  \var_dump(get_op_name(\MCRouter::mc_op_exec));
  \var_dump(get_op_name(\MCRouter::mc_op_unknown));

  // You can pass something from an exception too
  try {
    $val = await $mc->get('KEYDOESNOTEXISTIHOPEREALLY');
  } catch (\MCRouterException $ex) {
    \var_dump($ex->getOp());
    \var_dump(get_op_name($ex->getOp()));
  }
}
```.hhvm.expectf
string(7) "version"
string(6) "append"
string(7) "unknown"
string(7) "unknown"
string(7) "unknown"
string(9) "servererr"
string(4) "exec"
string(7) "unknown"
int(5)
string(3) "get"
```.example.hhvm.out
string(7) "version"
string(6) "append"
string(7) "unknown"
string(7) "unknown"
string(7) "unknown"
string(9) "servererr"
string(4) "exec"
string(7) "unknown"
int(5)
string(3) "get"
```.skipif
\Hack\UserDocumentation\API\Examples\MCRouter\skipif();
<!-- HHAPIDOC -->