death_satan/composer 作用于在有composer管理工具的项目中。封装了上层由 composer V2 提供的 ClassLoader 和 InstallVersion
轻量级的封装,无任何第三方包集成。便捷式的使用composer V2 API
php >= 7.4composer >= 2.0composer require death_satan/composer:^2.0 -vvv
SaTan\Support 便捷式方法
\\ 可以引入 use Satan\Support\{method} 到当前空间内
$classLoader = \SaTan\Support\get_class_loader();
/**
* output
* Composer\Autoload\ClassLoader
*/
echo get_class($classLoader)."\n";
$composerHelpers = \SaTan\Support\get_composer_helpers();
/**
* output
* SaTan\ComposerHelpers
*/
echo get_class($composerHelpers)."\n";
/**
* 判断当前某个包是否引入
* output
* Package [death_satan/array-helpers] Exists:1
*/
echo "Package [death_satan/array-helpers] Exists:".\SaTan\Support\has_package('death_satan/array-helpers');
/**
* 获取指定包的版本
* output
* Package [death_satan/array-helpers] Exists:1Package [death_satan/array-helpers] Version:1.0.2.0
*/
echo "Package [death_satan/array-helpers] Version:".\SaTan\Support\get_package_version('death_satan/array-helpers');
Satan\ComposerHelpers 类方法getInstallVersionHelpers return InstallVersionHelpers 获取VersionHelpers实例setClassLoader 设置当前的ClassLoader实例packageReference return null | string 检测包是否安装 如果包被替换或提供但没有真正安装,则将返回 null 作为参考rootPackages return array 获取当前包信息packageVersion return null | string 获取包的版本信息getPackagePath(string $packageName) return string 获取指定包的目录hasPackage(string $packageName): bool 检测某个包是否存在packages(): array 返回当前所有已经安装的包列表getAllRawData(bool $is_merge = true): array 返回当前加载的所有 installed.php 的原始数据getClassMap(): array 获取类名映射列表detectNamespace(string $namespace): string 检测命名空间是否正确,如果不正确自动补齐setPsr0($namespace, $directory = false) 设置一个psr0目录|如果之前有设置则会覆盖setPsr4( $namespace, $directory = false) 设置一个psr4目录|如果之前有设置则会覆盖import(string $class): bool 加载给定的类或接口addPsr4($namespace, $directory = null, bool $prepend = false): void 动态添加psr-4映射addPsr0($namespace, $directory = null, bool $prepend = false): void 动态添加psr-0映射findClassFile(string $class): false|string 查找类的文件Satan\InstallVersionHelpers 类接口getVendorPath(): string 获取vendor目录绝对路径getInstallJson(string $installed_json_path = null): array 获取installed.json的内容packagesRawData():array 获取原始所有包内容isInstallPackage(string $packageName): bool 判断某个包是否安装getPackage(string $packageName):array 获取指定包的详细信息getPackageVersion(string $packageName,bool $normalized = false):?string 获取指定包的版本getPackageType(string $packageName):?string 获取某个包的类型getPackagePath(string $packageName):?string 获取某个包的安装绝对目录