我创建了yii2扩展名。这是一个Yii2小部件。我创建了一个GitHub repository for it。在composer.json
成功解决了composer require saidbakr/yii-jui-themes-list=1.2
之后的所有问题。
现在我可以使用以下命令在任何yii2 appliaction中使用composer安装它:
vendor\saidbakr\yii-jui-themes-list
有一个问题:它已安装在vendor\saidbakr
下但是,我希望它直接安装在{{1}}上,因为我的PHP代码命名空间考虑了这个命名空间。那么有什么方法可以让我控制应该安装软件包的位置,或者至少让我的文件直接放在存储库所有者身上?
答案 0 :(得分:3)
您当前的命名空间是这样定义的
namespace vendor\saidbakr;
你应该使用像
这样的东西 namespace yiiJuiThemesList;
仅仅因为作曲家要把它放到供应商文件夹中并不意味着你需要你的命名空间。
答案 1 :(得分: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