Я создал yii2 расширение. Это виджет Yii2. Я создал GitHub репозиторий для него. После некоторых проблем с composer.json
Я успешно к этому Packagist пакет.
Теперь я могу установить его с помощью composer в любом приложении yii2, используя следующую команду:
composer require saidbakr/yii-jui-themes-list=1.2
Есть проблема: он был установлен под vendor\saidbakr\yii-jui-themes-list
Тем не менее, я хочу, чтобы он был установлен прямо на vendor\saidbakr
из-за моего пространства имен кода PHP с учетом этого пространства имен. Так есть ли какой-нибудь способ, который дает мне контроль над тем, где должен быть установлен пакет, или, по крайней мере, чтобы мои файлы были помещены непосредственно владельцу хранилища?
Ваши пространства имен серьезно ошибочны. Они не должны содержать «продавца» в них. На самом деле вы должны разрешить установку пакета в том месте, где он уже установлен, именно так он и должен работать. Что бы вы не заставляли их устанавливать в другом месте
Если вы хотите упростить пространство имен, посмотрите здесь: 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
Ваше текущее пространство имен определено как таковое
namespace vendor\saidbakr;
Вы должны использовать что-то вроде
namespace yiiJuiThemesList;
То, что composer собирается поместить его в папку vendor, не означает, что вам нужно ваше пространство имен как таковое.