Как установить другой путь для установщика composer на основе компонентов внутри фреймворка

Я работал над разработкой PHP Framework, и мы хотели бы разделить компоненты на отдельные пакеты из ядра. Как это:

vendor /
username/frameworkname /
core/
Namespace /
Core /
..Framework core files here
components/
Namespace /
Component
ComponentOne
ClassOne.php
ClassTwo.php
composer.json
LICENSE.txt
README.md

ComponentTwo
ClassOne.php
ClassTwo.php
ClassThree.php
composer.json
README.md
LICENSE.txt

ComponentHopeYouFotIT!

Core требуется композитором, как это:

composer require name/framework-core

И сможете установить его в

vendor/username/frameworkname/src/core/Namespace/Core/

И любой компонент, как это:

composer require name/componentname

И сможете установить его в:

vendor/username/frameworkname/src/components/Namespace/Component/

Чтобы нам не нужно было создавать отдельную папку для любого нового компонента, и мы могли бы использовать это так:

use Namespace\Core\CoreClass;
use Namespace\Component\{
ComponentOne\ClassTwo,
ComponentTwo\ClassOne
};

Это что возможно?

Я лично пробовал Композитор композитор / монтажников но не смог определить правильные настройки в composer.json, чтобы добиться цели.

"config": {
"vendor-dir": "vendor/username"},
"repositories": [
{
"type": "package",
"package": {
"name": "frameworkname/componentname",
"version": "master",
"source": {
"url": "https://github.com/username/componentname",
"type": "git",
"reference": "master"}
},
"require": {
"composer/installers": "~1.0"}
}
],

0

Решение

Вы смотрели на Документация для пользовательского установщика Composer? Это делает это.

Tl; dr заключается в том, что вам нужно создать (очень простой) плагин Composer для установки пользовательских мест установки, и документация очень подробно расскажет вам об этом.

В сторону: Мой смысл, немного поэкспериментировав с composer/installersявляется то, что он может не поддерживать пользовательские типы, но может позволить вам задать пользовательские пути для поддерживаемых типов. То есть: если вы хотите использовать плагин WordPress, но установить его в другом месте, чем обычно, вы можете переопределить install-paths, но вы не могли обязательно использовать composer/installers определить свой собственный тип whooptido-type с пользовательским местом установки. Этот вывод основывается, как я подчеркиваю, на эмпирическом опыте, экспериментирующем с этим утром, а не на фактической документации. 😉

0

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

Других решений пока нет …

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