0

我创建了一个扩展。它是一个 Yii2 小部件。我为它创建了一个 GitHub 存储库。在遇到一些问题后,composer.json我成功地使用了这个Packagist 包

现在我可以使用以下命令在任何 yii2 应用程序中使用 composer 安装它:

composer require saidbakr/yii-jui-themes-list=1.2

有一个问题:它已经安装在了vendor\saidbakr\yii-jui-themes-list但是,我想直接安装它,vendor\saidbakr因为我的 PHP 代码命名空间考虑了这个命名空间。那么有什么方法可以让我控制包的安装位置,或者至少让我的文件直接放在存储库所有者上?

4

2 回答 2

3

您当前的命名空间是这样定义的

namespace vendor\saidbakr;

你应该使用类似的东西

namespace yiiJuiThemesList;

仅仅因为 composer 要将它放入 vendor 文件夹并不意味着您需要这样的命名空间。

于 2015-01-27T19:20:20.453 回答
1

您的命名空间严重错误。它们不应包含“供应商”。您实际上应该允许软件包安装在它已经安装的确切位置,这正是它应该如何工作的。无论你不让它们安装在另一个地方

如果你想让命名空间更简单,看看这里:https ://github.com/Mihai-P/yii2-core/blob/master/composer.json

我就是这样做的。基本上我告诉作曲家,core命名空间实际上是指向 vendor/tez/yii2-cms-module

这样当你说

use core/widgets/blala 

它会知道去供应商/tez/yii2-cms-module/widgets/blala

这就是你想要设置它的方式。

您也可以像我在这里所做的那样在 yii2 中设置别名:https ://github.com/Mihai-P/yii2-app-advanced/blob/master/common/config/bootstrap.php

于 2015-01-27T23:24:12.887 回答