我正在尝试创建一个包含src / functions.php的作曲家包,其中包含一些常规函数。我在composer.json中有以下内容使其自动加载:
"autoload": {
"files": ["src/functions.php"]
}
当我将此包导入项目时,它将尝试在当前项目(本地)中加载src / functions.php而不是导入的包。有没有办法确保导入时加载正确的文件(./vendor/bla/src/functions.php)?
答案 0 :(得分:2)
自动加载不适用于加载所有内容。如果src/functions.php
包含类,请确保它已正确命名,并且我认为没有理由说自动加载器会选择本地类而不是包。如果你对包和项目中的代码使用相同的命名空间,那么基本上你应该停止这样做。
如果src/functions.php
只是一堆函数,那么我强烈建议重构代码并将它们包装在正确的命名空间类中。您可以使用static methods函数,因此从使用角度来看,基本上不会有太多变化。
修改强>
完成重构后,请将composer.json
从您显示的内容更改为:
"autoload": {
"classmap": ["src/"]
}