【问题标题】:Laravel - Composer unable to find the service provider classLaravel - Composer 无法找到服务提供者类
【发布时间】:2016-02-14 17:18:46
【问题描述】:

我一直在创建一个Laravel package(一个中间件)。我的文件夹结构如下所示:

laravel-censor/
    config/
        sensor.php
    src/
        CensorMiddleware.php
        LaravelCensorServiceProvider.php
    composer.json

composer.json的内容是:

{
    "name": "kamranahmedse/laravel-censor",
    ...
    ...
    "require": {
        "php" : ">=5.4.0",
        "laravel/framework": "^5.1.11"
    },
    "autoload": {
        "psr-4": {
            "KamranAhmed\\LaravelCensor\\": "src/"
        }
    },
    "minimum-stability": "stable"
}

我已将其发布到packagist,可以通过github 找到。现在安装后

composer require kamranahmedse/laravel-censor

当我将包的服务提供者添加到config/app.php 中的providers 数组时

KamranAhmed\LaravelCensor\LaravelCensorServiceProvider::class

然后运行

php artisan vendor:publish

问题

找不到服务提供者类,抛出类未找到异常。任何人都可以指出我在这里做错了什么吗?为什么作曲家无法自动加载此类?

我已经研究了一个多小时,无法弄清楚为什么作曲家没有自动加载这个类的问题。另外,我检查了命名空间和类名都是正确的:

# LaravelCensorServiceProvider.php
namespace KamranAhmed\LaravelCensor;
...
class LaravelCensorServiceProvider extends ServiceProvider
{ ... }

解决方案

原来作曲家有一些缓存。在清除作曲家缓存 composer clear 后运行 php artisan clear-compiled 就可以了。

【问题讨论】:

    标签: php laravel composer-php laravel-5.1


    【解决方案1】:

    我可以安装你的包并执行php artisan vendor:publish 没有任何问题,你试过composer dumpautoload 吗?和php artisan clear-compiled?

    【讨论】:

      猜你喜欢
      • 2018-11-10
      • 1970-01-01
      • 2023-04-01
      • 2015-10-31
      • 2016-01-02
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      相关资源
      最近更新 更多