Laravel 5.2 服务提供商未启动

Laravel 5.2 Service provider not booting

我与服务提供商有一个奇怪的问题。我在 boot() 函数中有一个带有 dd("I'm loaded"); 的 ComposerServiceProvider。什么都没发生。

我在config/app.php中也有App\Providers\ComposerServiceProvider::class。我运行composer dump-autoload好几次了。有人可以帮忙吗?

<?php namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider {

    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        dd("I'm loaded");
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

}

编辑:这是我的 bootstrap/cache/services.php,它也没有出现,即使在 php artisan clear-compiled

之后
<?php return array (
  'providers' =>
  array (
    0 => 'Illuminate\Auth\AuthServiceProvider',
    1 => 'Illuminate\Broadcasting\BroadcastServiceProvider',
    2 => 'Illuminate\Bus\BusServiceProvider',
    3 => 'Illuminate\Cache\CacheServiceProvider',
    4 => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    5 => 'Illuminate\Cookie\CookieServiceProvider',
    6 => 'Illuminate\Database\DatabaseServiceProvider',
    7 => 'Illuminate\Encryption\EncryptionServiceProvider',
    8 => 'Illuminate\Filesystem\FilesystemServiceProvider',
    9 => 'Illuminate\Foundation\Providers\FoundationServiceProvider',
    10 => 'Illuminate\Hashing\HashServiceProvider',
    11 => 'Illuminate\Mail\MailServiceProvider',
    12 => 'Illuminate\Pagination\PaginationServiceProvider',
    13 => 'Illuminate\Pipeline\PipelineServiceProvider',
    14 => 'Illuminate\Queue\QueueServiceProvider',
    15 => 'Illuminate\Redis\RedisServiceProvider',
    16 => 'Illuminate\Auth\Passwords\PasswordResetServiceProvider',
    17 => 'Illuminate\Session\SessionServiceProvider',
    18 => 'Illuminate\Translation\TranslationServiceProvider',
    19 => 'Illuminate\Validation\ValidationServiceProvider',
    20 => 'Illuminate\View\ViewServiceProvider',
    21 => 'App\Providers\AppServiceProvider',
    22 => 'App\Providers\AuthServiceProvider',
    23 => 'App\Providers\EventServiceProvider',
    24 => 'App\Providers\HelperServiceProvider',
    25 => 'App\Providers\RouteServiceProvider',
    26 => 'C4studio\EmailCssInliner\EmailCssInlinerServiceProvider',
    27 => 'Collective\Html\HtmlServiceProvider',
    28 => 'Radic\BladeExtensions\BladeExtensionsServiceProvider',
  ),
  'eager' =>
  array (
    0 => 'Illuminate\Auth\AuthServiceProvider',
    1 => 'Illuminate\Cookie\CookieServiceProvider',
    2 => 'Illuminate\Database\DatabaseServiceProvider',
    3 => 'Illuminate\Encryption\EncryptionServiceProvider',
    4 => 'Illuminate\Filesystem\FilesystemServiceProvider',
    5 => 'Illuminate\Foundation\Providers\FoundationServiceProvider',
    6 => 'Illuminate\Pagination\PaginationServiceProvider',
    7 => 'Illuminate\Session\SessionServiceProvider',
    8 => 'Illuminate\View\ViewServiceProvider',
    9 => 'App\Providers\AppServiceProvider',
    10 => 'App\Providers\AuthServiceProvider',
    11 => 'App\Providers\EventServiceProvider',
    12 => 'App\Providers\HelperServiceProvider',
    13 => 'App\Providers\RouteServiceProvider',
    14 => 'C4studio\EmailCssInliner\EmailCssInlinerServiceProvider',
    15 => 'Radic\BladeExtensions\BladeExtensionsServiceProvider',
  ),
  'deferred' =>
  array (
    'Illuminate\Broadcasting\BroadcastManager' => 'Illuminate\Broadcasting\BroadcastServiceProvider',
    'Illuminate\Contracts\Broadcasting\Factory' => 'Illuminate\Broadcasting\BroadcastServiceProvider',
    'Illuminate\Contracts\Broadcasting\Broadcaster' => 'Illuminate\Broadcasting\BroadcastServiceProvider',
    'Illuminate\Bus\Dispatcher' => 'Illuminate\Bus\BusServiceProvider',
    'Illuminate\Contracts\Bus\Dispatcher' => 'Illuminate\Bus\BusServiceProvider',
    'Illuminate\Contracts\Bus\QueueingDispatcher' => 'Illuminate\Bus\BusServiceProvider',
    'cache' => 'Illuminate\Cache\CacheServiceProvider',
    'cache.store' => 'Illuminate\Cache\CacheServiceProvider',
    'memcached.connector' => 'Illuminate\Cache\CacheServiceProvider',
    'command.cache.clear' => 'Illuminate\Cache\CacheServiceProvider',
    'command.clear-compiled' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.auth.resets.clear' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.config.cache' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.config.clear' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.down' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.environment' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.key.generate' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.optimize' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.route.cache' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.route.clear' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.route.list' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.tinker' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.up' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.view.clear' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.app.name' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.auth.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.cache.table' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.console.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.controller.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.event.generate' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.event.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.job.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.listener.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.middleware.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.model.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.policy.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.provider.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.queue.failed-table' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.queue.table' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.request.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.seeder.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.session.table' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.serve' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.test.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.vendor.publish' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'Illuminate\Console\Scheduling\ScheduleRunCommand' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'migrator' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'migration.repository' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.migrate' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.migrate.rollback' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.migrate.reset' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.migrate.refresh' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.migrate.install' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.migrate.status' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'migration.creator' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.migrate.make' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'seeder' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.seed' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'composer' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.queue.failed' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.queue.retry' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.queue.forget' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'command.queue.flush' => 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
    'hash' => 'Illuminate\Hashing\HashServiceProvider',
    'mailer' => 'Illuminate\Mail\MailServiceProvider',
    'swift.mailer' => 'Illuminate\Mail\MailServiceProvider',
    'swift.transport' => 'Illuminate\Mail\MailServiceProvider',
    'Illuminate\Contracts\Pipeline\Hub' => 'Illuminate\Pipeline\PipelineServiceProvider',
    'queue' => 'Illuminate\Queue\QueueServiceProvider',
    'queue.worker' => 'Illuminate\Queue\QueueServiceProvider',
    'queue.listener' => 'Illuminate\Queue\QueueServiceProvider',
    'queue.failer' => 'Illuminate\Queue\QueueServiceProvider',
    'command.queue.work' => 'Illuminate\Queue\QueueServiceProvider',
    'command.queue.listen' => 'Illuminate\Queue\QueueServiceProvider',
    'command.queue.restart' => 'Illuminate\Queue\QueueServiceProvider',
    'queue.connection' => 'Illuminate\Queue\QueueServiceProvider',
    'redis' => 'Illuminate\Redis\RedisServiceProvider',
    'auth.password' => 'Illuminate\Auth\Passwords\PasswordResetServiceProvider',
    'auth.password.broker' => 'Illuminate\Auth\Passwords\PasswordResetServiceProvider',
    'translator' => 'Illuminate\Translation\TranslationServiceProvider',
    'translation.loader' => 'Illuminate\Translation\TranslationServiceProvider',
    'validator' => 'Illuminate\Validation\ValidationServiceProvider',
    'validation.presence' => 'Illuminate\Validation\ValidationServiceProvider',
    'html' => 'Collective\Html\HtmlServiceProvider',
    'form' => 'Collective\Html\HtmlServiceProvider',
    'Collective\Html\HtmlBuilder' => 'Collective\Html\HtmlServiceProvider',
    'Collective\Html\FormBuilder' => 'Collective\Html\HtmlServiceProvider',
  ),
  'when' =>
  array (
    'Illuminate\Broadcasting\BroadcastServiceProvider' =>
    array (
    ),
    'Illuminate\Bus\BusServiceProvider' =>
    array (
    ),
    'Illuminate\Cache\CacheServiceProvider' =>
    array (
    ),
    'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider' =>
    array (
    ),
    'Illuminate\Hashing\HashServiceProvider' =>
    array (
    ),
    'Illuminate\Mail\MailServiceProvider' =>
    array (
    ),
    'Illuminate\Pipeline\PipelineServiceProvider' =>
    array (
    ),
    'Illuminate\Queue\QueueServiceProvider' =>
    array (
    ),
    'Illuminate\Redis\RedisServiceProvider' =>
    array (
    ),
    'Illuminate\Auth\Passwords\PasswordResetServiceProvider' =>
    array (
    ),
    'Illuminate\Translation\TranslationServiceProvider' =>
    array (
    ),
    'Illuminate\Validation\ValidationServiceProvider' =>
    array (
    ),
    'Collective\Html\HtmlServiceProvider' =>
    array (
    ),
  ),
);

您说您尝试了 php artisan clear-compiledcomposer dump-autoload 但您是否尝试过 运行 所有这些命令?

php artisan clear-compiled 
composer dump-autoload
php artisan optimize

在另一个论坛上从 rodrigo.pedra 得到了答案:

php artisan config:clear
php artisan clear-compiled

第一个将清除所有缓存的配置文件,第二个将清除服务缓存

如果您的 ServiceProvider class 实现了 boot() 方法,请确保您也调用了 parent::boot() 方法。

至少在我的情况下 (Laravel 5.3.6) 丢失的 parent::boot() 导致服务提供商无法正常启动。

我也有一个奇怪的问题:延迟提供者,直到我看到这个

To defer the loading of a provider, set the defer property to true and define a provides method. The provides method returns the service container bindings that the provider registers:

Laravel Documentation

php artisan clear-compiled 
composer dump-autoload

上面的命令有效,但就我而言,我必须删除 storage/views/ 下的所有文件才能使用我的提供商的指令 blade。