mcaskill / composer-exclude-files
从 autoload_files.php 中排除文件
v4.0.0
2024-05-19 18:19 UTC
Requires
- php: ^7.2.5 || ^8.0
- composer-plugin-api: ^2.3
Requires (Dev)
- composer/composer: ^2.3
- phpstan/phpstan: ^1.7
- symfony/phpunit-bridge: ^6.0
README
这是一个 Composer 插件,用于通过 files
自动加载机制排除包所需的文件。
这对于忽略用于启动包或提供 PHP 函数等的文件很有用。
安装
此插件可以本地或全局安装。
composer require mcaskill/composer-exclude-files
从 Composer 2.2.0 开始,为了额外的安全,您应该声明 allow-plugins
配置以允许 Composer 运行插件。
composer config allow-plugins.mcaskill/composer-exclude-files true
使用方法
您只能从根
composer.json
中忽略文件。依赖项的composer.json
中的文件排除被忽略。
从根 composer.json
开始,将 exclude-from-files
属性添加到 extra
部分。路径列表必须相对于此 Composer 清单的 vendor 目录: <vendor-name>/<project-name>/<file-path>
。
此插件支持 glob()
函数 中使用的特殊字符子集,以匹配排除路径的模式
*
— 匹配零个或多个字符。?
— 匹配恰好一个字符(任何字符)。
此插件在自动加载器被导出之前被调用,例如使用 install
、update
和 dump-autoload
命令。
示例 1:从 illuminate/support 中排除一个文件
{ "require": { "illuminate/support": "^9.6" }, "extra": { "exclude-from-files": [ "illuminate/support/helpers.php" ] }, "config": { "allow-plugins": { "mcaskill/composer-exclude-files": true } } }
示例 2:从 laravel/framework 中排除多个文件
{ "require": { "laravel/framework": "^9.6" }, "extra": { "exclude-from-files": [ "laravel/framework/src/*/helpers.php" ] }, "config": {…} }
示例 3:排除所有文件
{ "require": {…}, "extra": { "exclude-from-files": [ "*" ] }, "config": {…} }
此插件将遍历每个包,从配置的路径中删除所有文件。这些供应商文件本身不会被删除。根包将被忽略。
结果是,指定的文件永远不会包含在 vendor/composer/autoload_files.php
中。
许可证
此软件受 MIT 许可证许可。