2个供应商包使用的相同名称空间:laravel和lumen

时间:2015-08-04 16:23:51

标签: php laravel namespaces composer-php lumen

在我的项目中,我们让Laravel和Lumen都由一个composer.json安装。 Laravel用于Web项目,Lumen用于API,这两者都属于同一项目'。

所以在'供应商'文件夹我有以下文件:

供应商/ laravel /框架/ SRC /照亮/粉底/支持/提供者/ EventServiceProvider.php

供应商/ laravel /内腔的框架/ SRC /粉底/支持/提供者/ EventServiceProvider.php

现在两者都使用相同的命名空间:

照亮\基金会\支持\提供商\ EventServiceProvider

在我的一个课程中,我做了:

use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;

问题在于'供应商'文件夹使用此命名空间,但文件中的文件和方法是不同的。

是否有明确指定我们使用的命名空间版本?或者为其中一个添加别名?

显然我无法更改套餐,因为'作曲家更新'会覆盖它们。

欢迎任何想法。感谢

1 个答案:

答案 0 :(得分:0)

有两个不同的名称空间(不是一个)包含两个具有相同名称的类。只需使用两个联盟:

use Illuminate/Foundation/Support/Providers/EventServiceProvider as IlluminateEventServiceProvider;
use Foundation/Support/Providers/EventServiceProvider as LumenEventServiceProvider;

从这里你可以毫不含糊地调用这两个类。