composer 扩展库。助手库文档

composer helpers packagist


简介

death_satan/composer 作用于在有composer管理工具的项目中。封装了上层由 composer V2 提供的 ClassLoader 和 InstallVersion

轻量级的封装,无任何第三方包集成。便捷式的使用composer V2 API


安装要求


  • php >= 7.4
  • composer >= 2.0

安装


shell 复制代码
composer require death_satan/composer:^2.0 -vvv

类库API

SaTan\Support 便捷式方法


php 复制代码
<?php
\\ 可以引入 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 获取某个包的安装绝对目录

相关推荐
xbzb14 小时前
从零容器化部署 ECShop:Harbor 私有仓库 + 自定义 PHP 镜像 + LNMP 三容器
容器·php·harbor·镜像·仓库·ecshop
爱和冰阔落2 天前
【Linux网络】JsonCpp 怎么实现序列化?从 Request/Response 到网络计算器消息设计
linux·运维·网络·php
eggwyw2 天前
PHP8.5怎么用ffmpeg提取视频里的字幕轨道
开发语言·php
我叫黑大帅2 天前
PHP 常驻 Worker 中 MySQL 连接中断问题报告
后端·面试·php
国科安芯2 天前
人在回路中的总线:商业空间站环境控制与生命保障系统CANFD网络的可靠性与功能安全
网络·嵌入式硬件·安全·架构·php·抗辐射
码途行者3 天前
网站的SQL 注入:从攻击原理到防御措施
开发语言·sql·php
老秦包你会3 天前
计算机网络第二课 ----Socket(套接字)编程预备
开发语言·计算机网络·php
迪康coolmu3 天前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
普通人63 天前
PHP文件读写完全指南
开发语言·php·1024程序员节
vipxieliang4 天前
ThinkORM 3.0 入门:强类型模型定义与查询构造器
后端·php·thinkphp