2

我开发了一个 PHP Web 应用程序,目前需要进行战略重组。

目前,当我们设置新客户端时,我们会在主域的子域上为他们提供整个代码库,并在数据库中为他们创建一个新表。

这导致每个客户端都拥有整个代码库,这意味着当我们进行错误更改和修复时,我们必须返回并独立地将它们应用于所有客户端,这很痛苦。

我想要创建的是一个包含所有核心 PHP 文件的基本代码服务器。

base.domain.com

那么我们所有的客户(client.domain.com)只需要几个文件:

  • config.php会有数据库连接信息。
  • index.php- 如果会话不存在,则显示登录框,否则它将通过远程包含将基线代码加载到 base.domain.com。

我的问题是我的逻辑看起来可行吗?其他人如何通过拥有基本代码来处理类似情况?

另外....是否甚至可以从 base.domain.com 远程包含 PHP 文件并将它们包含在client.domain.com

4

3 回答 3

1

为每个客户创建一个clientId,然后您可以在一个数据库中工作,您可以处理config.php,您可以在其中为每个用户定义这个唯一的ID。

第二个问题:

PHP.NET http://php.net/manual/en/function.include.php

如果在 PHP 中启用了“URL fopen 包装器”(它们在默认配置中),您可以使用 URL 指定要包含的文件(通过 HTTP 或其他支持的包装器 - 请参阅支持的协议/包装器列表以获取协议)而不是本地路径名。如果目标服务器将目标文件解释为 PHP 代码,则可以使用与 HTTP GET 一起使用的 URL 请求字符串将变量传递给包含的文件。严格来说,这与包含文件并使其继承父文件的变量范围不同。该脚本实际上正在远程服务器上运行,然后将结果包含到本地脚本中。

于 2010-04-04T21:23:02.270 回答
1

甚至可以从 base.domain.com 远程包含 PHP 文件并将它们包含在 client.domain.com 中吗?

这是可能的,但速度非常慢。另外,如果您的中央服务器离线怎么办?所有客户的应用程序将不再运行。

我不知道您的客户的应用程序运行在什么样的平台上,但这不是像Subversion这样的版本控制系统的工作吗?

对代码库的更改将签入中央存储库,然后自动更新所有客户端的副本。

于 2010-04-04T21:24:42.520 回答
1

这导致每个客户端都拥有整个代码库,这意味着当我们进行错误更改和修复时,我们必须返回并独立地将它们应用于所有客户端,这很痛苦。

为什么不解决这个问题呢?编写一个小脚本来同步您想要发布到不同客户端的最新“稳定”版本不应该是耗时或容易出错的(或者使用您的版本控制软件来做到这一点)。

于 2010-04-04T21:25:06.100 回答