import{Gase,Kast,atasn,jasr}from"./chunks/framework.DrNIf5Lg.js";vari=JSON.parse(`{"title":"Project Structure","description":"","frontmatter":{},"headers":[],"relativePath":"en/develop/structure.md","filePath":"en/develop/structure.md"}`),a={name:`en/develop/structure.md`};functiono(r,i,a,o,s,c){returnn(),e(`div`,null,[...i[0]||=[t(`<h1 id="project-structure" tabindex="-1">Project Structure <a class="header-anchor" href="#project-structure" aria-label="Permalink to “Project Structure”"></a></h1><h2 id="concepts" tabindex="-1">Concepts <a class="header-anchor" href="#concepts" aria-label="Permalink to “Concepts”"></a></h2><p>StaticPHP is a CLI application built on <code>symfony/console</code>, with core code located in the <code>src/StaticPHP</code> directory. It is organized into several modules:</p><ul><li><strong>Registry</strong>: Manages registry data. Each registry contains multiple packages (Package), and the StaticPHP project ships with a built-in <code>core</code> registry that includes PHP and related extensions, dependencies, and more.</li><li><strong>Package</strong>: Represents a single package. There are four package types: <code>php-extension</code> (PHP extension), <code>library</code> (library), <code>target</code> (build target), and <code>virtual-target</code> (virtual build target). Each package contains build information, dependencies, and more.</li><li><strong>Installer/Builder</strong>: Handles installation and build logic for packages — executing build commands, extracting build artifacts, processing build results, etc.</li><li><strong>Doctor</strong>: Provides system environment checking, responsible for installing and verifying system-level dependencies such as <code>make</code>, <code>cmake</code>, <code>autoconf</code>, and more.</li><li><strong>Runtime/Executor</strong>: Contains runtime-related utility classes, such as shell command execution and CMake build execution.</li><li><strong>Toolchain</strong>: Provides toolchain abstraction interfaces for different operating systems and environments, handling system-level differences during the build process.</li><li><strong>Utils</strong>: General-purpose utility classes, such as file system operations, logging, and OS-specific helper methods.</li><li><strong>DependencyResolver</strong>: Resolves dependencies between packages and generates build order.</li></ul><h2 id="directory-layout" tabindex="-1">Directory Layout <a class="header-anchor" href="#directory-layout" aria-label="Permalink to “Directory Layout”"></a></h2><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></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>static-php-cli/</span></span>