mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-05 15:55:39 +08:00
Do some code quality check and fix #126
This commit is contained in:
@@ -49,10 +49,9 @@ class ConfigValidator
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $data
|
||||
* @throws ValidationException
|
||||
*/
|
||||
public static function validateLibs($data, array $source_data = []): void
|
||||
public static function validateLibs(mixed $data, array $source_data = []): void
|
||||
{
|
||||
is_array($data) || throw new ValidationException('lib.json is broken');
|
||||
foreach ($data as $name => $lib) {
|
||||
@@ -64,7 +63,10 @@ class ConfigValidator
|
||||
}
|
||||
}
|
||||
|
||||
public static function validateExts($data, array $source_data = []): void
|
||||
/**
|
||||
* @throws ValidationException
|
||||
*/
|
||||
public static function validateExts(mixed $data): void
|
||||
{
|
||||
is_array($data) || throw new ValidationException('ext.json is broken');
|
||||
}
|
||||
|
||||
@@ -15,18 +15,17 @@ use SPC\store\Config;
|
||||
class DependencyUtil
|
||||
{
|
||||
/**
|
||||
* 根据需要的 ext 列表获取依赖的 lib 列表,同时根据依赖关系排序
|
||||
* Obtain the dependent lib list according to the required ext list, and sort according to the dependency
|
||||
*
|
||||
* @param array $exts 要获取 libs 依赖的列表
|
||||
* @param array $additional_libs 额外要添加的库列表,用于激活 lib-suggests 触发的额外库特性
|
||||
* @return array 返回一个包含三个数组的数组,第一个是排序后的 ext 列表,第二个是排序后的 lib 列表,第三个是没有传入但是依赖了的 ext 列表
|
||||
* @param array $exts extensions list
|
||||
* @param array $additional_libs List of additional libraries to add to activate the extra library features triggered by lib-suggests
|
||||
* @return array Returns an array containing three arrays, [extensions, libraries, not included extensions]
|
||||
* @throws WrongUsageException
|
||||
* @throws RuntimeException
|
||||
* @throws FileSystemException
|
||||
*/
|
||||
public static function getExtLibsByDeps(array $exts, array $additional_libs = []): array
|
||||
{
|
||||
// 先对扩展列表进行一个依赖筛选
|
||||
$sorted = [];
|
||||
$visited = [];
|
||||
$not_included_exts = [];
|
||||
@@ -49,7 +48,7 @@ class DependencyUtil
|
||||
}
|
||||
}
|
||||
$libs = $additional_libs;
|
||||
// 遍历每一个 ext 的 libs
|
||||
|
||||
foreach ($final as $ext) {
|
||||
if (!in_array($ext, $exts)) {
|
||||
$not_included_exts[] = $ext;
|
||||
|
||||
@@ -19,17 +19,17 @@ class Patcher
|
||||
switch ($libc) {
|
||||
case 'musl_wrapper':
|
||||
// bad checks
|
||||
FileSystem::replaceFile(SOURCE_PATH . '/php-src/main/php_config.h', REPLACE_FILE_PREG, '/^#define HAVE_STRLCPY 1$/m', '');
|
||||
FileSystem::replaceFile(SOURCE_PATH . '/php-src/main/php_config.h', REPLACE_FILE_PREG, '/^#define HAVE_STRLCAT 1$/m', '');
|
||||
FileSystem::replaceFileRegex(SOURCE_PATH . '/php-src/main/php_config.h', '/^#define HAVE_STRLCPY 1$/m', '');
|
||||
FileSystem::replaceFileRegex(SOURCE_PATH . '/php-src/main/php_config.h', '/^#define HAVE_STRLCAT 1$/m', '');
|
||||
// no break
|
||||
case 'musl':
|
||||
FileSystem::replaceFile(SOURCE_PATH . '/php-src/main/php_config.h', REPLACE_FILE_PREG, '/^#define HAVE_FUNC_ATTRIBUTE_IFUNC 1$/m', '');
|
||||
FileSystem::replaceFileRegex(SOURCE_PATH . '/php-src/main/php_config.h', '/^#define HAVE_FUNC_ATTRIBUTE_IFUNC 1$/m', '');
|
||||
break;
|
||||
case 'glibc':
|
||||
// avoid lcrypt dependency
|
||||
FileSystem::replaceFile(SOURCE_PATH . '/php-src/main/php_config.h', REPLACE_FILE_PREG, '/^#define HAVE_CRYPT 1$/m', '');
|
||||
FileSystem::replaceFile(SOURCE_PATH . '/php-src/main/php_config.h', REPLACE_FILE_PREG, '/^#define HAVE_CRYPT_R 1$/m', '');
|
||||
FileSystem::replaceFile(SOURCE_PATH . '/php-src/main/php_config.h', REPLACE_FILE_PREG, '/^#define HAVE_CRYPT_H 1$/m', '');
|
||||
FileSystem::replaceFileRegex(SOURCE_PATH . '/php-src/main/php_config.h', '/^#define HAVE_CRYPT 1$/m', '');
|
||||
FileSystem::replaceFileRegex(SOURCE_PATH . '/php-src/main/php_config.h', '/^#define HAVE_CRYPT_R 1$/m', '');
|
||||
FileSystem::replaceFileRegex(SOURCE_PATH . '/php-src/main/php_config.h', '/^#define HAVE_CRYPT_H 1$/m', '');
|
||||
break;
|
||||
default:
|
||||
throw new RuntimeException('not implemented');
|
||||
|
||||
@@ -63,6 +63,9 @@ class UnixShell
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function execWithEnv(string $cmd): UnixShell
|
||||
{
|
||||
return $this->exec($this->getEnvString() . ' ' . $cmd);
|
||||
|
||||
Reference in New Issue
Block a user