2009-10-26 82 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用户?我错过了什么?