2009-10-26 81 views
0

我的公司正在構建一個基於Drupal核心的平臺。我有多個客戶將使用此係統的單獨實例,並希望自定義主題和功能。如何允許在Drupal(和PHP混淆)上構建平臺的定製

我想設計一個系統,允許他們添加主題和模塊,其中一些可能會與我的一些模塊進行交互,而不會讓他們訪問實際的代碼。 (這不是開源的)

Facebook和Ning這樣做的方式是讓開發人員託管他們自己的自定義代碼並對其進行回調。這對我來說並不適合,因爲這些網站需要完全自定義的功能,所以針對特定集成點的回調功能並不適用。

一種選擇是設置沙箱環境,其中自定義開發人員只能訪問幾個特定目錄來構建其主題和自定義模塊。然後,我們可以將它們與git集成,在它們準備就緒時提交它們,並將其餘的代碼部署到生產環境中。這種設置的問題是開發人員必須進行遠程開發,並且必須使用我們的源代碼管理系統。

更典型的設置是允許開發人員下載某些內容來構建自定義代碼。他們可以在本地開發並使用他們已有的任何源代碼管理實踐。由於我們不希望特定的點集成,我不認爲這可能是一個針對單獨服務器運行的庫。另一種方法是下載我們的完整核心Drupal系統並根據這個系統進行本地開發,在自定義代碼準備好的時候上傳自定義代碼,然後他們就可以訪問我們所有的代碼和IP。

因此困境,因爲我不認爲有任何方法可以有效地混淆PHP。

任何人在這裏有任何精彩的想法?

回答

2

聽起來好像你的系統是Drupal的衍生工作,因此被GPL所覆蓋。如果您將代碼分發給您的客戶,則他們擁有GPL提供的所有權利,包括修改和重新分發它。

請注意,不允許分發混淆的GPL代碼。引用GPLv2「作品的源代碼意味着對作品進行修改的首選形式。」

混淆代碼不符合GPL的此條款。這就是說,如果你真的想爲你的客戶提供一種定製系統的方法,你可以爲你的客戶提供對現有的Drupal模塊和主題系統的訪問權限,但只能在你的沙箱上。

當然,由於模塊和主題是PHP,而且「不想要特定的點集成」,他們似乎會擁有這樣的自由,他們可以編寫一個模塊讀取所有源代碼其餘的系統,然後將其解決併發送給自己。

我認爲你已經根據GPL將自己畫到了一個角落。讓您的IP專用,同時讓您的客戶以一般方式擴展/定製系統並不真正奏效。

+0

克雷格,你是對的。沒有什麼好辦法去做我最初想做的事情。我們已經將戰略轉移到了允許通過應用程序定製的方式,而不是通過Drupal API。 – Nader 2010-01-28 00:00:37

1

我希望你知道,Drupal是GPL licensed,請務必在開始混淆之前閱讀their licensing FAQ

+0

謝謝,我知道這一點。我沒有分發代碼以供重用。我正在爲客戶構建網站,我希望他們能夠在不看到代碼的情況下對其進行定製。在GPL下這很好,請參閱問題8和11.例如,Facebook在內部使用許多GPL許可的軟件,並允許開發人員針對他們的代碼編寫應用程序。這就是我想要做的。試圖找出實現這一目標的最佳方法。 – Nader 2009-10-27 00:09:16

1

爲什麼不爲他們創建一個只能訪問/ sites/theirsite的FTP用戶?我錯過了什麼?