首页 > 解决方案 > Composer 未能从本地存储库中引入正确的引用

问题描述

我在符号链接引用的存储库中添加了一个 autoload.psr-4 引用。即使我在做composer dump-autoload. 为了更好地衡量,我发现了对现在位于单独目录中的框架库的过时引用。即使在rm -rf vendorand之后composer install,陈旧的引用也在vendor/composer/autoload_psr4.php其中,而新的引用不在。

vendor/composer/autoload_psr4.php 在核心存储库中有新的引用而不是过时的引用。

core/composer.json定义为Us\OurLibrary\NewReference

  "autoload": {
    "psr-4": {
        "Us\\OurLibrary\\NewReference\\": "NewReference/",

core/composer/autoload_psr4.php对 NewReference 的引用。

return array(
    'Us\\OurLibrary\\NewReference\\' => array($baseDir . '/NewReference'),

框架/composer.json

  "repositories": [{
      "type": "path",
      "url": "../OurLibrary/core",
      "options": { "symlink": true } }],
    "autoload": {
        "psr-4": {
            "Us\\OurLibrary\\Framework\\": "src/"
        }
    },

项目/作曲家.json

  "repositories": [{
      "type": "path",
      "url": "../OurLibrary/core",
      "options": { "symlink": true }
    }, {
      "type": "path",
      "url": "../OurLibrary/framework",
      "options": { "symlink": true }
    }],

project/composer/autoload_psr4.php没有 NewReference 的条目,并且 Framework 的条目错误地指向了从core.

return array(
    'Us\\OurLibrary\\Framework\\' => array($vendorDir . '/us/core/Framework', $vendorDir . '/us/framework/src'),
    // 

标签: composer-php

解决方案


删除composer.lockcomposer install再次运行。


推荐阅读