在 Packagist 上创建包和包安装路径

Creating package on Packagist and the package installation path

我创建了一个 extension. It is a Yii2 widget. I created a GitHub repository for it. After some issues with composer.json I have, successfully, to this Packagist package

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

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

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

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

namespace vendor\saidbakr;

你应该使用类似

的东西

namespace yiiJuiThemesList;

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

您的命名空间严重错误。它们不应包含 "vendor"。您实际上应该允许包安装在它已经安装的确切位置,这正是它应该如何工作的。不管你不让他们安装在另一个地方

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

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

这样当你说

use core/widgets/blala 

它会知道去 vendor/tez/yii2-cms-module/widgets/blala

这就是您想要的全部设置方式。

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