mmhk/vendor-phar

将所有供应商文件打包成phar文件

1.2 2019-05-03 03:44 UTC

This package is not auto-updated.

Last update: 2024-09-28 07:24:26 UTC


README

composer 的所有依赖打包成 vendor.phar

安装

composer global require mmhk/vendor-phar

运行

在项目根目录下。

注意:phar 扩展的默认 ini 配置是只读的,使用 vendor-phar 需要禁用 phar.readonly。禁用方法可以修改 ini 文件为 phar.readonly=0,或者在PHP cli 执行时加上 -d phar.readonly=0

  • 方法1
php -d phar.readonly=0 vendor-phar -v [vendor目录] -o [vendor.phar输出目录]
  • 方法2
php -d phar.readonly=0 vendor-phar -c vendor-phar.json

vendor-phar.json 配置文件结构

{
  "baseDir": "", //vendor.phat 输出目录
  "vendorDir": "", // vendor 文件夹路径
  "exclude": [ //忽略路径模式匹配
    "phpunit/", //一般匹配 - 忽略大小写
    "regex:/phpunit\\/(.*)/i" // 正则匹配模式 - 注意字符转义
  ]
}

注意

由于 composer 自动生成的大量 Autoloader 都指定了项目根目录,所以 vendor-phat 会修改 autoload_classmap.php / autoload_files.php / autoload_namespaces.php / autoload_psr4.php / autoload_static.php,将项目根目录引用到 phar 包中的 .mount 目录,并通过 Phar::mount 将真实的项目根目录挂载到 phar 包中的 .mount

基于以上修改,vendor.phar 不能随意移动位置!移动后将会导致 composer 生成的 autoloader 失效。