Общая кодовая база с различными пользовательскими интерфейсами

Мы пытаемся запустить пару сайтов, которые используют около 90% своего кода. Бизнес-сфера та же, но их интерфейсы немного отличаются. Следовательно, они будут иметь разные CSS.

Как бы вы управляли базой кода, чтобы поделиться кодом, который требует этого?

-1

Решение

Два основных способа

  • Структурируйте общие части как пакеты Composer

Например, весь код уровня приложения, такой как маршрутизатор, управление зависимостями, проверка, сопоставление сущностей домена, может управляться как Композитор зависимости через Packagist. Можно использовать частные репозитории в качестве зависимостей, если код не имеет открытого исходного кода.

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

Это подразумевает дополнительную настройку через Composer и код.

репо 1
/приложение
/ viewSpecificToOne
/ общественности
/ cssSpecificToOne
/ jsSpecificToOne
index.php
/ поставщика
/ [зависимости, установленные через composer]
репо 2
/приложение
/ viewSpecificToTwo
/ общественности
/ cssSpecificToTwo
/ jsSpecificToTwo
index.php
/ поставщика
/ [зависимости, установленные через composer]
  • Управление всеми сайтами из одного репо

Это близко к другому решению, но вы бы отправляли разные маршруты на разные фронт-контроллеры, которые использовали бы одни и те же сопоставители доменов, валидацию, маршрутизаторы и т. Д., Но имели два разных уровня просмотра, которые содержали бы определенный код.

Это подразумевает дополнительную конфигурацию с сервера для обслуживания каждого домена из двух общедоступных репозиториев.

Repo
/приложение
/ view1
/ viewLogicSpecificToOne
/ view2
/ viewLogicSpecificToTwo
/ public1
/ cssSpecificToOne
/ jsSpecificToOne
index.php
/ public2
/ cssSpecificToTwo
/ jsSpecificToTwo
index.php
/ Lib
/ sharedPackages
1

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

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

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