【发布时间】:2016-04-06 20:05:32
【问题描述】:
我使用 Laravel 5.2 创建了一个小应用程序。我将所有工作都保存在一个名为“Modules”的文件夹中,该文件夹位于App/Modules。
现在,我正在尝试将我的 Modules 文件夹移出到“App 文件夹之外”的根目录。所以我的Modules 文件夹现在位于App 旁边。
我想像App 文件夹一样自动加载Modules 文件夹。
要自动加载Modules, I modified myautoloadsection of mycomposer.json`,如下所示:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/",
"Modules\\": "modules/"
}
},
此外,在app.php 配置文件中,我将此服务提供者添加到我的“提供者”数组中
Modules\Vendname\Surveys\Providers\CoreValidatorServiceProvider::class,
然后从命令行,我执行了以下命令
composer dumpautoload
每次我去网站,我都会收到这个错误
FatalErrorException in ProviderRepository.php line 146: Class 'Modules\Vendname\Surveys\Providers\CoreServiceProvider' not found
这是我的 CoreServiceProvider.php 文件的代码
<?php
namespace Modules\Vendname\Surveys\Providers;
use Illuminate\Support\ServiceProvider;
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()
{
}
}
我在这里做错了什么? 我需要做什么才能正确自动加载新文件夹?
【问题讨论】:
-
Modules\Vendname\Surveys\Providers\CoreServiceProvider类位于哪个文件中?根据您的composer.json文件,它应该在modules/Vendname/Surveys/Providers/CoreServiceProvider.php。 -
@xabbuh 我将文件夹名称从“模块”更改为“模块”,即使它没有解决问题。谢谢你的提示
标签: php laravel laravel-5 composer-php