【问题标题】:Laravel package auto-discovery not finding ProviderLaravel 包自动发现未找到提供程序
【发布时间】:2021-03-18 00:11:22
【问题描述】:

我正在为 Laravel 创建我的第一个包,但我无法通过 composer 正确安装它。它通过包的composer.json 使用 Laravel (v5.5+) 自动发现,但是当它运行artisan package:discover 命令时,它找不到我的自定义 ServiceProvider。这是我的composer.json

{
    "name": "mpemburn/api-consumer",
    "description": "Configurable consumer for RESTful API's",
    "type": "library",
    "keywords": ["api","restful","laravel"],
    "license": "MIT",
    "authors": [
        {
            "name": "Mark Pemburn",
            "email": "mark@pemburn.com"
        }
    ],
    "autoload": {
        "psr-4": {
            "Mpemburn\\ApiConsumer\\": "src/"
        }
    },
    "require": {
        "php": ">=7.4"
    },
    "extra": {
        "branch-alias": {
            "dev-master": "1.0-dev"
        },
        "laravel": {
            "providers": [
                "Mpemburn\\ApiConsumer\\ApiConsumerProvider"
            ]
        }
    },
    "minimum-stability": "dev"
}

...这是ApiConsumerProvider:

<?php

namespace Mpemburn\ApiConsumer;

use Illuminate\Support\ServiceProvider;
use Mpemburn\ApiConsumer\Handlers\ResponseHandler;
use Mpemburn\ApiConsumer\Interfaces\ResponseHandlerInterface;

class ApiConsumerProvider extends ServiceProvider
{
    public function register(): void
    {
        // Bind ResponseHandlerInterface class(es)
        app()->bind(ResponseHandlerInterface::class, ResponseHandler::class);
    }

    public function boot(): void
    {
        $this->publishes([
            __DIR__.'/../config/api-consumer.php' => config_path('api-consumer.php'),
        ], 'config');
    }
}

我从周日开始仔细检查了这六种方法,但我无法弄清楚我做错了什么。

你可以在这里找到包:https://github.com/mpemburn/api-consumer

提前感谢您提供的任何帮助!

编辑添加:composer 版本 2.0.6,Laravel 版本 8.16.0

【问题讨论】:

    标签: php laravel package composer-php


    【解决方案1】:

    查看了 github 链接 - 问题是您的服务提供者类文件不在 src 目录中

    ApiConsumerProvider.php 移动到src 目录中,然后它应该可以工作了。

    您的 psr4 自动加载键指向 src 目录的 Mpemburn\ApiConsumer 命名空间。

    【讨论】:

    • Huzzah @Donkarnash——就是这样!非常感谢!
    猜你喜欢
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    相关资源
    最近更新 更多