2024-07-01 02:35:17 +00:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
|
<html lang="zh" dir="ltr">
|
|
|
|
|
|
<head>
|
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
|
|
<title>Doctor 模块 | static-php-cli</title>
|
|
|
|
|
|
<meta name="description" content="Build single static PHP binary, with PHP project together, with popular extensions included.">
|
2025-06-12 04:49:10 +00:00
|
|
|
|
<meta name="generator" content="VitePress v2.0.0-alpha.5">
|
2025-08-05 04:02:24 +00:00
|
|
|
|
<link rel="preload stylesheet" href="/assets/style.D0jsTBaM.css" as="style">
|
2025-06-12 04:49:10 +00:00
|
|
|
|
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
2024-07-01 02:35:17 +00:00
|
|
|
|
|
2025-06-30 14:10:14 +00:00
|
|
|
|
<script type="module" src="/assets/app.DQMp3l4I.js"></script>
|
2024-07-01 02:35:17 +00:00
|
|
|
|
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
2025-06-30 14:10:14 +00:00
|
|
|
|
<link rel="modulepreload" href="/assets/chunks/theme.DbVD3jYa.js">
|
2025-06-12 04:49:10 +00:00
|
|
|
|
<link rel="modulepreload" href="/assets/chunks/framework.PeLcR_tw.js">
|
|
|
|
|
|
<link rel="modulepreload" href="/assets/zh_develop_doctor-module.md.B8r2lbU8.lean.js">
|
2024-07-01 02:35:17 +00:00
|
|
|
|
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
|
|
|
|
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
|
|
|
|
|
</head>
|
|
|
|
|
|
<body>
|
2025-06-12 04:49:10 +00:00
|
|
|
|
<div id="app"><div class="Layout" data-v-5e06b97a><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5e06b97a data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-0ae64501><div class="wrapper" data-v-0ae64501><div class="container" data-v-0ae64501><div class="title" data-v-0ae64501><div class="VPNavBarTitle has-sidebar" data-v-0ae64501 data-v-1e38c6bc><a class="title" href="/zh/" data-v-1e38c6bc><!--[--><!--]--><!----><span data-v-1e38c6bc>static-php-cli</span><!--[--><!--]--></a></div></div><div class="content" data-v-0ae64501><div class="content-body" data-v-0ae64501><!--[--><!--]--><div class="VPNavBarSearch search" data-v-0ae64501><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-0ae64501 data-v-39714824><span id="main-nav-aria-label" class="visually-hidden" data-v-39714824> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/guide/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>构建指南</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/develop/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>进阶</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/contributing/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>贡献</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh/faq/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>FAQ</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-0ae64501 data-v-88af2de4 data-v-3ab3deac><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-3ab3deac><span class="text" data-v-3ab3deac><span class="vpi-languages option-icon" data-v-3ab3deac></span><!----><span class="vpi-chevron-down text-icon" data-v-3ab3deac></span></span></button><div class="menu" data-v-3ab3deac><div class="VPMenu" data-v-3ab3deac data-v-c9afd7f1><!----><!--[--><!--[--><div class="items" data-v-88af2de4><p class="title" data-v-88af2de4>简体中文</p><!--[--><div class="VPMenuLink" data-v-88af2de4 data-v-35975db6><a class="VPLink link" href="/en/develop/doctor-module.html" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-0ae64501 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-0ae64501 data-v-0394ad82 data-v-d474d15f><!--[--><a class="VPSocialLink no-icon" href="https://github.com/crazywhalecc/static-php-cli" aria-label="github" target="_blank" rel="noopener" data-v-d474d15f data-v-bd121fe5><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-0ae64501 data-v-bb2aa2f0 data-v-3ab3deac><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-3ab3deac><span class="vpi-more-horizontal icon" data-v-3ab3deac></span></button><div class="menu" data-v-3ab3deac><div class="VPMenu" data-v-3ab3deac data-v-c9afd7f1><!----><!--[--><!--[--><div class="group translations" data-v-bb2aa2f0><p class="trans-title" data-v-bb2aa2f0>简体中文</p><!--[--><div class="VPMenuLink" data-v-bb2aa2f0 data-v-35975db6><a class="VPLink link" href="/en/develop/doctor-module.html" data-v-35975db6><!--[--><span data-v-35975db6>English</span><!--]--></a></div><!--]--></di
|
2024-07-01 02:35:17 +00:00
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">use</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> SPC\doctor\AsFixItem</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">use</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> SPC\doctor\CheckResult</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
|
|
|
|
|
<span class="line"></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">#[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">AsCheckItem</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'if necessary tools are installed'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">limit_os</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Darwin'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">level</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">997</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)]</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> checkCliTools</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ?</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">CheckResult</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $missing </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [];</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> foreach</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">self::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">REQUIRED_COMMANDS</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $cmd) {</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">$this</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-></span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">findCommand</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">($cmd) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">===</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> null</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $missing[] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $cmd;</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">empty</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">($missing)) {</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> CheckResult</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">fail</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'missing system commands: '</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> .</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> implode</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">', '</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, $missing), </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'build-tools'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, [$missing]);</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> CheckResult</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">::</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">ok</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">();</span></span>
|
2025-06-12 04:49:10 +00:00
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>属性的第一个参数就是检查项目的名称,后面的 <code>limit_os</code> 参数是限制了该检查项仅在指定的系统下触发,<code>level</code> 是执行该检查项的优先级,数字越大,优先级越高。</p><p>里面用到的 <code>$this->findCommand()</code> 方法为 <code>SPC\builder\traits\UnixSystemUtilTrait</code> 的方法,用途是查找系统命令所在位置,找不到时返回 NULL。</p><p>每个检查项的方法都应该返回一个 <code>SPC\doctor\CheckResult</code>:</p><ul><li>在返回 <code>CheckResult::fail()</code> 时,第一个参数用于输出终端的错误提示,第二个参数是在这个检查项可自动修复时的修复项目名称。</li><li>在返回 <code>CheckResult::ok()</code> 时,表明检查通过。你也可以传递一个参数,用于返回检查结果,例如:<code>CheckResult::ok('OS supported')</code>。</li><li>在返回 <code>CheckResult::fail()</code> 时,如果包含了第三个参数,第三个参数的数组将被当作 <code>AsFixItem</code> 的参数。</li></ul><p>下面是这个检查项对应的自动修复项的方法:</p><div class="language-php"><button title="Copy Code" class="copy"></button><span class="lang">php</span><pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0" dir="ltr"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">#[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">AsFixItem</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'build-tools'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)]</span></span>
|
2024-07-01 02:35:17 +00:00
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">public</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> fixBuildTools</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">array</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $missing)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> bool</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> foreach</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ($missing </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $cmd) {</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> try</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> shell</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-></span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">exec</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'brew install '</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> .</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> escapeshellarg</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">($cmd));</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">catch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">RuntimeException</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
|
|
|
|
|
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
2025-06-12 04:49:10 +00:00
|
|
|
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p><code>#[AsFixItem()]</code> 属性传入的参数即修复项的名称,该方法必须返回 True 或 False。当返回 False 时,表明自动修复失败,需要手动处理。</p><p>此处的代码中 <code>shell()->exec()</code> 是项目的执行命令的方法,用于替代 <code>exec()</code>、<code>system()</code>,同时提供了 debug、获取执行状态、进入目录等特性。</p></div></div></main><footer class="VPDocFooter" data-v-7011f0d8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/zh/develop/php-src-changes.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Previous page</span><span class="title" data-v-e257564d>对 PHP 源码的修改</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/zh/develop/source-module.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>资源模块</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5e06b97a data-v-c3855bb3><div class="container" data-v-c3855bb3><p class="message" data-v-c3855bb3>Released under the MIT License.</p><p class="copyright" data-v-c3855bb3>Copyright © 2023-present crazywhalecc</p></div></footer><!--[--><!--]--></div></div>
|
2025-08-21 13:32:23 +00:00
|
|
|
|
<script>window.__VP_HASH_MAP__=JSON.parse("{\"deps-craft-yml.md\":\"DWPKeuXi\",\"deps-map-ext.md\":\"D_l0SvsE\",\"deps-map-lib.md\":\"DOtBR8NX\",\"en_contributing_index.md\":\"C8tXDL1f\",\"en_develop_craft-yml.md\":\"BDq8uWIr\",\"en_develop_doctor-module.md\":\"DYVfKght\",\"en_develop_index.md\":\"DSlquryN\",\"en_develop_php-src-changes.md\":\"DadHFaGC\",\"en_develop_source-module.md\":\"CeJEgS_j\",\"en_develop_structure.md\":\"D1kBTweh\",\"en_develop_system-build-tools.md\":\"DK4AaCy_\",\"en_faq_index.md\":\"DnHLgGcl\",\"en_guide_action-build.md\":\"BCJvLz8l\",\"en_guide_build-on-windows.md\":\"CG23CkLK\",\"en_guide_build-with-glibc.md\":\"BDBCsGWa\",\"en_guide_cli-generator.md\":\"I7TdmgOR\",\"en_guide_deps-map.md\":\"yE0YY7Hq\",\"en_guide_env-vars.md\":\"DzVATbtO\",\"en_guide_extension-notes.md\":\"qcRlR4zd\",\"en_guide_extensions.md\":\"BenMxybF\",\"en_guide_index.md\":\"By6XUN6E\",\"en_guide_manual-build.md\":\"BS1NEyZX\",\"en_guide_troubleshooting.md\":\"BvJgQKvb\",\"en_index.md\":\"kO-e39M0\",\"extension-notes.md\":\"DkpYDq7p\",\"extensions.md\":\"I66dgmMR\",\"index.md\":\"wJBxKTzp\",\"zh_contributing_index.md\":\"22akXfoC\",\"zh_develop_craft-yml.md\":\"Dfv1fXuq\",\"zh_develop_doctor-module.md\":\"B8r2lbU8\",\"zh_develop_index.md\":\"DecU9Y3b\",\"zh_develop_php-src-changes.md\":\"CkjaMIky\",\"zh_develop_source-module.md\":\"DoBnezP5\",\"zh_develop_structure.md\":\"DStJTsYD\",\"zh_develop_system-build-tools.md\":\"CxPkPV_h\",\"zh_faq_index.md\":\"nE1d0aPt\",\"zh_guide_action-build.md\":\"CYeVjGhJ\",\"zh_guide_build-on-windows.md\":\"6JBREABQ\",\"zh_guide_build-with-glibc.md\":\"CGbU937o\",\"zh_guide_cli-generator.md\":\"DT7mfJCx\",\"zh_guide_deps-map.md\":\"Bx7cbT0J\",\"zh_guide_env-vars.md\":\"DqYHbUfS\",\"zh_guide_extension-notes.md\":\"BkfCboVT\",\"zh_guide_extensions.md\":\"DZdE8zh5\",\"zh_guide_index.md\":\"DWAO4_zO\",\"zh_guide_manual-build.md\":\"DAnA1dt8\",\"zh_guide_troubleshooting.md\":\"DSUIb51x\",\"zh_index.md\":\"DcikGFee\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"static-php-cli\",\"description\":\"Build single static PHP binary, with PHP project together, with popular extensions included.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/crazywhalecc/static-php-cli\"}],\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2023-present crazywhalecc\"}},\"locales\":{\"en\":{\"label\":\"English\",\"lang\":\"en\",\"themeConfig\":{\"nav\":[{\"text\":\"Guide\",\"link\":\"/en/guide/\"},{\"text\":\"Advanced\",\"link\":\"/en/develop/\"},{\"text\":\"Contributing\",\"link\":\"/en/contributing/\"},{\"text\":\"FAQ\",\"link\":\"/en/faq/\"}],\"sidebar\":{\"/en/guide/\":[{\"text\":\"Basic Build Guides\",\"items\":[{\"text\":\"Guide\",\"link\":\"/en/guide/\"},{\"text\":\"Build (Local)\",\"link\":\"/en/guide/manual-build\"},{\"text\":\"Build (CI)\",\"link\":\"/en/guide/action-build\"},{\"text\":\"Supported Extensions\",\"link\":\"/en/guide/extensions\"},{\"text\":\"Extension Notes\",\"link\":\"/en/guide/extension-notes\"},{\"text\":\"Build Command Generator\",\"link\":\"/en/guide/cli-generator\"},{\"text\":\"Environment Variables\",\"link\":\"/en/guide/env-vars\",\"collapsed\":true},{\"text\":\"Dependency Table\",\"link\":\"/en/guide/deps-map\"}]},{\"text\":\"Extended Build Guides\",\"items\":[{\"text\":\"Troubleshooting\",\"link\":\"/en/guide/troubleshooting\"},{\"text\":\"Build on Windows\",\"link\":\"/en/guide/build-on-windows\"},{\"text\":\"Build with GNU libc\",\"link\":\"/en/guide/build-with-glibc\"}]}],\"/en/develop/\":[{\"text\":\"Development\",\"items\":[{\"text\":\"Get Started\",\"link\":\"/en/develop/\"},{\"text\":\"Project Structure\",\"link\":\"/en/develop/structure\"},{\"text\":\"PHP Source Modification\",\"link\":\"/en/develop/php-src-changes\"}]},{\"text\":\"Module\",\"items\":[{\"text\":\"Doctor \",\"link\":\"/en/develop/doctor-module\"},{\"text\":\"Source\",\"link\":\"/en/develop/source-
|
2024-07-01 02:35:17 +00:00
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
|
</html>
|