<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.yar.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'yar.constants.php',
    1 => '预定义常量',
    2 => '预定义常量',
  ),
  'up' => 
  array (
    0 => 'book.yar.php',
    1 => 'Yar',
  ),
  'prev' => 
  array (
    0 => 'yar.resources.php',
    1 => '资源类型',
  ),
  'next' => 
  array (
    0 => 'yar.examples.php',
    1 => '示例',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'reference/yar/constants.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="yar.constants" class="appendix">
 <h1 class="title">预定义常量</h1>

 <p class="simpara">下列常量由此扩展定义，且仅在此扩展编译入 PHP 或在运行时动态载入时可用。</p>
 <dl>
  
   <dt id="constant.yar-version">
    <strong><code><a href="yar.constants.php#constant.yar-version">YAR_VERSION</a></code></strong>
    (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     Yar 扩展的版本号，例如
     <code class="literal">&quot;2.4.0&quot;</code>。
    </p>
   </dd>
  
  
   <dt id="constant.yar-has-msgpack">
    <strong><code><a href="yar.constants.php#constant.yar-has-msgpack">YAR_HAS_MSGPACK</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     当 Yar 使用
     <strong class="option configure">--enable-msgpack</strong> 编译时为
     <code class="literal">1</code>，否则为
     <code class="literal">0</code>。
    </p>
   </dd>
  
  
   <dt id="constant.yar-client-protocol-http">
    <strong><code><a href="yar.constants.php#constant.yar-client-protocol-http">YAR_CLIENT_PROTOCOL_HTTP</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     标识 HTTP 协议，通过
     <span class="classname"><a href="class.yar-client.php" class="classname">Yar_Client</a></span> 的只读属性
     <var class="varname">_protocol</var> 对外暴露。
    </p>
   </dd>
  
  
   <dt id="constant.yar-client-protocol-tcp">
    <strong><code><a href="yar.constants.php#constant.yar-client-protocol-tcp">YAR_CLIENT_PROTOCOL_TCP</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     标识 TCP 协议，通过
     <span class="classname"><a href="class.yar-client.php" class="classname">Yar_Client</a></span> 的只读属性
     <var class="varname">_protocol</var> 对外暴露。
    </p>
   </dd>
  
  
   <dt id="constant.yar-client-protocol-unix">
    <strong><code><a href="yar.constants.php#constant.yar-client-protocol-unix">YAR_CLIENT_PROTOCOL_UNIX</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     标识 Unix socket 协议，通过
     <span class="classname"><a href="class.yar-client.php" class="classname">Yar_Client</a></span> 的只读属性
     <var class="varname">_protocol</var> 对外暴露。
    </p>
   </dd>
  
  
   <dt id="constant.yar-opt-packager">
    <strong><code><a href="yar.constants.php#constant.yar-opt-packager">YAR_OPT_PACKAGER</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     客户端选项，用于针对单个客户端覆盖
     <a href="yar.configuration.php#ini.yar.packager" class="link">yar.packager</a> 配置项。
     值必须是
     <code class="literal">php</code>、<code class="literal">json</code> 或
     <code class="literal">msgpack</code> 之一。
    </p>
   </dd>
  
  
   <dt id="constant.yar-opt-persistent">
    <strong><code><a href="yar.constants.php#constant.yar-opt-persistent">YAR_OPT_PERSISTENT</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     客户端选项，用于启用持久连接。当设置为真值时，会使用 HTTP keep-alive，
     使得在同一个 PHP 请求生命周期内，对同一服务器的多次调用可以复用连接。
    </p>
   </dd>
  
  
   <dt id="constant.yar-opt-timeout">
    <strong><code><a href="yar.constants.php#constant.yar-opt-timeout">YAR_OPT_TIMEOUT</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     客户端选项，用于覆盖
     <a href="yar.configuration.php#ini.yar.timeout" class="link">yar.timeout</a> 配置项，单位为毫秒。
    </p>
   </dd>
  
  
   <dt id="constant.yar-opt-connect-timeout">
    <strong><code><a href="yar.constants.php#constant.yar-opt-connect-timeout">YAR_OPT_CONNECT_TIMEOUT</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     客户端选项，用于覆盖
     <a href="yar.configuration.php#ini.yar.connect-timeout" class="link">yar.connect_timeout</a>
     配置项，单位为毫秒。
    </p>
   </dd>
  
  
   <dt id="constant.yar-opt-header">
    <strong><code><a href="yar.constants.php#constant.yar-opt-header">YAR_OPT_HEADER</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     客户端选项，用于添加自定义 HTTP 头。值必须是形如
     <code class="literal">&quot;X-Custom: value&quot;</code>
     的字符串数组。仅对 HTTP 和 HTTPS 协议有效。自 Yar 2.0.4 起可用。
    </p>
   </dd>
  
  
   <dt id="constant.yar-opt-resolve">
    <strong><code><a href="yar.constants.php#constant.yar-opt-resolve">YAR_OPT_RESOLVE</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     客户端选项，用于覆盖 HTTP 调用的主机名解析。
     值必须是 <code class="literal">HOST:PORT:ADDRESS</code>
     格式的字符串数组，遵循 curl
     <strong><code><a href="curl.constants.php#constant.curlopt-resolve">CURLOPT_RESOLVE</a></code></strong> 的语法。需要 libcurl
     &gt;= 7.21.3。自 Yar 2.1.0 起可用。
    </p>
   </dd>
  
  
   <dt id="constant.yar-opt-proxy">
    <strong><code><a href="yar.constants.php#constant.yar-opt-proxy">YAR_OPT_PROXY</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     客户端选项，用于通过 HTTP 代理转发 HTTP 调用。
     值必须是诸如 <code class="literal">127.0.0.1:8888</code> 这样的字符串。
     自 Yar 2.2.0 起可用。
    </p>
   </dd>
  
  
   <dt id="constant.yar-opt-provider">
    <strong><code><a href="yar.constants.php#constant.yar-opt-provider">YAR_OPT_PROVIDER</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     客户端选项，携带随每个请求一起发送的服务提供方标识。
     值必须是长度不超过 32 字节的字符串，该字符串会被传递给服务器端的
     <code class="literal">__auth</code> 魔术方法。自 Yar 2.3.0 起可用。
    </p>
   </dd>
  
  
   <dt id="constant.yar-opt-token">
    <strong><code><a href="yar.constants.php#constant.yar-opt-token">YAR_OPT_TOKEN</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     客户端选项，携带随每个请求一起发送的身份验证令牌。
     值必须是长度不超过 32 字节的字符串，该字符串会被传递给服务器端的
     <code class="literal">__auth</code> 魔术方法。自 Yar 2.3.0 起可用。
    </p>
   </dd>
  
  
   <dt id="constant.yar-packager-php">
    <strong><code><a href="yar.constants.php#constant.yar-packager-php">YAR_PACKAGER_PHP</a></code></strong>
    (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     <code class="literal">php</code> 打包器的标识符，
     <code class="literal">&quot;PHP&quot;</code>。
    </p>
   </dd>
  
  
   <dt id="constant.yar-packager-json">
    <strong><code><a href="yar.constants.php#constant.yar-packager-json">YAR_PACKAGER_JSON</a></code></strong>
    (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     <code class="literal">json</code> 打包器的标识符，
     <code class="literal">&quot;JSON&quot;</code>。
    </p>
   </dd>
  
  
   <dt id="constant.yar-packager-msgpack">
    <strong><code><a href="yar.constants.php#constant.yar-packager-msgpack">YAR_PACKAGER_MSGPACK</a></code></strong>
    (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     <code class="literal">msgpack</code> 打包器的标识符，
     <code class="literal">&quot;MSGPACK&quot;</code>。
    </p>
   </dd>
  
  
   <dt id="constant.yar-err-okey">
    <strong><code><a href="yar.constants.php#constant.yar-err-okey">YAR_ERR_OKEY</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     无错误；请求已被成功处理。
    </p>
   </dd>
  
  
   <dt id="constant.yar-err-packager">
    <strong><code><a href="yar.constants.php#constant.yar-err-packager">YAR_ERR_PACKAGER</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     打包器错误，例如无法解包的消息体。
    </p>
   </dd>
  
  
   <dt id="constant.yar-err-protocol">
    <strong><code><a href="yar.constants.php#constant.yar-err-protocol">YAR_ERR_PROTOCOL</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     协议错误，例如格式错误的 Yar 请求头。
    </p>
   </dd>
  
  
   <dt id="constant.yar-err-request">
    <strong><code><a href="yar.constants.php#constant.yar-err-request">YAR_ERR_REQUEST</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     请求错误，例如调用了一个未定义或非公开的方法。
    </p>
   </dd>
  
  
   <dt id="constant.yar-err-output">
    <strong><code><a href="yar.constants.php#constant.yar-err-output">YAR_ERR_OUTPUT</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     输出错误，例如服务器无法启动输出缓冲区。
    </p>
   </dd>
  
  
   <dt id="constant.yar-err-transport">
    <strong><code><a href="yar.constants.php#constant.yar-err-transport">YAR_ERR_TRANSPORT</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     传输错误，例如连接失败或超时。
    </p>
   </dd>
  
  
   <dt id="constant.yar-err-exception">
    <strong><code><a href="yar.constants.php#constant.yar-err-exception">YAR_ERR_EXCEPTION</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     远程服务在处理请求的过程中抛出了异常。
    </p>
   </dd>
  
  
   <dt id="constant.yar-err-forbidden">
    <strong><code><a href="yar.constants.php#constant.yar-err-forbidden">YAR_ERR_FORBIDDEN</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <p class="simpara">
     请求被服务器端的身份验证拒绝（参见
     <a href="yar.protocol.php" class="link">Yar 协议头</a>的
     <code class="literal">provider</code> 和 <code class="literal">token</code> 字段）。
    </p>
   </dd>
  
 </dl>
</div>
<?php manual_footer($setup); ?>