2009-10-26 3 views
0

Моя компания строит платформу поверх сильно расширенного ядра Drupal. У меня есть несколько клиентов, которые будут использовать отдельные экземпляры этой системы и захотят настроить как тему, так и функциональность.Как разрешить настройку платформы, построенной на Drupal (и PHP obfuscation)

Я пытаюсь создать систему, позволяющую им добавлять темы и модули, некоторые из которых могут взаимодействовать с некоторыми из моих модулей, не предоставляя им доступ к фактическому коду. (Это не с открытым исходным кодом)

То, как Facebook и Ning делают это, должны иметь у разработчика собственный код пользователя и иметь обратный вызов. Это не будет работать для меня, поскольку эти сайты нуждаются в возможности полностью настраиваться, поэтому обратные вызовы для конкретных точек интеграции действительно не работают.

Одним из вариантов является создание среды песочницы, где пользовательские разработчики имеют доступ только к нескольким конкретным каталогам для создания своих тем и настраиваемых модулей. Затем мы могли бы интегрироваться с git, чтобы совершить их, когда они будут готовы, и развернуть их с остальной частью нашего кода в производство. Проблема с этой настройкой заключается в том, что разработчики должны разрабатывать удаленно и должны использовать нашу систему управления версиями.

Более типичная настройка - позволить разработчикам загружать что-то, чтобы создать свой собственный код. Они могут развиваться на местном уровне и использовать любые методы контроля источников, которые у них уже есть. Поскольку мы не хотим специфической интеграции точек, я не думаю, что это может быть библиотека, которая работает против отдельного сервера. Альтернатива заключается в том, чтобы загрузить нашу полную базовую систему Drupal и разработать локально против нее, загружая пользовательский код, когда он будет готов, но тогда у них будет доступ ко всему нашему коду и IP.

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

У кого-нибудь есть блестящие идеи здесь?

ответ

2

Похоже, ваша система является производной работой Drupal и покрывается GPL. Если вы распространяете код для своих клиентов, у них есть все права, предоставляемые GPL, включая их модификацию и перераспределение.

Помните, что распространение обфускации кода GPL не допускается. Процитировать GPLv2 «Исходный код для работы означает предпочтительную форму работы для внесения в нее изменений».

Обфусканный код не соответствует этому разделу GPL.

При этом, если вы действительно хотите предоставить своим клиентам способ настройки вашей системы, вы можете предоставить своим клиентам доступ к существующему модулю Drupal и системе тем, но только на вашей песочнице.

Конечно, поскольку модули и темы являются PHP, и вы «не хотите, чтобы определенные точечные интеграции», похоже, у них будет такая свобода, которая позволила бы им написать модуль, который читает весь исходный код для остальной части вашей системы, а затем разгрузите ее и отправьте ее себе.

Я думаю, вы нарисовали себя в угол, в зависимости от GPL. Сохранение вашего IP-адреса, позволяя вашим клиентам расширять/настраивать систему в целом, на самом деле не работает.

+0

Крейг, ты прав. Нет никакого хорошего способа сделать то, что я изначально пытался сделать. Мы переместили стратегию, чтобы просто настроить настройку через приложение, а не через API Drupal. – Nader

1

Надеюсь, вы знаете, что Drupal - это GPL licensed, перед тем как начать запутывание, обязательно прочитайте their licensing FAQ.

+0

Спасибо, я знаю об этом. Я не распространяю код для повторного использования. Я создаю сайты для клиентов, и я бы хотел, чтобы они могли настраивать их без их просмотра. Это хорошо под GPL, см. Вопросы 8 и 11. Например, Facebook внутренне использует много лицензионных программ GPL и позволяет разработчикам писать приложения против своего кода. Это все, что я пытаюсь сделать. Просто пытаюсь выяснить, как это сделать. – Nader

1

Почему бы просто не создать пользователя FTP для них, который может иметь доступ только к сайтам/сайтам? Что мне не хватает?

 Смежные вопросы

  • Нет связанных вопросов^_^