2010-04-04 56 views
2

我开发了一个当前需要进行战略重组的PHP Web应用程序。基本代码系统需要的想法

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

这会导致每个客户都拥有完整的代码库,这意味着当我们进行错误更改时,我们必须修复所有客户端并独立应用它们,这是一个痛苦。

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

base.domain.com 

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

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

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

另外....是否有可能从base.domain.com远程包含PHP文件,并将它们包含在client.domain.com

回答

1

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

第二个问题:

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

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

+0

我认为,对于这种类型的应用程序,最好由于所涉及的公司数据而将每个客户端的数据库分开。我刚刚意识到不是远程包含文件,而只是使用服务器上文件的完整路径。谢谢 – 2010-04-04 21:33:05

1

它甚至possbile远程包括base.domain.com PHP文件,并将其纳入client.domain.com?

这是可能的,但很慢很慢。另外,如果中央服务器处于脱机状态,会发生什么情况所有客户的应用程序不会再运行。

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

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

+0

感谢您对颠覆的建议。 – 2010-04-04 21:34:12

1

这会导致每个客户端都拥有完整的代码库,这意味着当我们修改错误时,修复我们必须返回并在所有客户端中独立应用它们,这是一个痛苦。

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