deploy: 758b697cee9fe71c4066acc329b5e8f7d551455b

This commit is contained in:
crazywhalecc 2024-07-13 17:20:59 +00:00
parent 3abe3cc659
commit 59f12f04e6
61 changed files with 136 additions and 120 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,12 +3,13 @@ import{_ as s,c as i,o as a,a1 as e}from"./chunks/framework.CszIUXhs.js";const u
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;type&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;ghrel&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;repo&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;libevent/libevent&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;match&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;libevent.+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\\\</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.tar</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\\\</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.gz&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;license&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;provide-pre-built&quot;</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>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;license&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;type&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;file&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;path&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;LICENSE&quot;</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:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>The most important field here is <code>type</code>. Currently, the types it supports are:</p><ul><li><code>url</code>: Directly use URL to download, for example: <code>https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz</code>.</li><li><code>ghrel</code>: Use the GitHub Release API to download, download the artifacts uploaded from the latest version released by maintainers.</li><li><code>ghtar</code>: Use the GitHub Release API to download. Different from <code>ghrel</code>, <code>ghtar</code> is downloaded from the <code>source code (tar.gz)</code> in the latest Release of the project.</li><li><code>ghtagtar</code>: Use GitHub Release API to download. Compared with <code>ghtar</code>, <code>ghtagtar</code> can find the latest one from the <code>tags</code> list and download the source code in <code>tar.gz</code> format (because some projects only use <code>tag</code> release version).</li><li><code>bitbuckettag</code>: Download using BitBucket API, basically the same as <code>ghtagtar</code>, except this one applies to BitBucket.</li><li><code>git</code>: Clone the project directly from a Git address to download sources, applicable to any public Git repository.</li><li><code>filelist</code>: Use a crawler to crawl the Web download site that provides file index, and get the latest version of the file name and download it.</li><li><code>custom</code>: If none of the above download methods are satisfactory, you can write <code>custom</code>, create a new class under <code>src/SPC/store/source/</code>, extends <code>CustomSourceBase</code>, and write the download script yourself.</li></ul><h2 id="source-json-common-parameters" tabindex="-1">source.json Common parameters <a class="header-anchor" href="#source-json-common-parameters" aria-label="Permalink to &quot;source.json Common parameters&quot;"></a></h2><p>Each source file in source.json has the following params:</p><ul><li><code>license</code>: the open source license of the source code, see <strong>Open Source License</strong> section below</li><li><code>type</code>: must be one of the types mentioned above</li><li><code>path</code> (optional): release the source code to the specified directory instead of <code>source/{name}</code></li></ul><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The <code>path</code> parameter in <code>source.json</code> can specify a relative or absolute path. When specified as a relative path, the path is based on <code>source/</code>.</p></div><h2 id="download-type-url" tabindex="-1">Download type - url <a class="header-anchor" href="#download-type-url" aria-label="Permalink to &quot;Download type - url&quot;"></a></h2><p>URL type sources refer to downloading files directly from the URL.</p><p>The parameters included are:</p><ul><li><code>url</code>: The download address of the file, such as <code>https://example.com/file.tgz</code></li><li><code>filename</code> (optional): The file name saved to the local area. If not specified, the file name of the url will be used.</li></ul><p>Example (download the imagick extension and extract it to the extension storage path of the php source code):</p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><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></code></pre></div><p>The most important field here is <code>type</code>. Currently, the types it supports are:</p><ul><li><code>url</code>: Directly use URL to download, for example: <code>https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz</code>.</li><li><code>ghrel</code>: Use the GitHub Release API to download, download the artifacts uploaded from the latest version released by maintainers.</li><li><code>ghtar</code>: Use the GitHub Release API to download. Different from <code>ghrel</code>, <code>ghtar</code> is downloaded from the <code>source code (tar.gz)</code> in the latest Release of the project.</li><li><code>ghtagtar</code>: Use GitHub Release API to download. Compared with <code>ghtar</code>, <code>ghtagtar</code> can find the latest one from the <code>tags</code> list and download the source code in <code>tar.gz</code> format (because some projects only use <code>tag</code> release version).</li><li><code>bitbuckettag</code>: Download using BitBucket API, basically the same as <code>ghtagtar</code>, except this one applies to BitBucket.</li><li><code>git</code>: Clone the project directly from a Git address to download sources, applicable to any public Git repository.</li><li><code>filelist</code>: Use a crawler to crawl the Web download site that provides file index, and get the latest version of the file name and download it.</li><li><code>custom</code>: If none of the above download methods are satisfactory, you can write <code>custom</code>, create a new class under <code>src/SPC/store/source/</code>, extends <code>CustomSourceBase</code>, and write the download script yourself.</li></ul><h2 id="source-json-common-parameters" tabindex="-1">source.json Common parameters <a class="header-anchor" href="#source-json-common-parameters" aria-label="Permalink to &quot;source.json Common parameters&quot;"></a></h2><p>Each source file in source.json has the following params:</p><ul><li><code>license</code>: the open source license of the source code, see <strong>Open Source License</strong> section below</li><li><code>type</code>: must be one of the types mentioned above</li><li><code>path</code> (optional): release the source code to the specified directory instead of <code>source/{name}</code></li><li><code>provide-pre-built</code> (optional): whether to provide precompiled binary files. If <code>true</code>, it will automatically try to download precompiled binary files when running <code>bin/spc download</code></li></ul><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The <code>path</code> parameter in <code>source.json</code> can specify a relative or absolute path. When specified as a relative path, the path is based on <code>source/</code>.</p></div><h2 id="download-type-url" tabindex="-1">Download type - url <a class="header-anchor" href="#download-type-url" aria-label="Permalink to &quot;Download type - url&quot;"></a></h2><p>URL type sources refer to downloading files directly from the URL.</p><p>The parameters included are:</p><ul><li><code>url</code>: The download address of the file, such as <code>https://example.com/file.tgz</code></li><li><code>filename</code> (optional): The file name saved to the local area. If not specified, the file name of the url will be used.</li></ul><p>Example (download the imagick extension and extract it to the extension storage path of the php source code):</p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;ext-imagick&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;type&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;url&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;url&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;https://pecl.php.net/get/imagick&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>

View File

@ -1 +1 @@
import{C as e}from"./chunks/CliGenerator.kmB1Poxd.js";import{d as t,c as a,I as o,a1 as n,o as r}from"./chunks/framework.CszIUXhs.js";const i=n('<h1 id="cli-build-command-generator" tabindex="-1">CLI Build Command Generator <a class="header-anchor" href="#cli-build-command-generator" aria-label="Permalink to &quot;CLI Build Command Generator&quot;"></a></h1><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The extensions selected below may contain extensions that are not supported by the selected operating system, which may cause compilation to fail. Please check <a href="./extensions.html">Supported Extensions</a> first.</p></div>',2),u=JSON.parse('{"title":"CLI Build Command Generator","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/cli-generator.md","filePath":"en/guide/cli-generator.md"}'),s={name:"en/guide/cli-generator.md"},h=t({...s,setup(c){return(l,d)=>(r(),a("div",null,[i,o(e,{lang:"en"})]))}});export{u as __pageData,h as default};
import{C as e}from"./chunks/CliGenerator.CghG5-6u.js";import{d as t,c as a,I as o,a1 as n,o as r}from"./chunks/framework.CszIUXhs.js";const i=n('<h1 id="cli-build-command-generator" tabindex="-1">CLI Build Command Generator <a class="header-anchor" href="#cli-build-command-generator" aria-label="Permalink to &quot;CLI Build Command Generator&quot;"></a></h1><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The extensions selected below may contain extensions that are not supported by the selected operating system, which may cause compilation to fail. Please check <a href="./extensions.html">Supported Extensions</a> first.</p></div>',2),u=JSON.parse('{"title":"CLI Build Command Generator","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/cli-generator.md","filePath":"en/guide/cli-generator.md"}'),s={name:"en/guide/cli-generator.md"},h=t({...s,setup(c){return(l,d)=>(r(),a("div",null,[i,o(e,{lang:"en"})]))}});export{u as __pageData,h as default};

View File

@ -1 +1 @@
import{C as e}from"./chunks/CliGenerator.kmB1Poxd.js";import{d as t,c as a,I as o,a1 as n,o as r}from"./chunks/framework.CszIUXhs.js";const i=n('<h1 id="cli-build-command-generator" tabindex="-1">CLI Build Command Generator <a class="header-anchor" href="#cli-build-command-generator" aria-label="Permalink to &quot;CLI Build Command Generator&quot;"></a></h1><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The extensions selected below may contain extensions that are not supported by the selected operating system, which may cause compilation to fail. Please check <a href="./extensions.html">Supported Extensions</a> first.</p></div>',2),u=JSON.parse('{"title":"CLI Build Command Generator","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/cli-generator.md","filePath":"en/guide/cli-generator.md"}'),s={name:"en/guide/cli-generator.md"},h=t({...s,setup(c){return(l,d)=>(r(),a("div",null,[i,o(e,{lang:"en"})]))}});export{u as __pageData,h as default};
import{C as e}from"./chunks/CliGenerator.CghG5-6u.js";import{d as t,c as a,I as o,a1 as n,o as r}from"./chunks/framework.CszIUXhs.js";const i=n('<h1 id="cli-build-command-generator" tabindex="-1">CLI Build Command Generator <a class="header-anchor" href="#cli-build-command-generator" aria-label="Permalink to &quot;CLI Build Command Generator&quot;"></a></h1><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The extensions selected below may contain extensions that are not supported by the selected operating system, which may cause compilation to fail. Please check <a href="./extensions.html">Supported Extensions</a> first.</p></div>',2),u=JSON.parse('{"title":"CLI Build Command Generator","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/cli-generator.md","filePath":"en/guide/cli-generator.md"}'),s={name:"en/guide/cli-generator.md"},h=t({...s,setup(c){return(l,d)=>(r(),a("div",null,[i,o(e,{lang:"en"})]))}});export{u as __pageData,h as default};

View File

@ -52,6 +52,9 @@ import{_ as s,c as i,o as e,a1 as a}from"./chunks/framework.CszIUXhs.js";const g
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Download only extensions and libraries to be compiled (use extensions, including suggested libraries)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=openssl,swoole,zip,pcntl,zstd</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Download resources, prefer to download dependencies with pre-built packages (reduce the time to compile dependencies)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;curl,pcntl,xml,mbstring&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --prefer-pre-built</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Download only the extensions and dependent libraries to be compiled (use extensions, excluding suggested libraries)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=openssl,swoole,zip,pcntl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --without-suggestions</span></span>
<span class="line"></span>
@ -105,7 +108,7 @@ import{_ as s,c as i,o as e,a1 as a}from"./chunks/framework.CszIUXhs.js";const g
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> micro:combine</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> a.php</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -N</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /path/to/your/custom.ini</span></span></code></pre></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Note, please do not directly use the PHP source code or the <code>php.ini</code> file in the system-installed PHP, it is best to manually write an ini configuration file that you need, for example:</p><div class="language-ini vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">; custom.ini</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">curl.cainfo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=/path/to/your/cafile.pem</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">memory_limit</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=1G</span></span></code></pre></div><p>The ini injection of this command is achieved by appending a special structure after micro.sfx, which is different from the function of inserting hard-coded INI during compilation.</p></div><p>If you want to package phar, just replace <code>a.php</code> with the packaged phar file. But please note that micro.sfx under phar needs extra attention to the path problem, see <a href="./../develop/structure.html#phar-application-directory-issue">Developing - Phar directory issue</a>.</p><h2 id="command-extract" tabindex="-1">Command - extract <a class="header-anchor" href="#command-extract" aria-label="Permalink to &quot;Command - extract&quot;"></a></h2><p>Use the command <code>bin/spc extract</code> to unpack and copy the source code required for compilation, including php-src and the source code of various dependent libraries (you need to specify the name of the library to be unpacked).</p><p>For example, after we have downloaded sources, we want to distribute and execute the build process, manually unpack and copy the package to a specified location, and we can use commands.</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Unzip the downloaded compressed package of php-src and libxml2, and store the decompressed source code in the source directory</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extract</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> php-src,libxml2</span></span></code></pre></div><h2 id="dev-command-dev" tabindex="-1">Dev Command - dev <a class="header-anchor" href="#dev-command-dev" aria-label="Permalink to &quot;Dev Command - dev&quot;"></a></h2><p>Debug commands refer to a collection of commands that can assist in outputting some information when you use static-php-cli to build PHP or modify and enhance the static-php-cli project itself.</p><ul><li><code>dev:extensions</code>: output all currently supported extension names, or output the specified extension information</li><li><code>dev:php-version</code>: output the currently compiled PHP version (by reading <code>php_version.h</code>)</li><li><code>dev:sort-config</code>: Sort the list of configuration files in the <code>config/</code> directory in alphabetical order</li><li><code>dev:lib-ver &lt;lib-name&gt;</code>: Read the version from the source code of the dependency library (only available for specific dependency libraries)</li><li><code>dev:ext-ver &lt;ext-name&gt;</code>: Read the corresponding version from the source code of the extension (only available for specific extensions)</li></ul><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># output all extensions information</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extract</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> php-src,libxml2</span></span></code></pre></div><h2 id="dev-command-dev" tabindex="-1">Dev Command - dev <a class="header-anchor" href="#dev-command-dev" aria-label="Permalink to &quot;Dev Command - dev&quot;"></a></h2><p>Debug commands refer to a collection of commands that can assist in outputting some information when you use static-php-cli to build PHP or modify and enhance the static-php-cli project itself.</p><ul><li><code>dev:extensions</code>: output all currently supported extension names, or output the specified extension information</li><li><code>dev:php-version</code>: output the currently compiled PHP version (by reading <code>php_version.h</code>)</li><li><code>dev:sort-config</code>: Sort the list of configuration files in the <code>config/</code> directory in alphabetical order</li><li><code>dev:lib-ver &lt;lib-name&gt;</code>: Read the version from the source code of the dependency library (only available for specific dependency libraries)</li><li><code>dev:ext-ver &lt;ext-name&gt;</code>: Read the corresponding version from the source code of the extension (only available for specific extensions)</li><li><code>dev:pack-lib &lt;lib-name&gt;</code>: Package the specified library into a tar.gz file (maintainer only)</li><li><code>dev:gen-ext-docs</code>: Generate extension documentation (maintainer only)</li></ul><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># output all extensions information</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dev:extensions</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Output the meta information of the specified extension</span></span>
@ -136,4 +139,4 @@ import{_ as s,c as i,o as e,a1 as a}from"./chunks/framework.CszIUXhs.js";const g
<span class="line"><span>Loaded Configuration File =&gt; /Users/jerry/project/git-project/static-php-cli/php.ini</span></span>
<span class="line"><span></span></span>
<span class="line"><span>$ buildroot/bin/php -i | grep memory</span></span>
<span class="line"><span>memory_limit =&gt; 8G =&gt; 8G</span></span></code></pre></div><p>For the objects, methods and interfaces supported by static-php-cli, you can read the source code. Most methods and objects have corresponding comments.</p><p>Commonly used objects and functions using the <code>-P</code> function are:</p><ul><li><code>SPC\\store\\FileSystem</code>: file management class <ul><li><code>::replaceFileStr(string $filename, string $search, $replace)</code>: Replace file string content</li><li><code>::replaceFileStr(string $filename, string $pattern, $replace)</code>: Regularly replace file content</li><li><code>::replaceFileUser(string $filename, $callback)</code>: User-defined function replaces file content</li><li><code>::copyDir(string $from, string $to)</code>: Recursively copy a directory to another location</li><li><code>::convertPath(string $path)</code>: Convert the path delimiter to the current system delimiter</li><li><code>::scanDirFiles(string $dir, bool $recursive = true, bool|string $relative = false, bool $include_dir = false)</code>: Traverse directory files</li></ul></li><li><code>SPC\\builder\\BuilderBase</code>: Build object <ul><li><code>-&gt;getPatchPoint()</code>: Get the current injection point name</li><li><code>-&gt;getOption(string $key, $default = null)</code>: Get command line and compile-time options</li><li><code>-&gt;getPHPVersionID()</code>: Get the currently compiled PHP version ID</li><li><code>-&gt;getPHPVersion()</code>: Get the currently compiled PHP version number</li><li><code>-&gt;setOption(string $key, $value)</code>: Set options</li><li><code>-&gt;setOptionIfNotExists(string $key, $value)</code>: Set option if option does not exist</li></ul></li></ul><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>static-php-cli has many open methods, which cannot be listed in the docs, but as long as it is a <code>public function</code> and is not marked as <code>@internal</code>, it theoretically can be called.</p></div>`,102),l=[t];function p(o,h,d,c,r,k){return e(),i("div",null,l)}const m=s(n,[["render",p]]);export{g as __pageData,m as default};
<span class="line"><span>memory_limit =&gt; 8G =&gt; 8G</span></span></code></pre></div><p>For the objects, methods and interfaces supported by static-php-cli, you can read the source code. Most methods and objects have corresponding comments.</p><p>Commonly used objects and functions using the <code>-P</code> function are:</p><ul><li><code>SPC\\store\\FileSystem</code>: file management class <ul><li><code>::replaceFileStr(string $filename, string $search, $replace)</code>: Replace file string content</li><li><code>::replaceFileStr(string $filename, string $pattern, $replace)</code>: Regularly replace file content</li><li><code>::replaceFileUser(string $filename, $callback)</code>: User-defined function replaces file content</li><li><code>::copyDir(string $from, string $to)</code>: Recursively copy a directory to another location</li><li><code>::convertPath(string $path)</code>: Convert the path delimiter to the current system delimiter</li><li><code>::scanDirFiles(string $dir, bool $recursive = true, bool|string $relative = false, bool $include_dir = false)</code>: Traverse directory files</li></ul></li><li><code>SPC\\builder\\BuilderBase</code>: Build object <ul><li><code>-&gt;getPatchPoint()</code>: Get the current injection point name</li><li><code>-&gt;getOption(string $key, $default = null)</code>: Get command line and compile-time options</li><li><code>-&gt;getPHPVersionID()</code>: Get the currently compiled PHP version ID</li><li><code>-&gt;getPHPVersion()</code>: Get the currently compiled PHP version number</li><li><code>-&gt;setOption(string $key, $value)</code>: Set options</li><li><code>-&gt;setOptionIfNotExists(string $key, $value)</code>: Set option if option does not exist</li></ul></li></ul><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>static-php-cli has many open methods, which cannot be listed in the docs, but as long as it is a <code>public function</code> and is not marked as <code>@internal</code>, it theoretically can be called.</p></div><h2 id="multiple-builds" tabindex="-1">Multiple builds <a class="header-anchor" href="#multiple-builds" aria-label="Permalink to &quot;Multiple builds&quot;"></a></h2><p>If you need to build multiple times locally, the following method can save you time downloading resources and compiling.</p><ul><li>If you only switch the PHP version without changing the dependent libraries, you can use <code>bin/spc switch-php-version</code> to quickly switch the PHP version, and then re-run the same <code>build</code> command.</li><li>If you want to rebuild once, but do not re-download the source code, you can first <code>rm -rf buildroot source</code> to delete the compilation directory and source code directory, and then rebuild.</li><li>If you want to update a version of a dependency, you can use <code>bin/spc del-download &lt;source-name&gt;</code> to delete the specified source code, and then use <code>download &lt;source-name&gt;</code> to download it again.</li><li>If you want to update all dependent versions, you can use <code>bin/spc download --clean</code> to delete all downloaded sources, and then download them again.</li></ul>`,105),l=[t];function o(p,d,h,c,r,k){return e(),i("div",null,l)}const m=s(n,[["render",o]]);export{g as __pageData,m as default};

View File

@ -1 +1 @@
import{_ as s,c as i,o as e,a1 as a}from"./chunks/framework.CszIUXhs.js";const g=JSON.parse('{"title":"Build (Linux, macOS, FreeBSD)","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/manual-build.md","filePath":"en/guide/manual-build.md"}'),n={name:"en/guide/manual-build.md"},t=a("",102),l=[t];function p(o,h,d,c,r,k){return e(),i("div",null,l)}const m=s(n,[["render",p]]);export{g as __pageData,m as default};
import{_ as s,c as i,o as e,a1 as a}from"./chunks/framework.CszIUXhs.js";const g=JSON.parse('{"title":"Build (Linux, macOS, FreeBSD)","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/manual-build.md","filePath":"en/guide/manual-build.md"}'),n={name:"en/guide/manual-build.md"},t=a("",105),l=[t];function o(p,d,h,c,r,k){return e(),i("div",null,l)}const m=s(n,[["render",o]]);export{g as __pageData,m as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,12 +3,13 @@ import{_ as s,c as i,o as a,a1 as t}from"./chunks/framework.CszIUXhs.js";const g
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;type&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;ghrel&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;repo&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;libevent/libevent&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;match&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;libevent.+</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\\\</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.tar</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\\\</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.gz&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;provide-pre-built&quot;</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>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;license&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;type&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;file&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;path&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;LICENSE&quot;</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:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p> <code>type</code></p><ul><li><code>url</code>: 使 URL <code>https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz</code></li><li><code>ghrel</code>: 使 GitHub Release API GitHub </li><li><code>ghtar</code>: 使 GitHub Release API <code>ghrel</code> <code>ghtar</code> Release <code>source code (tar.gz)</code> </li><li><code>ghtagtar</code>: 使 GitHub Release API <code>ghtar</code> <code>ghtagtar</code> <code>tags</code> <code>tar.gz</code> 使 <code>tag</code> </li><li><code>bitbuckettag</code>: 使 BitBucket API <code>ghtagtar</code> BitBucket</li><li><code>git</code>: Git Git </li><li><code>filelist</code>: 使 Web </li><li><code>custom</code>: <code>custom</code> <code>src/SPC/store/source/</code> <code>CustomSourceBase</code></li></ul><h2 id="source-json-" tabindex="-1">source.json <a class="header-anchor" href="#source-json-" aria-label="Permalink to &quot;source.json &quot;"></a></h2><p>source.json </p><ul><li><code>license</code>: <strong></strong> </li><li><code>type</code>: </li><li><code>path</code>: <code>source/{name}</code></li></ul><div class="tip custom-block"><p class="custom-block-title">TIP</p><p><code>source.json</code> <code>path</code> <code>source/</code></p></div><h2 id="-url" tabindex="-1"> - url <a class="header-anchor" href="#-url" aria-label="Permalink to &quot; - url&quot;"></a></h2><p>url URL </p><p></p><ul><li><code>url</code>: <code>https://example.com/file.tgz</code></li><li><code>filename</code>: 使 url </li></ul><p> imagick php </p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><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></code></pre></div><p> <code>type</code></p><ul><li><code>url</code>: 使 URL <code>https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz</code></li><li><code>ghrel</code>: 使 GitHub Release API GitHub </li><li><code>ghtar</code>: 使 GitHub Release API <code>ghrel</code> <code>ghtar</code> Release <code>source code (tar.gz)</code> </li><li><code>ghtagtar</code>: 使 GitHub Release API <code>ghtar</code> <code>ghtagtar</code> <code>tags</code> <code>tar.gz</code> 使 <code>tag</code> </li><li><code>bitbuckettag</code>: 使 BitBucket API <code>ghtagtar</code> BitBucket</li><li><code>git</code>: Git Git </li><li><code>filelist</code>: 使 Web </li><li><code>custom</code>: <code>custom</code> <code>src/SPC/store/source/</code> <code>CustomSourceBase</code></li></ul><h2 id="source-json-" tabindex="-1">source.json <a class="header-anchor" href="#source-json-" aria-label="Permalink to &quot;source.json &quot;"></a></h2><p>source.json </p><ul><li><code>license</code>: <strong></strong> </li><li><code>type</code>: </li><li><code>path</code>: <code>source/{name}</code></li><li><code>provide-pre-built</code>: <code>true</code> <code>bin/spc download</code> </li></ul><div class="tip custom-block"><p class="custom-block-title">TIP</p><p><code>source.json</code> <code>path</code> <code>source/</code></p></div><h2 id="-url" tabindex="-1"> - url <a class="header-anchor" href="#-url" aria-label="Permalink to &quot; - url&quot;"></a></h2><p>url URL </p><p></p><ul><li><code>url</code>: <code>https://example.com/file.tgz</code></li><li><code>filename</code>: 使 url </li></ul><p> imagick php </p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;ext-imagick&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;type&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;url&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> &quot;url&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;https://pecl.php.net/get/imagick&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>

View File

@ -1 +1 @@
import{C as e}from"./chunks/CliGenerator.kmB1Poxd.js";import{d as t,c as a,I as o,a1 as r,o as i}from"./chunks/framework.CszIUXhs.js";const c=r('<h1 id="cli-编译命令生成器" tabindex="-1">CLI 编译命令生成器 <a class="header-anchor" href="#cli-编译命令生成器" aria-label="Permalink to &quot;CLI 编译命令生成器&quot;"></a></h1><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>下面选择扩展可能包含所选操作系统不支持的扩展,这可能导致编译失败。请先查阅 <a href="./extensions.html">支持的扩展</a>。</p></div>',2),p=JSON.parse('{"title":"CLI 编译命令生成器","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/cli-generator.md","filePath":"zh/guide/cli-generator.md"}'),s={name:"zh/guide/cli-generator.md"},_=t({...s,setup(l){return(n,d)=>(i(),a("div",null,[c,o(e,{lang:"zh"})]))}});export{p as __pageData,_ as default};
import{C as e}from"./chunks/CliGenerator.CghG5-6u.js";import{d as t,c as a,I as o,a1 as r,o as i}from"./chunks/framework.CszIUXhs.js";const c=r('<h1 id="cli-编译命令生成器" tabindex="-1">CLI 编译命令生成器 <a class="header-anchor" href="#cli-编译命令生成器" aria-label="Permalink to &quot;CLI 编译命令生成器&quot;"></a></h1><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>下面选择扩展可能包含所选操作系统不支持的扩展,这可能导致编译失败。请先查阅 <a href="./extensions.html">支持的扩展</a>。</p></div>',2),p=JSON.parse('{"title":"CLI 编译命令生成器","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/cli-generator.md","filePath":"zh/guide/cli-generator.md"}'),s={name:"zh/guide/cli-generator.md"},_=t({...s,setup(l){return(n,d)=>(i(),a("div",null,[c,o(e,{lang:"zh"})]))}});export{p as __pageData,_ as default};

View File

@ -1 +1 @@
import{C as e}from"./chunks/CliGenerator.kmB1Poxd.js";import{d as t,c as a,I as o,a1 as r,o as i}from"./chunks/framework.CszIUXhs.js";const c=r('<h1 id="cli-编译命令生成器" tabindex="-1">CLI 编译命令生成器 <a class="header-anchor" href="#cli-编译命令生成器" aria-label="Permalink to &quot;CLI 编译命令生成器&quot;"></a></h1><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>下面选择扩展可能包含所选操作系统不支持的扩展,这可能导致编译失败。请先查阅 <a href="./extensions.html">支持的扩展</a>。</p></div>',2),p=JSON.parse('{"title":"CLI 编译命令生成器","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/cli-generator.md","filePath":"zh/guide/cli-generator.md"}'),s={name:"zh/guide/cli-generator.md"},_=t({...s,setup(l){return(n,d)=>(i(),a("div",null,[c,o(e,{lang:"zh"})]))}});export{p as __pageData,_ as default};
import{C as e}from"./chunks/CliGenerator.CghG5-6u.js";import{d as t,c as a,I as o,a1 as r,o as i}from"./chunks/framework.CszIUXhs.js";const c=r('<h1 id="cli-编译命令生成器" tabindex="-1">CLI 编译命令生成器 <a class="header-anchor" href="#cli-编译命令生成器" aria-label="Permalink to &quot;CLI 编译命令生成器&quot;"></a></h1><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>下面选择扩展可能包含所选操作系统不支持的扩展,这可能导致编译失败。请先查阅 <a href="./extensions.html">支持的扩展</a>。</p></div>',2),p=JSON.parse('{"title":"CLI 编译命令生成器","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/cli-generator.md","filePath":"zh/guide/cli-generator.md"}'),s={name:"zh/guide/cli-generator.md"},_=t({...s,setup(l){return(n,d)=>(i(),a("div",null,[c,o(e,{lang:"zh"})]))}});export{p as __pageData,_ as default};

View File

@ -48,6 +48,9 @@ import{_ as s,c as i,o as a,a1 as n}from"./chunks/framework.CszIUXhs.js";const g
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 下载资源时忽略部分资源的缓存强制下载如切换 PHP 版本</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=curl,pcntl,xml</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --ignore-cache-sources=php-src</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --with-php=8.3</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 下载资源时优先下载有预编译包的依赖库减少编译依赖的时间</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --for-extensions=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;curl,pcntl,xml,mbstring&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --prefer-pre-built</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 下载所有依赖包</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> download</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --all</span></span>
<span class="line"></span>
@ -104,7 +107,7 @@ import{_ as s,c as i,o as a,a1 as n}from"./chunks/framework.CszIUXhs.js";const g
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> micro:combine</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> a.php</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -N</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /path/to/your/custom.ini</span></span></code></pre></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>使 PHP PHP <code>php.ini</code> </p><div class="language-ini vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">; custom.ini</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">curl.cainfo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=/path/to/your/cafile.pem</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">memory_limit</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=1G</span></span></code></pre></div><p> ini micro.sfx INI </p></div><p> phar <code>a.php</code> phar phar micro.sfx <a href="./../develop/structure.html#phar-">Developing - Phar </a></p><h2 id="-extract-" tabindex="-1"> extract - <a class="header-anchor" href="#-extract-" aria-label="Permalink to &quot; extract - &quot;"></a></h2><p>使 <code>bin/spc extract</code> php-src </p><p>使</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># php-src libxml2 source </span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extract</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> php-src,libxml2</span></span></code></pre></div><h2 id="-dev-" tabindex="-1"> dev - <a class="header-anchor" href="#-dev-" aria-label="Permalink to &quot; dev - &quot;"></a></h2><p>使 static-php-cli PHP static-php-cli </p><ul><li><code>dev:extensions</code>: </li><li><code>dev:php-version</code>: PHP <code>php_version.h</code> </li><li><code>dev:sort-config</code>: <code>config/</code> </li><li><code>dev:lib-ver &lt;lib-name&gt;</code>: </li><li><code>dev:ext-ver &lt;ext-name&gt;</code>: </li></ul><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># </span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extract</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> php-src,libxml2</span></span></code></pre></div><h2 id="-dev-" tabindex="-1"> dev - <a class="header-anchor" href="#-dev-" aria-label="Permalink to &quot; dev - &quot;"></a></h2><p>使 static-php-cli PHP static-php-cli </p><ul><li><code>dev:extensions</code>: </li><li><code>dev:php-version</code>: PHP <code>php_version.h</code> </li><li><code>dev:sort-config</code>: <code>config/</code> </li><li><code>dev:lib-ver &lt;lib-name&gt;</code>: </li><li><code>dev:ext-ver &lt;ext-name&gt;</code>: </li><li><code>dev:pack-lib &lt;lib-name&gt;</code>: </li><li><code>dev:gen-ext-docs</code>: </li></ul><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># </span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bin/spc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dev:extensions</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 输出指定扩展的信息</span></span>
@ -131,4 +134,4 @@ import{_ as s,c as i,o as a,a1 as n}from"./chunks/framework.CszIUXhs.js";const g
<span class="line"><span>Loaded Configuration File =&gt; /Users/jerry/project/git-project/static-php-cli/php.ini</span></span>
<span class="line"><span></span></span>
<span class="line"><span>$ buildroot/bin/php -i | grep memory</span></span>
<span class="line"><span>memory_limit =&gt; 8G =&gt; 8G</span></span></code></pre></div><p> static-php-cli </p><p>使 <code>-P</code> </p><ul><li><code>SPC\\store\\FileSystem</code>: <ul><li><code>::replaceFileStr(string $filename, string $search, $replace)</code>: </li><li><code>::replaceFileStr(string $filename, string $pattern, $replace)</code>: </li><li><code>::replaceFileUser(string $filename, $callback)</code>: </li><li><code>::copyDir(string $from, string $to)</code>: </li><li><code>::convertPath(string $path)</code>: </li><li><code>::scanDirFiles(string $dir, bool $recursive = true, bool|string $relative = false, bool $include_dir = false)</code>: </li></ul></li><li><code>SPC\\builder\\BuilderBase</code>: <ul><li><code>-&gt;getPatchPoint()</code>: </li><li><code>-&gt;getOption(string $key, $default = null)</code>: </li><li><code>-&gt;getPHPVersionID()</code>: PHP ID</li><li><code>-&gt;getPHPVersion()</code>: PHP </li><li><code>-&gt;setOption(string $key, $value)</code>: </li><li><code>-&gt;setOptionIfNotExists(string $key, $value)</code>: </li></ul></li></ul><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>static-php-cli <code>public function</code> <code>@internal</code></p></div>`,101),e=[l];function t(h,d,c,k,o,r){return a(),i("div",null,e)}const b=s(p,[["render",t]]);export{g as __pageData,b as default};
<span class="line"><span>memory_limit =&gt; 8G =&gt; 8G</span></span></code></pre></div><p> static-php-cli </p><p>使 <code>-P</code> </p><ul><li><code>SPC\\store\\FileSystem</code>: <ul><li><code>::replaceFileStr(string $filename, string $search, $replace)</code>: </li><li><code>::replaceFileStr(string $filename, string $pattern, $replace)</code>: </li><li><code>::replaceFileUser(string $filename, $callback)</code>: </li><li><code>::copyDir(string $from, string $to)</code>: </li><li><code>::convertPath(string $path)</code>: </li><li><code>::scanDirFiles(string $dir, bool $recursive = true, bool|string $relative = false, bool $include_dir = false)</code>: </li></ul></li><li><code>SPC\\builder\\BuilderBase</code>: <ul><li><code>-&gt;getPatchPoint()</code>: </li><li><code>-&gt;getOption(string $key, $default = null)</code>: </li><li><code>-&gt;getPHPVersionID()</code>: PHP ID</li><li><code>-&gt;getPHPVersion()</code>: PHP </li><li><code>-&gt;setOption(string $key, $value)</code>: </li><li><code>-&gt;setOptionIfNotExists(string $key, $value)</code>: </li></ul></li></ul><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>static-php-cli <code>public function</code> <code>@internal</code></p></div><h2 id="" tabindex="-1"> <a class="header-anchor" href="#" aria-label="Permalink to &quot;&quot;"></a></h2><p></p><ul><li> PHP 使 <code>bin/spc switch-php-version</code> PHP <code>build</code> </li><li> <code>rm -rf buildroot source</code> </li><li>使 <code>bin/spc del-download &lt;source-name&gt;</code> 使 <code>download &lt;source-name&gt;</code> </li><li>使 <code>bin/spc download --clean</code> </li></ul>`,104),e=[l];function t(h,d,c,k,o,r){return a(),i("div",null,e)}const b=s(p,[["render",t]]);export{g as __pageData,b as default};

View File

@ -1 +1 @@
import{_ as s,c as i,o as a,a1 as n}from"./chunks/framework.CszIUXhs.js";const g=JSON.parse('{"title":"本地构建Linux、macOS、FreeBSD","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/manual-build.md","filePath":"zh/guide/manual-build.md"}'),p={name:"zh/guide/manual-build.md"},l=n("",101),e=[l];function t(h,d,c,k,o,r){return a(),i("div",null,e)}const b=s(p,[["render",t]]);export{g as __pageData,b as default};
import{_ as s,c as i,o as a,a1 as n}from"./chunks/framework.CszIUXhs.js";const g=JSON.parse('{"title":"本地构建Linux、macOS、FreeBSD","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/manual-build.md","filePath":"zh/guide/manual-build.md"}'),p={name:"zh/guide/manual-build.md"},l=n("",104),e=[l];function t(h,d,c,k,o,r){return a(),i("div",null,e)}const b=s(p,[["render",t]]);export{g as __pageData,b as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"en_develop_doctor-module.md":"M_P38WuA","zh_faq_index.md":"Bs3v_2I2","zh_develop_system-build-tools.md":"DvA9SnOG","en_guide_cli-generator.md":"b3oTmA6e","en_develop_php-src-changes.md":"Dw_q8s3t","extension-notes.md":"CYTuu5Xm","en_guide_extension-notes.md":"C-SzmSnl","en_guide_action-build.md":"DqfXKtKF","en_contributing_index.md":"0xRtVBv6","index.md":"DDaDbFm-","en_guide_env-vars.md":"XRLVeMgw","zh_develop_php-src-changes.md":"C7L9rEms","en_develop_source-module.md":"CuG52-lh","zh_guide_extensions.md":"BHyfzh9r","en_develop_system-build-tools.md":"Ds5Kgdf6","en_index.md":"B7rqxnyF","en_guide_build-on-windows.md":"Bw1buXoR","en_guide_manual-build.md":"CiZNh_BU","en_guide_troubleshooting.md":"BZNNttUZ","zh_guide_build-on-windows.md":"C1RFP4Q6","zh_develop_structure.md":"DJyPDdQ4","zh_guide_troubleshooting.md":"CSXAWaMN","zh_guide_extension-notes.md":"BI7HOrtL","zh_develop_doctor-module.md":"CPRdzud3","zh_guide_env-vars.md":"Dn5AS_wq","en_guide_extensions.md":"BtMDj8Bu","zh_develop_index.md":"CISWAEXj","zh_contributing_index.md":"BgLPhRbJ","en_develop_index.md":"BqNiKnHj","en_develop_structure.md":"wZEZWbru","zh_index.md":"Bu-me8xZ","en_guide_index.md":"DzPC1rL-","zh_guide_cli-generator.md":"BV7MfeZA","zh_develop_source-module.md":"DMk5GAAn","en_faq_index.md":"DM_hczmb","extensions.md":"2KrBccsz","zh_guide_index.md":"D0Jfo4Dz","zh_guide_action-build.md":"BQOsJgGT","zh_guide_manual-build.md":"C58zH3IF"}
{"en_contributing_index.md":"0xRtVBv6","en_guide_env-vars.md":"XRLVeMgw","en_guide_extension-notes.md":"C-SzmSnl","zh_index.md":"Bu-me8xZ","en_faq_index.md":"DM_hczmb","zh_develop_php-src-changes.md":"C7L9rEms","zh_develop_source-module.md":"ByssbQZ9","en_guide_action-build.md":"DqfXKtKF","en_develop_php-src-changes.md":"Dw_q8s3t","en_develop_doctor-module.md":"M_P38WuA","en_guide_index.md":"DzPC1rL-","zh_guide_troubleshooting.md":"CSXAWaMN","zh_guide_action-build.md":"BQOsJgGT","en_develop_structure.md":"Bam0WW0K","zh_guide_build-on-windows.md":"C1RFP4Q6","en_guide_build-on-windows.md":"Bw1buXoR","zh_faq_index.md":"Bs3v_2I2","zh_guide_extensions.md":"BHyfzh9r","zh_guide_env-vars.md":"Dn5AS_wq","zh_guide_index.md":"D0Jfo4Dz","zh_develop_doctor-module.md":"CPRdzud3","zh_develop_index.md":"CISWAEXj","zh_contributing_index.md":"BgLPhRbJ","en_develop_index.md":"BqNiKnHj","zh_develop_system-build-tools.md":"DvA9SnOG","index.md":"DDaDbFm-","en_guide_troubleshooting.md":"BZNNttUZ","en_index.md":"B7rqxnyF","zh_guide_extension-notes.md":"BI7HOrtL","zh_guide_manual-build.md":"Ci3gyA_u","en_guide_cli-generator.md":"Du-H1Y0q","en_develop_system-build-tools.md":"Ds5Kgdf6","extension-notes.md":"CYTuu5Xm","en_guide_extensions.md":"BtMDj8Bu","zh_guide_cli-generator.md":"DGyikDdo","extensions.md":"2KrBccsz","en_develop_source-module.md":"BvLG6ZYy","en_guide_manual-build.md":"DP7SyMPT","zh_develop_structure.md":"DDUlE6Vc"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long