如何在 Composer 中根据需要自动加载辅助函数?

How to autoload helper functions as needed in Composer?

假设每个函数有 1 个文件:

/src/Helpers/fooHelper.php

<?php

namespace MyHelper;

function fooHelper() {};

/src/Helpers/barHelper.php

<?php

namespace MyHelper;

function barHelper() {};

我看到有

"autoload": {
    "files": ["src/Helpers/functions.php"]
}

是否可以通过 Composer 按需而不是每个请求自动加载这些函数?

如果你想为每个帮助文件添加它,你应该按照以下方式进行:

"autoload": {
    "files" : [
        "path_to file_1.php",
        "path_to file_2.php",
        "and so on"
    ]
}

它应该在 运行 命令后工作:composer dump-autoloadcomposer dumpautoload

Is it possible to autoload these functions via Composer on demand instead of every request?

不,PHP 中的函数不支持自动加载。您需要手动加载它们或将带有函数声明的文件添加到 composer.json 中的 autoload.files 配置 - 它们将在每次请求时加载,即使您从不使用它。

目前唯一明智的解决方法是将助手包装在一些静态 class 中,可以毫无问题地自动加载。

class MyHelper {

    public static function fooHelper() {}

    public static function barHelper() {}
}

MyHelper::fooHelper();
MyHelper::barHelper();