我正在尝试创建一个包含SRC/function.php的Composer软件包,并带有某些常规函数。我在composer.json中有以下内容,以使其自动加载:
"autoload": {
"files": ["src/functions.php"]
}
当我将此包导入项目中时,它将尝试将SRC/functions.php加载到当前项目(本地(中,以代替导入的软件包。有没有办法确保导入时加载正确的文件(./vendor/bla/src/functions.php(?
自动加载并不是为了加载所有内容。如果src/functions.php
包含类,则只需确保其命名安排正确,我认为自动加载器会选择您的本地课程而不是软件包的理由。如果您在项目中使用相同的命名空间和项目中的代码,那么您基本上应该停止这样做。
如果src/functions.php
只是一堆功能,那么我坚定地建议对代码进行重构并将其包裹在适当的名称的类中。您可以使您的函数静态方法,因此从用法角度来看基本上不会改变。
编辑
完成重构后,将您的composer.json
从所讨论的内容更改为:
"autoload": {
"classmap": ["src/"]
}