mmhk / vendor-phar
将所有供应商文件打包成phar文件
1.2
2019-05-03 03:44 UTC
Requires
- ulrichsg/getopt-php: ^3.2
Requires (Dev)
- phpunit/phpunit: 6.*
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
失效。