【发布时间】:2015-10-27 03:56:04
【问题描述】:
在我的项目中,我们通过一个 composer.json 安装了 Laravel 和 Lumen。 Laravel 用于 Web 项目,Lumen 用于 API,两者都是同一个“项目”的一部分。
所以在“供应商”文件夹中,我有以下文件:
vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php
和
vendor/laravel/lumen-framework/src/Foundation/Support/Providers/EventServiceProvider.php
现在它们都使用相同的命名空间:
Illuminate\Foundation\Support\Providers\EventServiceProvider
在我们的一门课上:
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
问题是'vendor'文件夹中的两个包都使用这个命名空间,但是文件中的文件和方法不同。
是否有明确指定我们使用哪个版本的命名空间?或者为其中一个添加别名?
显然我无法更改软件包,因为“composer update”会覆盖它们。
欢迎任何想法。谢谢
【问题讨论】:
-
use命令特定于它出现的文件,所以我不确定我能看出问题所在。你能解释一下这个问题是如何表现出来的——你有没有得到错误?当你说“这个命名空间”时,你是指Illuminate\Foundation\Support\Providers\EventServiceProvider吗?如果是这样,只有一个包会使用它——这就是命名空间的意义所在。 -
不确定我是否理解。你是说 Laravel 和 Lumen 文件夹中都有一个类“Illuminate\Foundation\Support\Providers\EventServiceProvider”?
-
我的问题更清楚了
-
你在同一个应用程序中使用 Laravel 和 Lumen 有什么原因吗?
-
我没有发现问题。
标签: php laravel namespaces composer-php lumen