Создание пакета на Packagist и путь установки пакета

Я создал расширение. Это виджет 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 с учетом этого пространства имен. Так есть ли какой-нибудь способ, который дает мне контроль над тем, где должен быть установлен пакет, или, по крайней мере, чтобы мои файлы были помещены непосредственно владельцу хранилища?

0

Решение

Ваши пространства имен серьезно ошибочны. Они не должны содержать «продавца» в них. На самом деле вы должны разрешить установку пакета в том месте, где он уже установлен, именно так он и должен работать. Что бы вы не заставляли их устанавливать в другом месте

Если вы хотите упростить пространство имен, посмотрите здесь: 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

1

Другие решения

Ваше текущее пространство имен определено как таковое

namespace vendor\saidbakr;

Вы должны использовать что-то вроде

namespace yiiJuiThemesList;

То, что composer собирается поместить его в папку vendor, не означает, что вам нужно ваше пространство имен как таковое.

3

По вопросам рекламы [email protected]