Управление несколькими сайтами с помощью единой кодовой базы Laravel - PullRequest
0 голосов
/ 03 июля 2019

Моя команда недавно собрала кодовую базу Laravel, которая отлично работает на нескольких сайтах.В настоящее время мы запускаем их как приложение, которое устанавливается на профиль centOS7.

Когда требуется новый сайт, мы запускаем профиль и код клонируется. База кода сильно зависит от пакетов (пользовательских пакетов laravel).В настоящее время каждый сайт использует все разработанные нами пакеты.В настоящее время различия 1) .env файл.и 2) Конфигурационные файлы темы (которые приходят из пакета, и я коснусь его позже).

Я хочу иметь возможность извлекать пакеты по мере необходимости, я не хочу извлекать каждый пакетмы разработали.У меня вопрос, есть ли способ вытащить каждую упаковку?Я думал о том, чтобы удалить файл composer.json из git и рассматривать его как файл конфигурации?Я также подумал о создании файла composer.json.

В конце концов мы хотим добавить CI / CD в процесс и действительно автоматизировать эту вещь.Я действительно борюсь за то, чтобы сохранить кодовую базу в одном хранилище.Я ошибся?Должны ли мы разделить кодовую базу, один репозиторий на проект, который входит?Но тогда вы должны учитывать, что обновления становятся кошмаром.

В настоящее время темы загружаются как пакеты.Каждый сайт имеет все темы в файле композитора.В приложении есть пользователи-администраторы, которые могут войти в систему и установить активную тему.Тем не менее, я бы хотел, чтобы он только извлекал необходимые ресурсы для тем.

Извините, если немного прогулял, но мне интересно, как правильно масштабировать приложение.

Спасибо большое!

tldr;Как я могу запустить несколько веб-сайтов, используя одну кодовую базу, и в то же время иметь возможность указывать разные требуемые пользовательские пакеты?

1 Ответ

1 голос
/ 03 июля 2019

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

Затем в каждом файле composer.json определите каталог другого поставщика . Пример:

{
    "config": {
        "vendor-dir": "plugins"
    }
}

Далее, при каждой установке укажите, какой composer.json файл установить, Из документов:

Установив переменную COMPOSER envможно задать имя файла composer.json в другом формате.

Пример из документации:

COMPOSER=composer-other.json php composer.phar install

Подробнее о окружение .

И последнее, но не менее важное: вам нужно будет загрузить свой веб-сайт или приложение для каталога конкретного поставщика:

require __DIR__.'/../custom-vendor-directory/autoload.php';

Это можно настроить в приложении index.php файл. оригинальный источник .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...