加载不到已经在config/app.php里注册了的service provider,求助;

https://img.mukewang.com/5c8f384a0001f79108000798.jpg

这个是DbDocServiceProvider对应的代码:

<?php

namespace JeffcottLu\DbDoc;

use Illuminate\Support\ServiceProvider;
use JeffcottLu\DbDoc\Console\Commands\SyncTablesCommand;

class DbDocServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        $this->loadMigrationsFrom(__DIR__ . '/../database/migrations');
        $this->loadViewsFrom(__DIR__ . '/views/', 'DbDoc');
        //不能不发布就直接使用静态资源,
        $this->publishes([
            __DIR__ . '/../public/' => public_path('vendor/db-doc')
        ], 'public');
        $this->commands([SyncTablesCommand::class]);
        if (!$this->app->routesAreCached()) {
            require __DIR__ . '/web.php';
        }
    }

    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        $this->app->bind('command.db:db-doc', SyncTablesCommand::class);
        if ($this->app->runningInConsole()) {
            $this->commands([
                'command.db:db-doc'
            ]);
        }
    }

}

发布包,找不到对应的包;

https://img4.mukewang.com/5c8f384c0001b82908000572.jpg

没有这个包对应的命令行:

https://img4.mukewang.com/5c8f384d0001287e08000058.jpg

直接访问路由,报错

https://img3.mukewang.com/5c8f384e000186ff08000300.jpg

自己在写的一个包,一直是好的,但是不知道什么时候,开始报错;找不到注册的service provider,自己搞了一会,实在没有解决问题的思路,求助;

如果上面的报错信息不够详细的话,希望您可以在这里JeffcottLu/tools看一下对应的文件;谢谢;


是缓存的问题;

但是我清了无数次缓存还是不行,直到把项目删掉之后重新checkout之后才解决问题,这种情况怎么避免呢?

暮色呼如
浏览 788回答 2
2回答

万千封印

是开发模式还是生产?可能有缓存,在生产环境中,laravel会将所有配置文件缓存,便于加载,提升加载速度

婷婷同学_

小老弟,你的做法太极端了吧,我看了你的项目,全部是以包引入的,引入包之后容器注入和解析都是需要消耗的,然而有些包只是一个api接口,你完全可以使用trait代替,或者建个工具文件夹,专门放一些api,以上纯个人见解
打开App,查看更多内容
随时随地看视频慕课网APP