Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为没有';是否在composer中指定自动加载?_Php_Composer Php - Fatal编程技术网

Php 如何为没有';是否在composer中指定自动加载?

Php 如何为没有';是否在composer中指定自动加载?,php,composer-php,Php,Composer Php,如果通过composer下载的库未指定自动加载,是否有方法在composer.json文件中指定,以便能够修改库的自动加载设置,而无需分叉库 我想到的一种方法是只修补库的composer.json文件,但不支持编辑composer.json文件。您可以在composer.json中包含供应商库的自动加载信息,而无需修补库。例如: "autoload": { "psr-4": { "SomeNamespace\\SomeNa

如果通过composer下载的库未指定自动加载,是否有方法在composer.json文件中指定,以便能够修改库的自动加载设置,而无需分叉库


我想到的一种方法是只修补库的composer.json文件,但不支持编辑composer.json文件。

您可以在
composer.json
中包含供应商库的自动加载信息,而无需修补库。例如:

"autoload": {
    "psr-4": {
        "SomeNamespace\\SomeName\\": "vendor/some-namespace/some-name/src/"
    }
},
这将起作用,但是,您需要确保使用与所讨论库的文件结构相匹配的正确自动加载标准(PSR-0 vs PSR-4 vs classmap vs files)


更好的解决方案是向库作者创建一个pull请求,将自动加载信息添加到库本身。

如果是我,根据我正在处理的项目类型,我只需使用
spl\u autoload\u register
,使用数组或类来查找文件系统(取决于库的大小、复杂性、模式和更改的可能性)在我的标准<代码> Proto/AutoLoad。PHP中包括。如果这个项目是旧的并且没有维护,我也会考虑分叉只是为了控制事情。但是我发现虽然与作曲家的管道混淆是完全可能的,但通常不值得付出努力,除非你需要把它扩展成一堆。不相关的项目。