Files
static-php-cli/en/guide/migrate-from-v2.html
2026-06-16 05:58:18 +00:00

45 lines
46 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Migrating from v2 | StaticPHP</title>
<meta name="description" content="A powerful tool designed for building portable executables including PHP, extensions, and more.">
<meta name="generator" content="VitePress v2.0.0-alpha.12">
<link rel="preload stylesheet" href="/assets/style.DtFsVR9B.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.DFjSYdj3.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.CtIPYXhG.js">
<link rel="modulepreload" href="/assets/chunks/framework.C2AwuPrQ.js">
<link rel="modulepreload" href="/assets/en_guide_migrate-from-v2.md.CfVymFnT.lean.js">
<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>
<div id="app"><div class="Layout" data-v-1df9f90f><!--[--><!--]--><!--[--><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-1df9f90f data-v-9f75dce3><div class="VPNavBar" data-v-9f75dce3 data-v-2a96a3d0><div class="wrapper" data-v-2a96a3d0><div class="container" data-v-2a96a3d0><div class="title" data-v-2a96a3d0><div class="VPNavBarTitle has-sidebar" data-v-2a96a3d0 data-v-1e38c6bc><a class="title" href="/en/" data-v-1e38c6bc><!--[--><!--]--><!--[--><img class="VPImage logo" src="/images/static-php_nobg.png" alt data-v-8426fc1a><!--]--><span data-v-1e38c6bc>StaticPHP</span><!--[--><!--]--></a></div></div><div class="content" data-v-2a96a3d0><div class="content-body" data-v-2a96a3d0><!--[--><!--]--><div class="VPNavBarSearch search" data-v-2a96a3d0><!--[--><!----><div id="docsearch"><button type="button" aria-label="Search" aria-keyshortcuts="/ control+k meta+k" class="DocSearch DocSearch-Button"><span class="DocSearch-Button-Container"><span class="vpi-search DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key"></kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-2a96a3d0 data-v-39714824><span id="main-nav-aria-label" class="visually-hidden" data-v-39714824> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en/guide/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Guide</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en/develop/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Develop</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en/contributing/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Contributing</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en/faq/" tabindex="0" data-v-39714824 data-v-e56f3d57><!--[--><span data-v-e56f3d57>FAQ</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-39714824 data-v-42cb505d><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-42cb505d><span class="text" data-v-42cb505d><!----><span data-v-42cb505d>v3 (alpha)</span><span class="vpi-chevron-down text-icon" data-v-42cb505d></span></span></button><div class="menu" data-v-42cb505d><div class="VPMenu" data-v-42cb505d data-v-25a6cce8><div class="items" data-v-25a6cce8><!--[--><!--[--><div class="VPMenuLink" data-v-25a6cce8 data-v-cd834e02><a class="VPLink link" href="/en/" data-v-cd834e02><!--[--><span data-v-cd834e02>v3 (alpha)</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-25a6cce8 data-v-cd834e02><a class="VPLink link vp-external-link-icon" href="https://static-php.github.io/v2-docs/" target="_blank" rel="noreferrer" data-v-cd834e02><!--[--><span data-v-cd834e02>v2</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-2a96a3d0 data-v-88af2de4 data-v-42cb505d><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-42cb505d><span class="text" data-v-42cb505d><span class="vpi-languages option-icon" data-v-42cb505d></span><!----><span class="vpi-chevron-down text-icon" data-v-42cb505d></span></span></button><div class="menu" data-v-42cb505d><div class="VPMenu" data-v-42cb505d data-v-25a6cce8><!----><!--[--><!--[--><div class="items" data-v-88af2de4><p class="title" data-v-88af2de4>English</p><!--[--><div class="VPMenuLink" data-v-88af2de4 data-v-cd834e02><a class="VPLink link" href="/zh/guide/migrate-from-v2.html" data-v-cd834e02><!--[--><span data-v-cd834e02>简体中文</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-2a96a3d0 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-2a96a3d0 data-v-0394ad82 data-v-d07f11e6><!--[--><a class="VPSocialLink no-icon" href="https://github.com/crazywhalecc/static-php-cli" aria-label="github" target="_blank" rel="me noopener" data-v-d07f11e6 data-v-591a6b30><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-2a96a3d0 data-v-bb2aa2f0 data-v-42cb505d><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-42cb505d><span class="vpi-more-horizontal icon" data-v-42cb505d></span></button><div class="menu" data-v-42cb505d><div class="VPMenu" data-v-42cb505d data-v-25a6cce8><!----><!--[--><!--[--><div class="group translations" data-v-bb2aa2f0><p class="trans-title" data-v-bb2aa2f0>English</p><!--[--><div class="VPMenuLink" data-v-bb2aa2f0 data-v-cd834e02><a class="VPLink link" href="/zh/guide/migrate-from-v2.html" data-v-cd834e02><!--[--><span data-v-cd834e02>简体中文</span><!--]--></a></div><!--]--></div><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bb2aa2f0 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></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-d07f11e6><!--[--><a class="VPSocialLink no-icon" href="https://github.com/crazywhalecc/static-php-cli" aria-label="github" target="_blank" rel="me noopener" data-v-d07f11e6 data-v-591a6b30><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-2a96a3d0 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-2a96a3d0><div class="divider-line" data-v-2a96a3d0></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-1df9f90f data-v-8acdfeb5><div class="container" data-v-8acdfeb5><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-8acdfeb5><span class="vpi-align-left menu-icon" data-v-8acdfeb5></span><span class="menu-text" data-v-8acdfeb5>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-8acdfeb5 data-v-0bf0e06f><button data-v-0bf0e06f>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-1df9f90f data-v-e7c6e512><div class="curtain" data-v-e7c6e512></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-e7c6e512><span class="visually-hidden" id="sidebar-aria-label" data-v-e7c6e512> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-8d50c081><section class="VPSidebarItem level-0 has-active" data-v-8d50c081 data-v-d81de50c><div class="item" role="button" tabindex="0" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><h2 class="text" data-v-d81de50c>Getting Started</h2><!----></div><div class="items" data-v-d81de50c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/installation.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>Installation</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/first-build.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>First Build</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/sapi-reference.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>PHP SAPI Reference</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/cli-reference.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>CLI Reference</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/migrate-from-v2.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>Migrating from v2</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-8d50c081><section class="VPSidebarItem level-0" data-v-8d50c081 data-v-d81de50c><div class="item" role="button" tabindex="0" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><h2 class="text" data-v-d81de50c>Extensions</h2><!----></div><div class="items" data-v-d81de50c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/extensions.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>Supported Extensions</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/extension-notes.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>Extension Notes</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/cli-generator.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>Build Command Generator</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-8d50c081><section class="VPSidebarItem level-0" data-v-8d50c081 data-v-d81de50c><div class="item" role="button" tabindex="0" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><h2 class="text" data-v-d81de50c>Reference</h2><!----></div><div class="items" data-v-d81de50c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/env-vars.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>Environment Variables</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/deps-map.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>Dependency Table</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-d81de50c data-v-d81de50c><div class="item" data-v-d81de50c><div class="indicator" data-v-d81de50c></div><a class="VPLink link link" href="/en/guide/troubleshooting.html" data-v-d81de50c><!--[--><p class="text" data-v-d81de50c>Troubleshooting</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-1df9f90f data-v-aff0b8d7><div class="VPDoc has-sidebar has-aside" data-v-aff0b8d7 data-v-7011f0d8><!--[--><!--]--><div class="container" data-v-7011f0d8><div class="aside" data-v-7011f0d8><div class="aside-curtain" data-v-7011f0d8></div><div class="aside-container" data-v-7011f0d8><div class="aside-content" data-v-7011f0d8><div class="VPDocAside" data-v-7011f0d8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-60d5052e><div class="content" data-v-60d5052e><div class="outline-marker" data-v-60d5052e></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-60d5052e>On this page</div><ul class="VPDocOutlineItem root" data-v-60d5052e data-v-2d0bdf9b><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-7011f0d8><div class="content-container" data-v-7011f0d8><!--[--><!--]--><main class="main" data-v-7011f0d8><div style="position:relative;" class="vp-doc _en_guide_migrate-from-v2 external-link-icon-enabled" data-v-7011f0d8><div><h1 id="migrating-from-v2" tabindex="-1">Migrating from v2 <a class="header-anchor" href="#migrating-from-v2" aria-label="Permalink to “Migrating from v2”"></a></h1><p>StaticPHP v3 is a ground-up rewrite. The core build workflow (<code>download → build → combine</code>) remains familiar, but several commands, options, and configuration fields have changed. This page covers everything you need to update before switching.</p><div class="info custom-block"><p class="custom-block-title">Scope</p><p>This guide only covers user-facing CLI commands, options, <code>craft.yml</code> fields, and <code>env.ini</code> variable names. Internal PHP APIs are not covered.</p></div><h2 id="documentation-url-change" tabindex="-1">Documentation URL Change <a class="header-anchor" href="#documentation-url-change" aria-label="Permalink to “Documentation URL Change”"></a></h2><p>The official documentation site has moved:</p><ul><li><strong>v3 docs (current)</strong>: <a href="https://static-php.dev" target="_blank" rel="noreferrer">https://static-php.dev</a> — the main site now hosts v3 documentation.</li><li><strong>v2 docs (archived)</strong>: <a href="https://static-php.github.io/v2-docs/" target="_blank" rel="noreferrer">https://static-php.github.io/v2-docs/</a> — v2 documentation is preserved here for reference.</li></ul><p>Update any bookmarks or internal links accordingly.</p><h2 id="spc-binary-download-url-change" tabindex="-1"><code>spc</code> Binary Download URL Change <a class="header-anchor" href="#spc-binary-download-url-change" aria-label="Permalink to “spc Binary Download URL Change”"></a></h2><p>The nightly <code>spc</code> self-contained binary has moved to a new path:</p><table tabindex="0"><thead><tr><th></th><th>URL</th></tr></thead><tbody><tr><td><strong>v2</strong></td><td><code>https://dl.static-php.dev/static-php-cli/spc-bin/nightly/</code></td></tr><tr><td><strong>v3</strong></td><td><code>https://dl.static-php.dev/v3/spc-bin/nightly/</code></td></tr></tbody></table><p>Update any CI scripts or bootstrap commands that download the <code>spc</code> binary directly. For example:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6A737D;--shiki-dark:#6A737D;"># v2</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://dl.static-php.dev/static-php-cli/spc-bin/nightly/spc-linux-x86_64</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># v3</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://dl.static-php.dev/v3/spc-bin/nightly/spc-linux-x86_64</span></span></code></pre></div><h2 id="removed-commands" tabindex="-1">Removed Commands <a class="header-anchor" href="#removed-commands" aria-label="Permalink to “Removed Commands”"></a></h2><table tabindex="0"><thead><tr><th>v2 Command</th><th>v3 Replacement</th><th>Notes</th></tr></thead><tbody><tr><td><code>del-download</code></td><td><code>spc reset</code></td><td><code>reset</code> also accepts <code>--with-pkgroot</code> and <code>--with-download</code> for finer control</td></tr><tr><td><code>del-download --all</code></td><td><code>spc reset --with-download</code></td><td>Removes the downloads cache directory</td></tr></tbody></table><h2 id="removed-options" tabindex="-1">Removed Options <a class="header-anchor" href="#removed-options" aria-label="Permalink to “Removed Options”"></a></h2><h3 id="with-added-patch-p-build-command" tabindex="-1"><code>--with-added-patch</code> / <code>-P</code> (build command) <a class="header-anchor" href="#with-added-patch-p-build-command" aria-label="Permalink to “--with-added-patch / -P (build command)”"></a></h3><p>This option allowed injecting external PHP patch scripts at specific build stages. <strong>It has been removed in v3.</strong></p><p>There is no direct drop-in replacement. If you relied on this feature:</p><ul><li>Consider contributing your patches upstream to the StaticPHP repository.</li><li>For project-specific patches, use a custom registry with a package class. See <a href="/en/develop/extending/package-classes.html">Writing Package Classes</a> for details.</li></ul><div class="tip custom-block"><p class="custom-block-title">Future Plans</p><p>A single-file hook API for lightweight patches may be provided in a future release.</p></div><h3 id="windows-only-with-sdk-binary-dir-and-vs-ver" tabindex="-1">Windows-only: <code>--with-sdk-binary-dir</code> and <code>--vs-ver</code> <a class="header-anchor" href="#windows-only-with-sdk-binary-dir-and-vs-ver" aria-label="Permalink to “Windows-only: --with-sdk-binary-dir and --vs-ver”"></a></h3><p>These options are no longer accepted on the command line. Instead, set the <code>PHP_SDK_PATH</code> environment variable to point to your PHP SDK binary tools directory. The Visual Studio version is now managed by the toolchain configuration.</p><h2 id="renamed-deprecated-options" tabindex="-1">Renamed / Deprecated Options <a class="header-anchor" href="#renamed-deprecated-options" aria-label="Permalink to “Renamed / Deprecated Options”"></a></h2><p>The following options have been renamed. The old names are accepted where noted, but you should update your scripts.</p><table tabindex="0"><thead><tr><th>v2 Option</th><th>v3 Option</th><th>Status</th></tr></thead><tbody><tr><td><code>--prefer-pre-built</code></td><td><code>--prefer-binary</code> / <code>-p</code></td><td>Old name kept as a deprecated alias</td></tr><tr><td><code>--with-libs=&lt;list&gt;</code></td><td><code>--with-packages=&lt;list&gt;</code></td><td></td></tr><tr><td><code>--with-suggested-libs</code> / <code>-L</code></td><td><code>--with-suggests</code></td><td>Old <code>-L</code> / <code>-E</code> flags removed</td></tr><tr><td><code>--with-suggested-exts</code> / <code>-E</code></td><td><code>--with-suggests</code></td><td>Merged into a single flag</td></tr></tbody></table><h3 id="example" tabindex="-1">Example <a class="header-anchor" href="#example" aria-label="Permalink to “Example”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6A737D;--shiki-dark:#6A737D;"># v2</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> curl,gd</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-libs=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;openssl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -E</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># v3</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> curl,gd</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-packages=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;openssl&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-suggests</span></span></code></pre></div><h2 id="changed-build-command-behaviour" tabindex="-1">Changed <code>build</code> Command Behaviour <a class="header-anchor" href="#changed-build-command-behaviour" aria-label="Permalink to “Changed build Command Behaviour”"></a></h2><p>The <code>build</code> command (alias: <code>build:php</code>) still works. However, v3 also provides <strong>dedicated single-target commands</strong> that do not require SAPI selection flags:</p><table tabindex="0"><thead><tr><th>v2</th><th>v3 Equivalent</th></tr></thead><tbody><tr><td><code>spc build exts --build-cli</code></td><td><code>spc build:php-cli exts</code></td></tr><tr><td><code>spc build exts --build-fpm</code></td><td><code>spc build:php-fpm exts</code></td></tr><tr><td><code>spc build exts --build-cgi</code></td><td><code>spc build:php-cgi exts</code></td></tr><tr><td><code>spc build exts --build-micro</code></td><td><code>spc build:php-micro exts</code></td></tr><tr><td><code>spc build exts --build-embed</code></td><td><code>spc build:php-embed exts</code></td></tr><tr><td><code>spc build exts --build-frankenphp</code></td><td><code>spc build:frankenphp exts</code></td></tr></tbody></table><p>Use <code>build:php</code> when you need to build multiple SAPIs in one pass (the <code>--build-*</code> flags remain valid there).</p><h3 id="automatic-download-in-build-commands" tabindex="-1">Automatic Download in Build Commands <a class="header-anchor" href="#automatic-download-in-build-commands" aria-label="Permalink to “Automatic Download in Build Commands”"></a></h3><p>In v3, all <code>build:*</code> commands automatically download any missing dependencies before building. You no longer need to run <code>spc download</code> as a separate step:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6A737D;--shiki-dark:#6A737D;"># v2 — two steps required</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=curl,gd</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> curl,gd</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build-cli</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># v3 — one step is enough</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php-cli</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> curl,gd</span></span></code></pre></div><p>To opt out of the automatic download (for example in CI where sources are pre-cached), pass <code>--no-download</code>:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</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:#6F42C1;--shiki-dark:#B392F0;">spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build:php-cli</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> curl,gd</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-download</span></span></code></pre></div><h2 id="changed-download-command-options" tabindex="-1">Changed <code>download</code> Command Options <a class="header-anchor" href="#changed-download-command-options" aria-label="Permalink to “Changed download Command Options”"></a></h2><table tabindex="0"><thead><tr><th>v2</th><th>v3</th><th>Notes</th></tr></thead><tbody><tr><td><code>--prefer-pre-built</code></td><td><code>--prefer-binary</code> / <code>-p</code></td><td>Deprecated alias kept</td></tr><tr><td><code>--with-libs</code></td><td><code>--for-libs</code></td><td>Separate from packages</td></tr><tr><td><em>(no equivalent)</em></td><td><code>--for-packages</code></td><td>Unified package filter</td></tr><tr><td><em>(no equivalent)</em></td><td><code>--parallel</code> / <code>-P</code></td><td>Parallel downloads</td></tr><tr><td><em>(no equivalent)</em></td><td><code>--retry</code> / <code>-R</code></td><td>Retry on failure</td></tr></tbody></table><h2 id="removed-dev-commands" tabindex="-1">Removed Dev Commands <a class="header-anchor" href="#removed-dev-commands" aria-label="Permalink to “Removed Dev Commands”"></a></h2><p>These development utility commands have been removed or consolidated:</p><table tabindex="0"><thead><tr><th>v2 Command</th><th>v3 Replacement</th></tr></thead><tbody><tr><td><code>dev:extensions</code> / <code>list-ext</code></td><td><code>spc dev:info &lt;package&gt;</code></td></tr><tr><td><code>dev:ext-version</code> / <code>dev:ext-ver</code></td><td><code>spc dev:info &lt;package&gt;</code></td></tr><tr><td><code>dev:lib-version</code> / <code>dev:lib-ver</code></td><td><code>spc dev:info &lt;package&gt;</code></td></tr><tr><td><code>dev:php-version</code> / <code>dev:php-ver</code></td><td><code>spc dev:info php-src</code></td></tr><tr><td><code>dev:gen-ext-dep-docs</code> + <code>dev:gen-lib-dep-docs</code></td><td><code>spc dev:gen-deps-data</code></td></tr></tbody></table><h2 id="renamed-dev-commands" tabindex="-1">Renamed Dev Commands <a class="header-anchor" href="#renamed-dev-commands" aria-label="Permalink to “Renamed Dev Commands”"></a></h2><table tabindex="0"><thead><tr><th>v2</th><th>v3</th><th>Notes</th></tr></thead><tbody><tr><td><code>dev:sort-config</code> / <code>sort-config</code></td><td><code>dev:lint-config</code></td><td>Old alias still accepted</td></tr></tbody></table><h2 id="new-commands-in-v3" tabindex="-1">New Commands in v3 <a class="header-anchor" href="#new-commands-in-v3" aria-label="Permalink to “New Commands in v3”"></a></h2><p>These commands are new in v3 with no v2 equivalent:</p><table tabindex="0"><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td><code>spc reset</code></td><td>Clean <code>buildroot/</code> and <code>source/</code> directories</td></tr><tr><td><code>spc check-update</code></td><td>Check for newer artifact versions</td></tr><tr><td><code>spc build:php-cli</code></td><td>Build CLI SAPI (no flags needed)</td></tr><tr><td><code>spc build:php-fpm</code></td><td>Build PHP-FPM (no flags needed)</td></tr><tr><td><code>spc build:php-cgi</code></td><td>Build PHP CGI (no flags needed)</td></tr><tr><td><code>spc build:php-micro</code></td><td>Build phpmicro (no flags needed)</td></tr><tr><td><code>spc build:php-embed</code></td><td>Build embed SAPI (no flags needed)</td></tr><tr><td><code>spc build:frankenphp</code></td><td>Build FrankenPHP (no flags needed)</td></tr><tr><td><code>spc dev:shell</code></td><td>Interactive shell with build environment</td></tr><tr><td><code>spc dev:is-installed</code></td><td>Check whether a package is installed</td></tr><tr><td><code>spc dev:dump-stages</code></td><td>Dump all package build stages to JSON</td></tr><tr><td><code>spc dev:dump-capabilities</code></td><td>Dump buildable/installable capabilities</td></tr><tr><td><code>spc dev:info</code></td><td>Show configuration info for a package</td></tr></tbody></table><h2 id="craft-yml-changes" tabindex="-1"><code>craft.yml</code> Changes <a class="header-anchor" href="#craft-yml-changes" aria-label="Permalink to “craft.yml Changes”"></a></h2><h3 id="removed-build-options-with-added-patch" tabindex="-1">Removed: <code>build-options.with-added-patch</code> <a class="header-anchor" href="#removed-build-options-with-added-patch" aria-label="Permalink to “Removed: build-options.with-added-patch”"></a></h3><p>The <code>with-added-patch</code> key inside <code>build-options</code> is no longer parsed and will be silently ignored. Remove it from your <code>craft.yml</code>:</p><div class="language-yaml"><button title="Copy Code" class="copy"></button><span class="lang">yaml</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:#6A737D;--shiki-dark:#6A737D;"># v2 — remove this block</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">build-options</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> with-added-patch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">my-patch.php</span></span></code></pre></div><h3 id="libs-→-packages-both-work" tabindex="-1"><code>libs</code><code>packages</code> (both work) <a class="header-anchor" href="#libs-→-packages-both-work" aria-label="Permalink to “libs → packages (both work)”"></a></h3><p>The top-level <code>libs</code> field still works. The preferred v3 field name is <code>packages</code>, which is a superset covering libraries and other tool packages:</p><div class="language-yaml"><button title="Copy Code" class="copy"></button><span class="lang">yaml</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:#6A737D;--shiki-dark:#6A737D;"># v2</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">libs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">nghttp2,liblz4</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># v3 (preferred)</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">packages</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">nghttp2,liblz4</span></span></code></pre></div><h2 id="env-ini-variable-renames" tabindex="-1"><code>env.ini</code> Variable Renames <a class="header-anchor" href="#env-ini-variable-renames" aria-label="Permalink to “env.ini Variable Renames”"></a></h2><p>If you customise <code>config/env.ini</code> or export environment variables in CI, update the following names:</p><table tabindex="0"><thead><tr><th>v2 Variable</th><th>v3 Variable</th></tr></thead><tbody><tr><td><code>SPC_LINUX_DEFAULT_CC</code></td><td><code>SPC_DEFAULT_CC</code></td></tr><tr><td><code>SPC_LINUX_DEFAULT_CXX</code></td><td><code>SPC_DEFAULT_CXX</code></td></tr><tr><td><code>SPC_LINUX_DEFAULT_AR</code></td><td><code>SPC_DEFAULT_AR</code></td></tr><tr><td><code>SPC_LINUX_DEFAULT_LD</code></td><td><code>SPC_DEFAULT_LD</code></td></tr><tr><td><code>SPC_LIBC</code></td><td><code>SPC_TARGET</code></td></tr></tbody></table><p><code>SPC_TARGET</code> uses a new format that encodes both architecture and libc in a single string, for example:</p><table tabindex="0"><thead><tr><th>v2</th><th>v3</th></tr></thead><tbody><tr><td><code>SPC_LIBC=musl</code></td><td><code>SPC_TARGET=x86_64-linux-musl</code></td></tr><tr><td><code>SPC_LIBC=gnu</code></td><td><code>SPC_TARGET=x86_64-linux-gnu.2.17</code></td></tr></tbody></table><p>New logging variables were also added (<code>SPC_ENABLE_LOG_FILE</code>, <code>SPC_LOGS_DIR</code>, <code>SPC_PRESERVE_LOGS</code>). Refer to <a href="/en/guide/env-vars.html">Environment Variables</a> for details.</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="/en/guide/cli-reference.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Previous page</span><span class="title" data-v-e257564d>CLI Reference</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/en/guide/extensions.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>Supported Extensions</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-1df9f90f 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>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"deps-craft-yml.md\":\"DaRp5sDR\",\"en_contributing_index.md\":\"Bw6aGZo7\",\"en_develop_artifact-model.md\":\"Be9wN_ZU\",\"en_develop_build-lifecycle.md\":\"BrkkrOI9\",\"en_develop_craft-yml.md\":\"CJqlRAWM\",\"en_develop_doctor-module.md\":\"BPx_gh7b\",\"en_develop_extending_annotations.md\":\"rWEgD5t7\",\"en_develop_extending_custom-artifact.md\":\"BQoftnUi\",\"en_develop_extending_dependency-injection.md\":\"3RvnsJs8\",\"en_develop_extending_index.md\":\"CBALgGvM\",\"en_develop_extending_lifecycle-hooks.md\":\"TH51ajMN\",\"en_develop_extending_package-classes.md\":\"DL47sxq4\",\"en_develop_index.md\":\"CDPdLdXm\",\"en_develop_package-model.md\":\"D5wiXvya\",\"en_develop_php-src-changes.md\":\"CIUUevPf\",\"en_develop_registry.md\":\"B5tf5XnG\",\"en_develop_structure.md\":\"B3aY4J4P\",\"en_develop_system-build-tools.md\":\"aR6vgJMi\",\"en_faq_index.md\":\"ButqLRAC\",\"en_guide_cli-generator.md\":\"Bh1mnldB\",\"en_guide_cli-reference.md\":\"B6zUxFdM\",\"en_guide_deps-map.md\":\"B9M0h5GJ\",\"en_guide_env-vars.md\":\"B5JOZL1S\",\"en_guide_extension-notes.md\":\"C1QFg1E9\",\"en_guide_extensions.md\":\"CYT0fXgd\",\"en_guide_first-build.md\":\"C3LOd79t\",\"en_guide_index.md\":\"Chrx4Kg2\",\"en_guide_installation.md\":\"DNcSrgIL\",\"en_guide_migrate-from-v2.md\":\"CfVymFnT\",\"en_guide_sapi-reference.md\":\"Dx3FnmW6\",\"en_guide_troubleshooting.md\":\"Mc4ZUzP-\",\"en_index.md\":\"CZz4hp1l\",\"index.md\":\"DlohUUjo\",\"zh_contributing_index.md\":\"BxNPLW0M\",\"zh_develop_artifact-model.md\":\"BtcNBk1j\",\"zh_develop_build-lifecycle.md\":\"D1JbjvDB\",\"zh_develop_craft-yml.md\":\"oQn7yY_F\",\"zh_develop_doctor-module.md\":\"DAzJoWwn\",\"zh_develop_extending_annotations.md\":\"DAa7FG7j\",\"zh_develop_extending_custom-artifact.md\":\"BTEWH7KO\",\"zh_develop_extending_dependency-injection.md\":\"PLkrv44m\",\"zh_develop_extending_index.md\":\"B478Mpx4\",\"zh_develop_extending_lifecycle-hooks.md\":\"BNdlHrBu\",\"zh_develop_extending_package-classes.md\":\"CLofM-pE\",\"zh_develop_index.md\":\"CYr92Q4h\",\"zh_develop_package-model.md\":\"DYRZ8aaf\",\"zh_develop_php-src-changes.md\":\"QIFUEZHE\",\"zh_develop_registry.md\":\"BvRBmoGT\",\"zh_develop_structure.md\":\"EpUhxfrR\",\"zh_develop_system-build-tools.md\":\"DEEE1raf\",\"zh_faq_index.md\":\"DkTldA8b\",\"zh_guide_cli-generator.md\":\"Djvjm7dZ\",\"zh_guide_cli-reference.md\":\"DMttieGz\",\"zh_guide_deps-map.md\":\"BsudOLor\",\"zh_guide_env-vars.md\":\"Bs72W99k\",\"zh_guide_extension-notes.md\":\"D-KMlaiu\",\"zh_guide_extensions.md\":\"CdF_j2fu\",\"zh_guide_first-build.md\":\"CQdFhKsg\",\"zh_guide_index.md\":\"B1jsb7XJ\",\"zh_guide_installation.md\":\"Ap2snxXu\",\"zh_guide_migrate-from-v2.md\":\"Df8wnmfP\",\"zh_guide_sapi-reference.md\":\"DXv5eV6I\",\"zh_guide_troubleshooting.md\":\"CueHHZkW\",\"zh_index.md\":\"CkWIeJB6\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"StaticPHP\",\"description\":\"A powerful tool designed for building portable executables including PHP, extensions, and more.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":\"/images/static-php_nobg.png\",\"nav\":[],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/crazywhalecc/static-php-cli\"}],\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2023-present crazywhalecc\"},\"externalLinkIcon\":true,\"search\":{\"provider\":\"algolia\",\"options\":{\"appId\":\"IHJHUB1SF1\",\"apiKey\":\"8266d31cc2ffbd0e059f1c6e5bdaf8fc\",\"indexName\":\"static-php docs\",\"askAi\":{\"assistantId\":\"b72369b2-60a5-461d-902c-5c18d8c05902\",\"agentStudio\":true,\"sidePanel\":true}}}},\"locales\":{\"en\":{\"label\":\"English\",\"lang\":\"en\",\"themeConfig\":{\"nav\":[{\"text\":\"Guide\",\"link\":\"/en/guide/\"},{\"text\":\"Develop\",\"link\":\"/en/develop/\"},{\"text\":\"Contributing\",\"link\":\"/en/contributing/\"},{\"text\":\"FAQ\",\"link\":\"/en/faq/\"},{\"text\":\"v3 (alpha)\",\"items\":[{\"text\":\"v3 (alpha)\",\"link\":\"/en/\"},{\"text\":\"v2\",\"link\":\"https://static-php.github.io/v2-docs/\"}]}],\"sidebar\":{\"/en/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Overview\",\"link\":\"/en/guide/\"},{\"text\":\"Installation\",\"link\":\"/en/guide/installation\"},{\"text\":\"First Build\",\"link\":\"/en/guide/first-build\"},{\"text\":\"PHP SAPI Reference\",\"link\":\"/en/guide/sapi-reference\"},{\"text\":\"CLI Reference\",\"link\":\"/en/guide/cli-reference\"},{\"text\":\"Migrating from v2\",\"link\":\"/en/guide/migrate-from-v2\"}]},{\"text\":\"Extensions\",\"items\":[{\"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\":\"Reference\",\"items\":[{\"text\":\"Environment Variables\",\"link\":\"/en/guide/env-vars\"},{\"text\":\"Dependency Table\",\"link\":\"/en/guide/deps-map\"},{\"text\":\"Troubleshooting\",\"link\":\"/en/guide/troubleshooting\"}]}],\"/en/develop/\":[{\"text\":\"Overview\",\"items\":[{\"text\":\"Get Started\",\"link\":\"/en/develop/\"},{\"text\":\"Project Structure\",\"link\":\"/en/develop/structure\"}]},{\"text\":\"Configuration Reference\",\"items\":[{\"text\":\"Registry\",\"link\":\"/en/develop/registry\"},{\"text\":\"Package Model\",\"link\":\"/en/develop/package-model\"},{\"text\":\"Artifact Model\",\"link\":\"/en/develop/artifact-model\"},{\"text\":\"craft.yml\",\"link\":\"/en/develop/craft-yml\"}]},{\"text\":\"Build System\",\"items\":[{\"text\":\"Build Lifecycle\",\"link\":\"/en/develop/build-lifecycle\"},{\"text\":\"Compilation Tools\",\"link\":\"/en/develop/system-build-tools\"},{\"text\":\"Doctor\",\"link\":\"/en/develop/doctor-module\"},{\"text\":\"PHP Source Modifications\",\"link\":\"/en/develop/php-src-changes\"}]},{\"text\":\"Extending StaticPHP\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/en/develop/extending/\"},{\"text\":\"Writing Package Classes\",\"link\":\"/en/develop/extending/package-classes\"},{\"text\":\"Annotations Reference\",\"link\":\"/en/develop/extending/annotations\"},{\"text\":\"Lifecycle Hooks\",\"link\":\"/en/develop/extending/lifecycle-hooks\"},{\"text\":\"Dependency Injection\",\"link\":\"/en/develop/extending/dependency-injection\"},{\"text\":\"Custom Artifact\",\"link\":\"/en/develop/extending/custom-artifact\"}]}],\"/en/contributing/\":[{\"text\":\"Contributing\",\"items\":[{\"text\":\"Contributing Guide\",\"link\":\"/en/contributing/\"}]}],\"/en/faq/\":[{\"text\":\"FAQ\",\"items\":[{\"text\":\"Frequently Asked Questions\",\"link\":\"/en/faq/\"}]}]},\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2023-present crazywhalecc\"}}},\"zh\":{\"label\":\"简体中文\",\"lang\":\"zh\",\"themeConfig\":{\"nav\":[{\"text\":\"构建指南\",\"link\":\"/zh/guide/\"},{\"text\":\"开发者\",\"link\":\"/zh/develop/\"},{\"text\":\"贡献\",\"link\":\"/zh/contributing/\"},{\"text\":\"FAQ\",\"link\":\"/zh/faq/\"},{\"text\":\"v3 (alpha)\",\"items\":[{\"text\":\"v3 (alpha)\",\"link\":\"/zh/\"},{\"text\":\"v2\",\"link\":\"https://static-php.github.io/v2-docs/\"}]}],\"sidebar\":{\"/zh/guide/\":[{\"text\":\"快速上手\",\"items\":[{\"text\":\"概览\",\"link\":\"/zh/guide/\"},{\"text\":\"安装\",\"link\":\"/zh/guide/installation\"},{\"text\":\"第一次构建\",\"link\":\"/zh/guide/first-build\"},{\"text\":\"PHP SAPI 构建参考\",\"link\":\"/zh/guide/sapi-reference\"},{\"text\":\"命令行参考\",\"link\":\"/zh/guide/cli-reference\"},{\"text\":\"从 v2 迁移\",\"link\":\"/zh/guide/migrate-from-v2\"}]},{\"text\":\"扩展\",\"items\":[{\"text\":\"支持的扩展列表\",\"link\":\"/zh/guide/extensions\"},{\"text\":\"扩展注意事项\",\"link\":\"/zh/guide/extension-notes\"},{\"text\":\"命令生成器\",\"link\":\"/zh/guide/cli-generator\"}]},{\"text\":\"参考\",\"items\":[{\"text\":\"环境变量\",\"link\":\"/zh/guide/env-vars\"},{\"text\":\"依赖关系图\",\"link\":\"/zh/guide/deps-map\"},{\"text\":\"故障排除\",\"link\":\"/zh/guide/troubleshooting\"}]}],\"/zh/develop/\":[{\"text\":\"概览\",\"items\":[{\"text\":\"开发简介\",\"link\":\"/zh/develop/\"},{\"text\":\"项目结构\",\"link\":\"/zh/develop/structure\"}]},{\"text\":\"配置参考\",\"items\":[{\"text\":\"Registry\",\"link\":\"/zh/develop/registry\"},{\"text\":\"Package 模型\",\"link\":\"/zh/develop/package-model\"},{\"text\":\"Artifact 模型\",\"link\":\"/zh/develop/artifact-model\"},{\"text\":\"craft.yml 配置\",\"link\":\"/zh/develop/craft-yml\"}]},{\"text\":\"构建系统\",\"items\":[{\"text\":\"构建生命周期\",\"link\":\"/zh/develop/build-lifecycle\"},{\"text\":\"编译工具\",\"link\":\"/zh/develop/system-build-tools\"},{\"text\":\"Doctor 环境检查\",\"link\":\"/zh/develop/doctor-module\"},{\"text\":\"对 PHP 源码的修改\",\"link\":\"/zh/develop/php-src-changes\"}]},{\"text\":\"扩展 StaticPHP\",\"items\":[{\"text\":\"简介\",\"link\":\"/zh/develop/extending/\"},{\"text\":\"编写 Package 类\",\"link\":\"/zh/develop/extending/package-classes\"},{\"text\":\"注解参考\",\"link\":\"/zh/develop/extending/annotations\"},{\"text\":\"生命周期 Hook\",\"link\":\"/zh/develop/extending/lifecycle-hooks\"},{\"text\":\"依赖注入\",\"link\":\"/zh/develop/extending/dependency-injection\"},{\"text\":\"自定义 Artifact\",\"link\":\"/zh/develop/extending/custom-artifact\"}]}],\"/zh/contributing/\":[{\"text\":\"贡献指南\",\"items\":[{\"text\":\"贡献指南\",\"link\":\"/zh/contributing/\"}]}],\"/zh/faq/\":[{\"text\":\"FAQ\",\"items\":[{\"text\":\"常见问题\",\"link\":\"/zh/faq/\"}]}]},\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2023-present crazywhalecc\"}}}},\"scrollOffset\":134,\"cleanUrls\":false,\"additionalConfig\":{}}");</script>
</body>
</html>