【问题标题】:Laravel 5 FatalErrorException with a providerLaravel 5 FatalErrorException 与提供者
【发布时间】:2016-07-28 00:22:12
【问题描述】:

我配置了我的 config/app.php 文件并添加了这个提供程序:

'providers' => [
/*
  Foti Services Providers
*/
 Foticos\LaravelFotiServices\LaravelFotiServicesProvider::class,
],

我已创建命名空间并将其添加到我的 LaravelFotiServicesProvider 文件中:

<?php 

namespace Foticos\LaravelFotiServices;

use Illuminate\Support\ServiceProvider;

class LaravelFotiServicesProvider extends ServiceProvider {
...

但是 Laravel 5 向我报告了这个错误:

FatalErrorException in ProviderRepository.php line 146:
Class 'Foticos\LaravelFotiServices\LaravelFotiServicesProvider' not found

有什么问题?

【问题讨论】:

  • 文件LaravelFotiServices的路径是什么?
  • 供应商/foticos/laravel_foti_services/src/LaravelFotiServicesProvider.php

标签: php laravel laravel-5


【解决方案1】:

当你将文件放在vendor 文件夹中时,你应该在composer.json 中提供一个指令,让 Laravel 找到你的类。但是,请注意将您自己的文件放在vendor 文件夹中并不是一个好主意,因为它通常用于第三方库

您应该将源文件放在app 文件夹中,它们将自动在命名空间App 下进行PSR-4 命名空间,因为在composer.json 中指定了:

"psr-4": {
        "App\\": "app/"
    }

因此,如果您创建一个子文件夹:app/Libs/Foticos/ 文件夹内的文件将具有 App\Libs\Foticos 命名空间

相反,如果您想创建一个包(在多个项目中使用源代码,或重新分发它们),请查看here 以了解您应该如何构建用于包开发的文件夹

编辑

如果您绝对想将文件夹留在vendor,请尝试将其添加到composer.json:

"psr-4": {
        "App\\": "app/",
        "Foticos\\": "vendor/foticos/laravel_foti_services/src/" 
    }

然后将文件放入:

vendor/foticos/laravel_foti_services/src/LaravelFotiServices/LaravelFotiServicesProvider.php

然后做:composer dump-autoload

【讨论】:

  • 嗯,我想把我的文件夹留在 /vendor,指令的名称是什么?我想把它放在 composer.json 并运行 composer update 命令。
  • 你启动composer dump-autoload了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-25
  • 2020-01-31
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 1970-01-01
相关资源
最近更新 更多