基本代码系统所需的想法

时间:2010-04-04 21:17:16

标签: php web-applications saas

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

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

这导致每个客户端都拥有整个代码库,这意味着当我们进行错误更改时,我们必须返回并在所有客户端中独立应用它们,这很麻烦。

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

base.domain.com

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

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

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

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

3 个答案:

答案 0 :(得分:1)

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

第二个问题:

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

  

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

答案 1 :(得分:1)

  

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

这是可能的,但速度慢得令人沮丧。另外,如果您的中央服务器处于脱机状态会怎样?所有客户的应用程序都不再运行。

我不知道客户端应用程序运行的平台类型,但这不是Subversion等版本控制系统的工作吗?

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

答案 2 :(得分:1)

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

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