【问题标题】:Laravel: Issues with ServiceProvider | Error: Class '...ServiceProvider' not found in bootstrap/compiled.php on line #Laravel:ServiceProvider 的问题错误:在 bootstrap/compiled.php 行中找不到类“...ServiceProvider”#
【发布时间】:2014-09-27 14:30:29
【问题描述】:

我已经在同一个应用程序上工作了一段时间,我正在将它转移到 Laravel。这不仅是我第一次使用 Laravel,也是我第一次使用 PHP 框架。到目前为止很棒。

我在测试中遇到了问题,我收到一个错误:Error Output: PHP Fatal error: Class 'my-app/Repositories/RepositoryServiceProvider' not found in /var/www/laravel/bootstrap/compiled.php on line 4259

我想知道是什么导致了这个错误以及如何修复它。它给了我有问题的直线。但我不知道如何解决这个问题。

我尝试了多种解决方案,包括

composer install
composer update
composer dump-autoload

还有其他人。

我还尝试将compiled.php 文件一起删除,但随后它在不同的文件上触发了相同的错误。是什么导致了这个错误,我该如何调试它?

这是我的 RepositoryServiceProvider.php 有问题的文件:

<?php namespace my-app\Repositories;

use Invite;
use Illuminate\Support\ServiceProvider;
use my-app\Repositories\Invite\EloquentInviteRepository;

class RepositoryServiceProvider extends ServiceProvider {

 /**
   * Register the Invite Repository
   *
   * @return void
   */
  public function registerInviteRepository()
  {
    $this->app->bind('my-app\Repositories\Invite\InviteRepository', function($app)
  {
      return new EloquentInviteRepository( new Invite );
  });
}

composer.json

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
    "laravel/framework": "4.2.*",
    "way/generators": "dev-master"
},
"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]
},
"scripts": {
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-update-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ]
},
"config": {
    "preferred-install": "dist"
},
"minimum-stability": "stable"
}

这是 compiled.php 中给出问题的特定行:

{
    return new $provider($app);
}

你们过去一直是一个巨大的资源。

由于这个可能很简单的问题,我经历了将近 24 小时的编码停机时间,并且我已经恢复和重建了两次,只是回到了这个错误。

提前感谢您的帮助!

【问题讨论】:

  • 你也可以粘贴你的composer.json 文件吗?
  • @lowerends 已添加!感谢您的回复!我也尝试过使用autoload 下的目录'app/my-app'。除非我做错了。
  • 尝试在 composer.json 的 classmap 中添加文件路径
  • @Kao 感谢您的建议。即使在那次更新之后仍然是同样的错误。

标签: php json laravel laravel-4 eloquent


【解决方案1】:

您是否尝试在 /app/cofig/app.php 的 'providers' 数组下注册您的提供程序,然后执行 composer dump-autoload -o

【讨论】:

  • 这始终是破坏应用程序的原因。我在 app.php 中注册服务提供程序的第二个错误开始生成。感谢您的回复!
  • 原来是这样的。我正在注册目录路径,没有注意到在执行dump autoload -o 之后我必须只注册文件名。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 2017-11-16
  • 2019-05-22
  • 2017-11-18
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
相关资源
最近更新 更多