Моя компания строит платформу на основе сильно расширенного ядра Drupal. У меня есть несколько клиентов, которые будут использовать отдельные экземпляры этой системы и захотят настроить как тему, так и функциональность.
Я пытаюсь разработать систему, позволяющую им добавлять темы и модули, некоторые из которых могут взаимодействовать с некоторыми моими модулями, не предоставляя им доступ к реальному коду. (Это не с открытым исходным кодом)
Способ, которым Facebook и Ning делают это, заключается в том, чтобы разработчик размещал свой собственный код и имел обратный вызов. Это не будет работать для меня, так как эти сайты нуждаются в полной настройке, поэтому обратные вызовы для конкретных точек интеграции не работают.
Один из вариантов - создать среду песочницы, в которой разработчики могут иметь доступ только к нескольким конкретным каталогам для создания своих тем и пользовательских модулей. Затем мы могли бы интегрироваться с git, чтобы зафиксировать их, когда они будут готовы, и развернуть их с остальной частью нашего кода в производство. Проблема с этой настройкой заключается в том, что разработчики должны разрабатывать удаленно и использовать нашу систему контроля версий.
Более типичная настройка - позволить разработчикам загружать что-то для создания своего пользовательского кода. Они могут развиваться локально и использовать те методы контроля версий, которые у них уже есть. Поскольку нам не нужны конкретные точечные интеграции, я не думаю, что это может быть библиотека, работающая с отдельным сервером. Альтернативой является загрузка нашей полной базовой системы Drupal и локальная разработка против нее, загрузка пользовательского кода, когда он будет готов, но тогда у них будет доступ ко всему нашему коду и IP.
Таким образом, затруднительное положение, поскольку я не думаю, что есть какой-либо способ эффективно запутать PHP.
У кого-нибудь есть здесь блестящие идеи?