Prepare for skeleton

This commit is contained in:
crazywhalecc
2025-12-15 17:00:20 +08:00
parent c1c31a730b
commit acd0e2b23a
10 changed files with 447 additions and 18 deletions

View File

@@ -5,12 +5,13 @@ declare(strict_types=1);
namespace StaticPHP\Config;
use StaticPHP\Exception\WrongUsageException;
use StaticPHP\Registry\Registry;
class ArtifactConfig
{
private static array $artifact_configs = [];
public static function loadFromDir(string $dir): void
public static function loadFromDir(string $dir, string $registry_name): void
{
if (!is_dir($dir)) {
throw new WrongUsageException("Directory {$dir} does not exist, cannot load artifact config.");
@@ -18,18 +19,18 @@ class ArtifactConfig
$files = glob("{$dir}/artifact.*.json");
if (is_array($files)) {
foreach ($files as $file) {
self::loadFromFile($file);
self::loadFromFile($file, $registry_name);
}
}
if (file_exists("{$dir}/artifact.json")) {
self::loadFromFile("{$dir}/artifact.json");
self::loadFromFile("{$dir}/artifact.json", $registry_name);
}
}
/**
* Load artifact configurations from a specified JSON file.
*/
public static function loadFromFile(string $file): void
public static function loadFromFile(string $file, string $registry_name): void
{
$content = file_get_contents($file);
if ($content === false) {
@@ -42,6 +43,7 @@ class ArtifactConfig
ConfigValidator::validateAndLintArtifacts(basename($file), $data);
foreach ($data as $artifact_name => $config) {
self::$artifact_configs[$artifact_name] = $config;
Registry::_bindArtifactConfigFile($artifact_name, $registry_name, $file);
}
}

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace StaticPHP\Config;
use StaticPHP\Exception\WrongUsageException;
use StaticPHP\Registry\Registry;
use StaticPHP\Runtime\SystemTarget;
class PackageConfig
@@ -15,7 +16,7 @@ class PackageConfig
* Load package configurations from a specified directory.
* It will look for files matching the pattern 'pkg.*.json' and 'pkg.json'.
*/
public static function loadFromDir(string $dir): void
public static function loadFromDir(string $dir, string $registry_name): void
{
if (!is_dir($dir)) {
throw new WrongUsageException("Directory {$dir} does not exist, cannot load pkg.json config.");
@@ -23,11 +24,11 @@ class PackageConfig
$files = glob("{$dir}/pkg.*.json");
if (is_array($files)) {
foreach ($files as $file) {
self::loadFromFile($file);
self::loadFromFile($file, $registry_name);
}
}
if (file_exists("{$dir}/pkg.json")) {
self::loadFromFile("{$dir}/pkg.json");
self::loadFromFile("{$dir}/pkg.json", $registry_name);
}
}
@@ -36,7 +37,7 @@ class PackageConfig
*
* @param string $file the path to the json package configuration file
*/
public static function loadFromFile(string $file): void
public static function loadFromFile(string $file, string $registry_name): void
{
$content = file_get_contents($file);
if ($content === false) {
@@ -49,6 +50,7 @@ class PackageConfig
ConfigValidator::validateAndLintPackages(basename($file), $data);
foreach ($data as $pkg_name => $config) {
self::$package_configs[$pkg_name] = $config;
Registry::_bindPackageConfigFile($pkg_name, $registry_name, $file);
}
}