自定义命名空间

时间:2017-02-16 17:34:02

标签: php laravel

是否可以在Laravel的App / Providers目录之外安装服务提供商?我正在使用Laravel 5.4。

我通常将自己的所有类放入src / CUSTOM_NAMESPACE目录中。我在那里有我所有的控制器,模型,存储库等,一切正常。但是,我无法让服务提供商从那里开始工作。

我在composer.json中添加了一个psr4自动加载器定义...

"psr-4": {
    "App\\": "app/",
    "CUSTOM_NAMESPACE\\": "src/"
 }

我已将服务提供商添加到app.php ...

CUSTOM_NAMESPACE\Providers\BlahServiceProvider::class,

我知道的是有效的,因为所有其他类都可以正常运行。我有三重检查拼写,案例等。

我总是收到以下错误...

[Symfony\Component\Debug\Exception\FatalErrorException]  
Class 'CUSTOM_NAMESPACE\Providers\BlahServiceProvider' not found

我尝试过运行composer dump-autoload,但是如果我运行php artisan optimize或composer update这样的命令,我会收到此错误。

我在文档中找不到提交者必须在App目录中的任何内容。

我现在暂时将服务提供商放在app目录中,但我想我会问这个问题,因为我有点困惑,我不能把我所有的类放在我自己的命名空间下的src目录中。

之前有没有人遇到过这个问题?是不是应该这样工作?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您必须运行composer dump-autoload