Модераторы: IZ@TOP, skyboy, SamDark, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Два composer.json для проекта 
:(
    Опции темы
SkyTello
Дата 16.5.2018, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 16.5.2018

Репутация: нет
Всего: нет



Добрый день.
Хочу написать движек сайтов на yii2 и задумывается структура проектов с двумя composer.json
Первый будет отвечать за все общие зависимости для движка, тоесть пакет с yii2 и т.п.
Второй будет на каждом сайте свой и подтягивать все пакеты и зависимости в свой vendor которые нужны конкретно этому проекту.

Для осуществления данной задумки хотел использовать composer-merge-plugin в json проекта устанавливаю и прописываю настройки к главному json файлу:

Код


    "require": {
        "wikimedia/composer-merge-plugin": "^1.4"
    },
    "extra": {
        "merge-plugin": {
            "require": [
                "../../yii2sources/core/composer.json"
            ],
            "recurse": true,
            "replace": false,
            "ignore-duplicates": false,
            "merge-dev": true,
            "merge-extra": false,
            "merge-extra-deep": false,
            "merge-scripts": false
        }
    }


Проблема наступает при composer update того джейсона который относится непосредственно к проекту. он начинает тянуть все содержимое указанное в главном файле json хотя оно уже и так было скачано в общий vendor. Получается что фреймворк у меня сразу в двух местах находится и это естественно не то что задумывалось.

Можно ли сделать таки как это сделать, чтоб компосер проекта не тянул уже скаченные пакеты из основного json файла если они уже и так были скачаны и находятся в своем вендоре, а тянул только то что прописано в проектном json и только те зависимости которых нет в основном?
PM MAIL   Вверх
Vardoulacha
Дата 17.5.2018, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 11.8.2005

Репутация: 7
Всего: 8



Для этого вы свой движок делаете library, а проект делаете project, который создается как create-project (по факту делается клон репы и запуск composer install), таким образом в проекте будет по умолчанию всего одна зависимость от вашего ядра, и лежать ядро будет в vendor, а дальше к проекту цепляйте что хотите.

в качестве примера (никакой рекламы, проект для своих нужд) вот мое ядро
https://github.com/Lemurro/core

а вот api-сервер, который использует это ядро
https://github.com/Lemurro/server
и у него в composer.json только зависимость от ядра, а дальше к проекту можно цеплять что угодно
  "require": {
    "php": ">=7.0.0",
    "lemurro/core": "^0"
  },

Плюс в том что движок можно легко обновлять как любую зависимость
PM MAIL   Вверх
Google
  Дата 23.8.2019, 16:57 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0647 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.