我使用 Laravel 5.2 创建了一个小应用程序。我将所有工作保存在位于 App/Modules
的名为“Modules”的文件夹中。
现在,我正尝试将我的 Modules
文件夹移出到根目录“App 文件夹之外”。所以我的 Modules
文件夹现在位于 App
旁边。
我想像 App
文件夹一样自动加载 Modules
文件夹。
为了自动加载模块,我修改了
composer.json` 的 autoload部分,如下所示:
"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\CoreValidatorServiceProvider::class,
在 app.php 文件中。
然后在命令行中我执行了以下命令
php artisan clear-compiled
composer dumpautoload
composer update
然后我取消注释掉 app.php 文件中的行
Modules\Vendname\Surveys\Providers\CoreValidatorServiceProvider::class,
关于php - 如何使用 composer.json 在 Laravel 5 中自动加载新文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34570338/