找不到Laravel自定义作曲家libaray类

时间:2019-07-10 16:16:19

标签: php laravel composer-php package-managers

我已经使用composer创建了自定义php库。该库的composer.json如下所示:

{
    "name": "singboard/platform-fetcher",
    "description": "Fetch reviews from third part platforms.",
    "license": "proprietary",
    "version": "0.1.0-dev",
    "authors": [
       [...]
    ],
    "type": "library",
    "require": {
        [...]
    },
    "require-dev": {
        [...]
    },
    "autoload": {
        "psr-4": {
            "Singboard\\PlatformFetcher\\": "src/"
        }
    }
}

作曲家库的文件夹结构是这样的:

├── composer.json
├── composer.lock
└── src
    └── FacebookFetcher.php

现在,我已将该库包含到我的laravel项目中。在我的laravel项目的composer.json中,我添加了以下内容:

 "repositories": [
        {
            "type": "package",
            "package": {
                "name": "singboard/platform-fetcher",
                "version": "0.1.0-dev",
                "type": "library",
                "source": {
                    "url": "xxx-xxx",
                    "type": "git",
                    "reference": "master"
                }
            }
        }
    ],

"require": {
        "singboard/platform-fetcher": "0.1.0-dev"
    },

问题在于,当我尝试调用FacebookFetcher.php类时,会收到消息Class 'Singboard\PlatformFetcher\FacebookFetcher' not found。问题是什么?

1 个答案:

答案 0 :(得分:1)

composer documentation中所述,这不是包括自定义远程库的正确方法。您应该使用以下方法实现您的库:

{
    "require": {
        "vendor/my-private-repo": "dev-master"
    },
    "repositories": [
        {
            "type": "vcs",
            "url":  "git@bitbucket.org:vendor/my-private-repo.git"
        }
    ]
}