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