2024-07-01 02:35:17 +00:00
<!DOCTYPE html>
< html lang = "en" dir = "ltr" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
< title > Doctor module | static-php-cli< / title >
< meta name = "description" content = "Build single static PHP binary, with PHP project together, with popular extensions included." >
2025-06-12 04:49:10 +00:00
< meta name = "generator" content = "VitePress v2.0.0-alpha.5" >
2025-08-29 01:47:12 +00:00
< link rel = "preload stylesheet" href = "/assets/style.384sric5.css" as = "style" >
2025-06-12 04:49:10 +00:00
< link rel = "preload stylesheet" href = "/vp-icons.css" as = "style" >
2024-07-01 02:35:17 +00:00
2025-06-30 14:10:14 +00:00
< script type = "module" src = "/assets/app.DQMp3l4I.js" > < / script >
2024-07-01 02:35:17 +00:00
< link rel = "preload" href = "/assets/inter-roman-latin.Di8DUHzh.woff2" as = "font" type = "font/woff2" crossorigin = "" >
2025-06-30 14:10:14 +00:00
< link rel = "modulepreload" href = "/assets/chunks/theme.DbVD3jYa.js" >
2025-06-12 04:49:10 +00:00
< link rel = "modulepreload" href = "/assets/chunks/framework.PeLcR_tw.js" >
< link rel = "modulepreload" href = "/assets/en_develop_doctor-module.md.DYVfKght.lean.js" >
2024-07-01 02:35:17 +00:00
< script id = "check-dark-mode" > ( ( ) => { const e = localStorage . getItem ( "vitepress-theme-appearance" ) || "auto" , a = window . matchMedia ( "(prefers-color-scheme: dark)" ) . matches ; ( ! e || e === "auto" ? a : e === "dark" ) && document . documentElement . classList . add ( "dark" ) } ) ( ) ; < / script >
< script id = "check-mac-os" > document . documentElement . classList . toggle ( "mac" , /Mac|iPhone|iPod|iPad/i . test ( navigator . platform ) ) ; < / script >
< / head >
< body >
2025-06-12 04:49:10 +00:00
< div id = "app" > < div class = "Layout" data-v-5e06b97a > <!-- [ --> <!-- ] --> <!-- [ --> < span tabindex = "-1" data-v-0b0ada53 > < / span > < a href = "#VPContent" class = "VPSkipLink visually-hidden" data-v-0b0ada53 > Skip to content< / a > <!-- ] --> <!-- --> < header class = "VPNav" data-v-5e06b97a data-v-ae24b3ad > < div class = "VPNavBar" data-v-ae24b3ad data-v-0ae64501 > < div class = "wrapper" data-v-0ae64501 > < div class = "container" data-v-0ae64501 > < div class = "title" data-v-0ae64501 > < div class = "VPNavBarTitle has-sidebar" data-v-0ae64501 data-v-1e38c6bc > < a class = "title" href = "/en/" data-v-1e38c6bc > <!-- [ --> <!-- ] --> <!-- --> < span data-v-1e38c6bc > static-php-cli< / span > <!-- [ --> <!-- ] --> < / a > < / div > < / div > < div class = "content" data-v-0ae64501 > < div class = "content-body" data-v-0ae64501 > <!-- [ --> <!-- ] --> < div class = "VPNavBarSearch search" data-v-0ae64501 > <!-- --> < / div > < nav aria-labelledby = "main-nav-aria-label" class = "VPNavBarMenu menu" data-v-0ae64501 data-v-39714824 > < span id = "main-nav-aria-label" class = "visually-hidden" data-v-39714824 > Main Navigation < / span > <!-- [ --> <!-- [ --> < a class = "VPLink link VPNavBarMenuLink" href = "/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 > Advanced< / 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 > <!-- ] --> <!-- ] --> < / nav > < div class = "VPFlyout VPNavBarTranslations translations" data-v-0ae64501 data-v-88af2de4 data-v-3ab3deac > < button type = "button" class = "button" aria-haspopup = "true" aria-expanded = "false" aria-label = "Change language" data-v-3ab3deac > < span class = "text" data-v-3ab3deac > < span class = "vpi-languages option-icon" data-v-3ab3deac > < / span > <!-- --> < span class = "vpi-chevron-down text-icon" data-v-3ab3deac > < / span > < / span > < / button > < div class = "menu" data-v-3ab3deac > < div class = "VPMenu" data-v-3ab3deac data-v-c9afd7f1 > <!-- --> <!-- [ --> <!-- [ --> < div class = "items" data-v-88af2de4 > < p class = "title" data-v-88af2de4 > English< / p > <!-- [ --> < div class = "VPMenuLink" data-v-88af2de4 data-v-35975db6 > < a class = "VPLink link" href = "/zh/develop/doctor-module.html" data-v-35975db6 > <!-- [ --> < span data-v-35975db6 > 简体中文< / span > <!-- ] --> < / a > < / div > <!-- ] --> < / div > <!-- ] --> <!-- ] --> < / div > < / div > < / div > < div class = "VPNavBarAppearance appearance" data-v-0ae64501 data-v-6c893767 > < button class = "VPSwitch VPSwitchAppearance" type = "button" role = "switch" title aria-checked = "false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3 > < span class = "check" data-v-1d5665e3 > < span class = "icon" data-v-1d5665e3 > <!-- [ --> < span class = "vpi-sun sun" data-v-5337faa4 > < / span > < span class = "vpi-moon moon" data-v-5337faa4 > < / span > <!-- ] --> < / span > < / span > < / button > < / div > < div class = "VPSocialLinks VPNavBarSocialLinks social-links" data-v-0ae64501 data-v-0394ad82 data-v-d474d15f > <!-- [ --> < a class = "VPSocialLink no-icon" href = "https://github.com/crazywhalecc/static-php-cli" aria-label = "github" target = "_blank" rel = "noopener" data-v-d474d15f data-v-bd121fe5 > < span class = "vpi-social-github" > < / span > < / a > <!-- ] --> < / div > < div class = "VPFlyout VPNavBarExtra extra" data-v-0ae64501 data-v-bb2aa2f0 data-v-3ab3deac > < button type = "button" class = "button" aria-haspopup = "true" aria-expanded = "false" aria-label = "extra navigation" data-v-3ab3deac > < span class = "vpi-more-horizontal icon" data-v-3ab3deac > < / span > < / button > < div class = "menu" data-v-3ab3deac > < div class = "VPMenu" data-v-3ab3deac data-v-c9afd7f1 > <!-- --> <!-- [ --> <!-- [ --> < div class = "group translations" data-v-bb2aa2f0 > < p class = "trans-title" data-v-bb2aa2f0 > English< / p > <!-- [ --> < div class = "VPMenuLink" data-v-bb2aa2f0 data-v-35975db6 > < a class = "VPLink link" href = "/zh/develop/doctor-module.html" data-v-35975db6 > <!-- [ --> < span data-v-35975db6 > 简体中文< / span > <!-- ] --> < / a > < / div > <!-- ] --> < /d
2024-07-01 02:35:17 +00:00
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > use< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > SPC\doctor\AsFixItem< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ;< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > use< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > SPC\doctor\CheckResult< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ;< / span > < / span >
< span class = "line" > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > #[< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > AsCheckItem< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' if necessary tools are installed' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > , < / span > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > limit_os< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > : < / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' Darwin' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > , < / span > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > level< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > : < / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > 997< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > )]< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > public< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > function< / span > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > checkCliTools< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ()< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > :< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > ?< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > CheckResult< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > {< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > $missing < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > =< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > [];< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > foreach< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > self::< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > REQUIRED_COMMANDS< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > as< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > $cmd) {< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > if< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > $this< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > -> < / span > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > findCommand< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ($cmd) < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > ===< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > null< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ) {< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > $missing[] < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > =< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > $cmd;< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > }< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > }< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > if< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > !< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > empty< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ($missing)) {< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > return< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > CheckResult< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > ::< / span > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > fail< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' missing system commands: ' < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > .< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > implode< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' , ' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > , $missing), < / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' build-tools' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > , [$missing]);< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > }< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > return< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > CheckResult< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > ::< / span > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > ok< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ();< / span > < / span >
2025-06-12 04:49:10 +00:00
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > }< / span > < / span > < / code > < / pre > < / div > < p > The first parameter of the attribute is the name of the check item, and the following < code > limit_os< / code > parameter restricts the check item to be triggered only under the specified system, and < code > level< / code > is the priority of executing the check item, the larger the number, the higher the priority higher.< / p > < p > The < code > $this-> findCommand()< / code > method used in it is the method of < code > SPC\builder\traits\UnixSystemUtilTrait< / code > , the purpose is to find the location of the system command, and return NULL if it cannot be found.< / p > < p > Each check item method should return a < code > SPC\doctor\CheckResult< / code > :< / p > < ul > < li > When returning < code > CheckResult::fail()< / code > , the first parameter is used to output the error prompt of the terminal, and the second parameter is the name of the repair item when this check item can be automatically repaired.< / li > < li > When < code > CheckResult::ok()< / code > is returned, the check passed. You can also pass a parameter to return the check result, for example: < code > CheckResult::ok(' OS supported' )< / code > .< / li > < li > When returning < code > CheckResult::fail()< / code > , if the third parameter is included, the array of the third parameter will be used as the parameter of < code > AsFixItem< / code > .< / li > < / ul > < p > The following is the method for automatically repairing items corresponding to this check item:< / p > < div class = "language-php" > < button title = "Copy Code" class = "copy" > < / button > < span class = "lang" > php< / span > < pre class = "shiki shiki-themes github-light github-dark" style = "--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex = "0" dir = "ltr" > < code > < span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > #[< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > AsFixItem< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' build-tools' < / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > )]< / span > < / span >
2024-07-01 02:35:17 +00:00
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > public< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > function< / span > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > fixBuildTools< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > array< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > $missing)< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > :< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > bool< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > {< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > foreach< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ($missing < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > as< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > $cmd) {< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > try< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > {< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > shell< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > true< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > )< / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > -> < / span > < span style = "--shiki-light:#6F42C1;--shiki-dark:#B392F0;" > exec< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#032F62;--shiki-dark:#9ECBFF;" > ' brew install ' < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > .< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > escapeshellarg< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ($cmd));< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > } < / span > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > catch< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > (< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > RuntimeException< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ) {< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > return< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > false< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ;< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > }< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > }< / span > < / span >
< span class = "line" > < span style = "--shiki-light:#D73A49;--shiki-dark:#F97583;" > return< / span > < span style = "--shiki-light:#005CC5;--shiki-dark:#79B8FF;" > true< / span > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > ;< / span > < / span >
2025-06-12 04:49:10 +00:00
< span class = "line" > < span style = "--shiki-light:#24292E;--shiki-dark:#E1E4E8;" > }< / span > < / span > < / code > < / pre > < / div > < p > < code > #[AsFixItem()]< / code > first parameter is the name of the fix item, and this method must return True or False. When False is returned, the automatic repair failed and manual handling is required.< / p > < p > In the code here, < code > shell()-> exec()< / code > is the method of executing commands of the project, which is used to replace < code > exec()< / code > and < code > system()< / code > , and also provides debugging, obtaining execution status, entering directories, etc. characteristic.< / 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/develop/php-src-changes.html" data-v-e257564d > <!-- [ --> < span class = "desc" data-v-e257564d > Previous page< / span > < span class = "title" data-v-e257564d > PHP Source Modification< / span > <!-- ] --> < / a > < / div > < div class = "pager" data-v-e257564d > < a class = "VPLink link pager-link next" href = "/en/develop/source-module.html" data-v-e257564d > <!-- [ --> < span class = "desc" data-v-e257564d > Next page< / span > < span class = "title" data-v-e257564d > Source< / span > <!-- ] --> < / a > < / div > < / nav > < / footer > <!-- [ --> <!-- ] --> < / div > < / div > < / div > <!-- [ --> <!-- ] --> < / div > < / div > < footer class = "VPFooter has-sidebar" data-v-5e06b97a data-v-c3855bb3 > < div class = "container" data-v-c3855bb3 > < p class = "message" data-v-c3855bb3 > Released under the MIT License.< / p > < p class = "copyright" data-v-c3855bb3 > Copyright © 2023-present crazywhalecc< / p > < / div > < / footer > <!-- [ --> <!-- ] --> < / div > < / div >
2025-08-29 01:47:12 +00:00
< script > w i n d o w . _ _ V P _ H A S H _ M A P _ _ = J S O N . p a r s e ( " { \ " d e p s - c r a f t - y m l . m d \ " : \ " D W P K e u X i \ " , \ " d e p s - m a p - e x t . m d \ " : \ " B 9 k n s y s L \ " , \ " d e p s - m a p - l i b . m d \ " : \ " D O t B R 8 N X \ " , \ " e n _ c o n t r i b u t i n g _ i n d e x . m d \ " : \ " C 8 t X D L 1 f \ " , \ " e n _ d e v e l o p _ c r a f t - y m l . m d \ " : \ " B D q 8 u W I r \ " , \ " e n _ d e v e l o p _ d o c t o r - m o d u l e . m d \ " : \ " D Y V f K g h t \ " , \ " e n _ d e v e l o p _ i n d e x . m d \ " : \ " D S l q u r y N \ " , \ " e n _ d e v e l o p _ p h p - s r c - c h a n g e s . m d \ " : \ " D a d H F a G C \ " , \ " e n _ d e v e l o p _ s o u r c e - m o d u l e . m d \ " : \ " C e J E g S _ j \ " , \ " e n _ d e v e l o p _ s t r u c t u r e . m d \ " : \ " D 1 k B T w e h \ " , \ " e n _ d e v e l o p _ s y s t e m - b u i l d - t o o l s . m d \ " : \ " D K 4 A a C y _ \ " , \ " e n _ f a q _ i n d e x . m d \ " : \ " D n H L g G c l \ " , \ " e n _ g u i d e _ a c t i o n - b u i l d . m d \ " : \ " B C J v L z 8 l \ " , \ " e n _ g u i d e _ b u i l d - o n - w i n d o w s . m d \ " : \ " C G 2 3 C k L K \ " , \ " e n _ g u i d e _ b u i l d - w i t h - g l i b c . m d \ " : \ " B D B C s G W a \ " , \ " e n _ g u i d e _ c l i - g e n e r a t o r . m d \ " : \ " B s P N k B 0 u \ " , \ " e n _ g u i d e _ d e p s - m a p . m d \ " : \ " C 4 W 5 F d 1 5 \ " , \ " e n _ g u i d e _ e n v - v a r s . m d \ " : \ " D z V A T b t O \ " , \ " e n _ g u i d e _ e x t e n s i o n - n o t e s . m d \ " : \ " C - _ d - X l C \ " , \ " e n _ g u i d e _ e x t e n s i o n s . m d \ " : \ " 8 t Y H q n _ N \ " , \ " e n _ g u i d e _ i n d e x . m d \ " : \ " B y 6 X U N 6 E \ " , \ " e n _ g u i d e _ m a n u a l - b u i l d . m d \ " : \ " B S 1 N E y Z X \ " , \ " e n _ g u i d e _ t r o u b l e s h o o t i n g . m d \ " : \ " B v J g Q K v b \ " , \ " e n _ i n d e x . m d \ " : \ " k O - e 3 9 M 0 \ " , \ " e x t e n s i o n - n o t e s . m d \ " : \ " D k p Y D q 7 p \ " , \ " e x t e n s i o n s . m d \ " : \ " C m 2 b D 6 W z \ " , \ " i n d e x . m d \ " : \ " w J B x K T z p \ " , \ " z h _ c o n t r i b u t i n g _ i n d e x . m d \ " : \ " 2 2 a k X f o C \ " , \ " z h _ d e v e l o p _ c r a f t - y m l . m d \ " : \ " D f v 1 f X u q \ " , \ " z h _ d e v e l o p _ d o c t o r - m o d u l e . m d \ " : \ " B 8 r 2 l b U 8 \ " , \ " z h _ d e v e l o p _ i n d e x . m d \ " : \ " D e c U 9 Y 3 b \ " , \ " z h _ d e v e l o p _ p h p - s r c - c h a n g e s . m d \ " : \ " C k j a M I k y \ " , \ " z h _ d e v e l o p _ s o u r c e - m o d u l e . m d \ " : \ " D o B n e z P 5 \ " , \ " z h _ d e v e l o p _ s t r u c t u r e . m d \ " : \ " D S t J T s Y D \ " , \ " z h _ d e v e l o p _ s y s t e m - b u i l d - t o o l s . m d \ " : \ " C x P k P V _ h \ " , \ " z h _ f a q _ i n d e x . m d \ " : \ " n E 1 d 0 a P t \ " , \ " z h _ g u i d e _ a c t i o n - b u i l d . m d \ " : \ " C Y e V j G h J \ " , \ " z h _ g u i d e _ b u i l d - o n - w i n d o w s . m d \ " : \ " 6 J B R E A B Q \ " , \ " z h _ g u i d e _ b u i l d - w i t h - g l i b c . m d \ " : \ " C G b U 9 3 7 o \ " , \ " z h _ g u i d e _ c l i - g e n e r a t o r . m d \ " : \ " D V B B a W 5 t \ " , \ " z h _ g u i d e _ d e p s - m a p . m d \ " : \ " B K _ n 0 0 u 9 \ " , \ " z h _ g u i d e _ e n v - v a r s . m d \ " : \ " D q Y H b U f S \ " , \ " z h _ g u i d e _ e x t e n s i o n - n o t e s . m d \ " : \ " D 1 f - 1 3 Y X \ " , \ " z h _ g u i d e _ e x t e n s i o n s . m d \ " : \ " C R N x X z e G \ " , \ " z h _ g u i d e _ i n d e x . m d \ " : \ " D W A O 4 _ z O \ " , \ " z h _ g u i d e _ m a n u a l - b u i l d . m d \ " : \ " D A n A 1 d t 8 \ " , \ " z h _ g u i d e _ t r o u b l e s h o o t i n g . m d \ " : \ " D S U I b 5 1 x \ " , \ " z h _ i n d e x . m d \ " : \ " D c i k G F e e \ " } " ) ; w i n d o w . _ _ V P _ S I T E _ D A T A _ _ = J S O N . p a r s e ( " { \ " l a n g \ " : \ " e n - U S \ " , \ " d i r \ " : \ " l t r \ " , \ " t i t l e \ " : \ " s t a t i c - p h p - c l i \ " , \ " d e s c r i p t i o n \ " : \ " B u i l d s i n g l e s t a t i c P H P b i n a r y , w i t h P H P p r o j e c t t o g e t h e r , w i t h p o p u l a r e x t e n s i o n s i n c l u d e d . \ " , \ " b a s e \ " : \ " / \ " , \ " h e a d \ " : [ ] , \ " r o u t e r \ " : { \ " p r e f e t c h L i n k s \ " : t r u e } , \ " a p p e a r a n c e \ " : t r u e , \ " t h e m e C o n f i g \ " : { \ " n a v \ " : [ ] , \ " s o c i a l L i n k s \ " : [ { \ " i c o n \ " : \ " g i t h u b \ " , \ " l i n k \ " : \ " h t t p s : / / g i t h u b . c o m / c r a z y w h a l e c c / s t a t i c - p h p - c l i \ " } ] , \ " f o o t e r \ " : { \ " m e s s a g e \ " : \ " R e l e a s e d u n d e r t h e M I T L i c e n s e . \ " , \ " c o p y r i g h t \ " : \ " C o p y r i g h t © 2 0 2 3 - p r e s e n t c r a z y w h a l e c c \ " } } , \ " l o c a l e s \ " : { \ " e n \ " : { \ " l a b e l \ " : \ " E n g l i s h \ " , \ " l a n g \ " : \ " e n \ " , \ " t h e m e C o n f i g \ " : { \ " n a v \ " : [ { \ " t e x t \ " : \ " G u i d e \ " , \ " l i n k \ " : \ " / e n / g u i d e / \ " } , { \ " t e x t \ " : \ " A d v a n c e d \ " , \ " l i n k \ " : \ " / e n / d e v e l o p / \ " } , { \ " t e x t \ " : \ " C o n t r i b u t i n g \ " , \ " l i n k \ " : \ " / e n / c o n t r i b u t i n g / \ " } , { \ " t e x t \ " : \ " F A Q \ " , \ " l i n k \ " : \ " / e n / f a q / \ " } ] , \ " s i d e b a r \ " : { \ " / e n / g u i d e / \ " : [ { \ " t e x t \ " : \ " B a s i c B u i l d G u i d e s \ " , \ " i t e m s \ " : [ { \ " t e x t \ " : \ " G u i d e \ " , \ " l i n k \ " : \ " / e n / g u i d e / \ " } , { \ " t e x t \ " : \ " B u i l d ( L o c a l ) \ " , \ " l i n k \ " : \ " / e n / g u i d e / m a n u a l - b u i l d \ " } , { \ " t e x t \ " : \ " B u i l d ( C I ) \ " , \ " l i n k \ " : \ " / e n / g u i d e / a c t i o n - b u i l d \ " } , { \ " t e x t \ " : \ " S u p p o r t e d E x t e n s i o n s \ " , \ " l i n k \ " : \ " / e n / g u i d e / e x t e n s i o n s \ " } , { \ " t e x t \ " : \ " E x t e n s i o n N o t e s \ " , \ " l i n k \ " : \ " / e n / g u i d e / e x t e n s i o n - n o t e s \ " } , { \ " t e x t \ " : \ " B u i l d C o m m a n d G e n e r a t o r \ " , \ " l i n k \ " : \ " / e n / g u i d e / c l i - g e n e r a t o r \ " } , { \ " t e x t \ " : \ " E n v i r o n m e n t V a r i a b l e s \ " , \ " l i n k \ " : \ " / e n / g u i d e / e n v - v a r s \ " , \ " c o l l a p s e d \ " : t r u e } , { \ " t e x t \ " : \ " D e p e n d e n c y T a b l e \ " , \ " l i n k \ " : \ " / e n / g u i d e / d e p s - m a p \ " } ] } , { \ " t e x t \ " : \ " E x t e n d e d B u i l d G u i d e s \ " , \ " i t e m s \ " : [ { \ " t e x t \ " : \ " T r o u b l e s h o o t i n g \ " , \ " l i n k \ " : \ " / e n / g u i d e / t r o u b l e s h o o t i n g \ " } , { \ " t e x t \ " : \ " B u i l d o n W i n d o w s \ " , \ " l i n k \ " : \ " / e n / g u i d e / b u i l d - o n - w i n d o w s \ " } , { \ " t e x t \ " : \ " B u i l d w i t h G N U l i b c \ " , \ " l i n k \ " : \ " / e n / g u i d e / b u i l d - w i t h - g l i b c \ " } ] } ] , \ " / e n / d e v e l o p / \ " : [ { \ " t e x t \ " : \ " D e v e l o p m e n t \ " , \ " i t e m s \ " : [ { \ " t e x t \ " : \ " G e t S t a r t e d \ " , \ " l i n k \ " : \ " / e n / d e v e l o p / \ " } , { \ " t e x t \ " : \ " P r o j e c t S t r u c t u r e \ " , \ " l i n k \ " : \ " / e n / d e v e l o p / s t r u c t u r e \ " } , { \ " t e x t \ " : \ " P H P S o u r c e M o d i f i c a t i o n \ " , \ " l i n k \ " : \ " / e n / d e v e l o p / p h p - s r c - c h a n g e s \ " } ] } , { \ " t e x t \ " : \ " M o d u l e \ " , \ " i t e m s \ " : [ { \ " t e x t \ " : \ " D o c t o r \ " , \ " l i n k \ " : \ " / e n / d e v e l o p / d o c t o r - m o d u l e \ " } , { \ " t e x t \ " : \ " S o u r c e \ " , \ " l i n k \ " : \ " / e n / d e v e l o p / s o u r c e -
2024-07-01 02:35:17 +00:00
< / body >
< / html >