如何使用composer.json在Laravel 5中自动加载新文件夹



我使用Laravel 5.2创建了一个小型应用程序。我把所有的工作都放在App/Modules的一个名为"模块"的文件夹里。

现在,我正试图将我的Modules文件夹移到"应用程序文件夹外"的根目录中。因此,我的Modules文件夹现在位于App旁边。

我想像App文件夹一样自动加载Modules文件夹。

要自动加载Modules, I modified my autoload section of my composer.json`,如下所示:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\": "app/",
        "Modules\": "modules/"
    }
},

此外,在app.php配置文件中,我将此服务提供商添加到我的"提供商"阵列中

ModulesVendnameSurveysProvidersCoreValidatorServiceProvider::class,

然后从命令行,我执行了以下命令

composer dumpautoload

每次我去网站,我得到这个错误

FatalErrorException in ProviderRepository.php line 146: Class 'ModulesVendnameSurveysProvidersCoreServiceProvider' not found

这是我的CoreServiceProvider.php文件的代码

<?php
namespace ModulesVendnameSurveysProviders;
use IlluminateSupportServiceProvider;
class CoreServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        if (! $this->app->routesAreCached()) {
            require __DIR__ . '/../routes.php';
        }
    }
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
    }
}

我在这里做错了什么?我需要做什么才能正确地自动加载新文件夹?

我终于开始工作了。

我评论了

ModulesVendnameSurveysProvidersCoreValidatorServiceProvider::class,

在app.php文件中。

然后在命令行中,我执行了以下命令

php artisan clear-compiled
composer dumpautoload
composer update

然后我取消了app.php文件中的行注释

ModulesVendnameSurveysProvidersCoreValidatorServiceProvider::class,

相关内容

  • 没有找到相关文章

最新更新