我开发了一个PHP Web应用程序,目前需要进行战略重组。
目前,当我们设置新客户端时,我们会在主域的子域中为它们提供整个代码库,并在数据库中为它们创建一个新表。
这导致每个客户端都拥有整个代码库,这意味着当我们进行错误更改时,我们必须返回并在所有客户端中独立应用它们,这很麻烦。
我想创建的是一个包含所有核心PHP文件的基本代码服务器。
base.domain.com
然后我们所有的客户( client.domain.com )只需要几个文件:
config.php
将拥有该数据库
连接信息。index.php
- 显示登录框if
会话不存在,否则它
通过远程加载基线代码
包括base.domain.com。我的问题是我的逻辑似乎可行吗?其他人如何通过基本代码处理类似情况?
另外....甚至可以从base.domain.com远程包含PHP文件并将它们包含在client.domain.com
中吗?
答案 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你想要发布到不同客户端的最新“稳定”版本应该不会耗费时间或容易出错(或者使用你的版本控制软件来实现这一点)。