我试图创建一个作曲家包,也包含src/functions.php一些一般的功能。我有以下composer.json使其自动加载:
"autoload": {
"files": ["src/functions.php"]
}
当我将这个包导入到项目中时,它将尝试加载src/函数。当前项目(本地)中的php,而不是导入的包。是否有办法确保导入时加载正确的文件(./vendor/bla/src/functions.php)?
自动加载并非用于加载所有内容。如果src/函数。php
包含类,只需确保它的名称空间正确,我看不出autoloader会选择您的本地类而不是包的类的原因。如果您对包和项目中的代码使用相同的名称空间,那么基本上您应该停止这样做。
如果src/函数。php
只是一堆函数,然后我强烈建议重构代码,并将它们封装在适当的命名空间类中。您可以将函数设置为静态方法,这样从使用角度看基本上不会有太多变化。
编辑
完成重构后,请更改编写器。json
从您所展示的内容到:
"autoload": {
"classmap": ["src/"]
}