Composer自动加载psr-4而不是将名称空间添加到autoload_psr4.php

 yfx132435 发布于 2022-12-31 10:37

我在一个项目中使用github中的自定义存储库,其中包含我的一组工具.

该项目正确导入/ vendor目录中的包,但我不能使用任何类,因为它不自动加载包的内容.

我的包composer.json文件如下所示:

{
"name": "mynamespace/toolbox",
"description": "Asdfoobar.",
"keywords": ["mynamespace", "toolbox"],
"license": "MIT",
"require": {
    "php": ">=5.4"          
},
"require-dev": {
    "codeception/codeception": "2.0.2",
    "codeception/specify": "0.3.6",
    "codeception/verify": "0.2.7",
    "mockery/mockery": "0.9.1"
},
"autoload": {
    "psr-4": {
        "Mynamespace\\": "src/Mynamespace",
        "Mocks\\": "tests/Mocks"
    }
},
"scripts": {
    "post-install-cmd": [

    ],
    "post-update-cmd": [
        "php vendor/bin/codecept run"
    ]
},
"config": {
    "preferred-install": "dist"
},
"minimum-stability": "stable"

}

在项目内部,composer.json文件如下所示:

    "require": {
       [...stuff...]
       "Mygitrepo/toolbox": "dev-master" 
    },
    "repositories": [        
    {
        "type": "package",
        "package": {
            "name": "Mygitrepo/toolbox",
            "version": "master",
            "source": {
                "url": "https://github.com/Mygitrepo/toolbox.git",
                "type": "git",
                "reference": "master"
            }
        }
    }
]

完成作曲家更新后的最终autoload_psr4.php,composer dump如下所示:没有"Mynamespace"的痕迹

return array(
  'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
  'Ivory\\LuceneSearchBundle\\' => array($vendorDir . '/egeloen/lucene-search-bundle'),
  'Facebook\\' => array($vendorDir . '/facebook/php-sdk-v4/src/Facebook'),
);

有帮助吗?

1 个回答
  • 这个答案也适用于此.

    因为您在"存储库"中提供了"type:package"条目,所以您将禁用composer.json该包中的文件.

    并且包定义中没有定义自动加载,因此包根本不会自动加载.

    解决方案:不要将"type:package"条目用于您拥有的存储库以及其中包含composer.json文件的存储库.

    2022-12-31 10:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有