如何在 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-autoload
或 composer 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();
假设每个函数有 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-autoload
或 composer 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();