0.0.0/composer-include-files

包含文件的优先级高于自动加载文件。适用于覆盖 Laravel 辅助函数。

1.6.1 2022-06-18 07:04 UTC

This package is auto-updated.

Last update: 2024-09-13 20:39:57 UTC


README

当使用 Composer 自动加载器时,如果需要在依赖项自动加载的文件之前包含项目文件,你将无计可施。现在不再是了!

安装

composer require 0.0.0/composer-include-files

使用

只需使用 "include_files" 添加需要包含的文件,它们将在依赖项包含的任何文件之前被包含。

// composer.json (project)
{
    "extra": {
        "include_files": [
            "/path/to/file/you/want/to/include",
            "/path/to/another/file/you/want/to/include"
        ]
    },
}

Composer v2.2 引入了一个新的安全功能:https://getcomposer.org.cn/doc/06-config.md#allow-plugins

从 Composer 2.2.0 版本开始,allow-plugins 选项添加了一层安全措施,允许您限制在 Composer 运行期间能够执行代码的 Composer 插件。

因此,您还需要将此库添加到您的 composer.json 文件中允许的插件列表,如下所示

{
    "config": {
        "allow-plugins": {
            "0.0.0/composer-include-files": true
        }
    }
}

特定用例

当需要覆盖 Laravel 提供的辅助函数时,这是必须的。

过去,仅通过修改 bootstrap/autoload.php 来包含辅助函数就足够了。然而,PHPUnit 的新版本在执行 PHPUnit 启动文件之前包含了 Composer 自动加载器。因此,这种方法不再可行,因为它将在包含启动文件时触发致命错误。

但现在我们可以使用 Composer - Include Files 插件 来按照必要的顺序包含文件。

// composer.json (project)
{
    "require": {
        "laravel/framework": "^5.2",
        "funkjedi/composer-include-files": "^1.0",
    },
    "extra": {
        "include_files": [
            "app/helpers.php"
        ]
    },
}