Gil*_*Mey 5 php git version-control web-applications
我正在寻找管理PHP Web应用程序的多个实例的最佳方式(或最简单的方法),这些实例共享相同的代码库.
让我为你分解一下:
我们的域托管了应用程序的多个实例,每个实例都有自己的设置文件和数据库.
http://mydomain.com
|
| ------/customer1/
|
| ------/customer2/
|
| ------/customer3/+自定义功能
假设客户1和2购买了应用程序(我们为它们托管),并且它们具有该应用程序的基本模型.(即未定制)
但是,客户3需要功能X或Y,因此我们为他编写该功能并将其添加到应用程序中.
但是只要代码库有更新(即框架的核心类中的安全修复程序),所有三个客户都应该获得基本代码的更新!
管理这种设置的最佳方法是什么?使用FTP手动上传所有文件很痛苦,并且无法合并代码.
使用Git可能是一个解决方案,但我该如何去做呢?为每个客户创建单独的存储库?如果我们成长到超过一百个客户怎么办?
我们欢迎任何见解,包括为什么我们应该或不应该使用这样的设置.(但请记住,我们将成为为客户提供应用程序的人)
我记得几年前就做过这个,所以你必须考虑到我现在对此有点生疏了。
我构建了一个独立的框架,它将所有包含内容合并到一个 .php 文件中。任何使用它的框架都会发出 PULL 请求,如果其框架的 md5 与中央服务器上的框架匹配,则不需要更新。否则,它将通过 https 下载新框架并替换它自己的副本。这创建了一个自动更新系统,该系统被拉到所有其他使用它的应用程序。
一个主要问题是,如果您导致语法错误并将其上传到中央服务器,它将被拉到所有其他服务器并破坏它们!您最好使用 cron 作业来发出不使用框架的拉取请求,这样损坏的框架就不会中断它执行拉取请求来修复框架中的语法错误。一旦您修复了中央服务器上的语法错误,这至少增加了自动修复自身的能力。然而,在这种情况下,拥有一个临时服务器来测试每个更新确实非常重要。
当然,这只是基础知识,就好像您说框架使用的图像一样,它们也需要被拉取,以及任何 SQL 更新等等。
在上传到中央服务器之前,您必须重新进行测试,以防止出现大量错误!不理想!单元测试、登台服务器、小而简单的更新(但更频繁)(大型更新更有可能出错,如果出错则需要撤消更多)都将有助于降低风险。
您还必须从一开始就非常非常非常非常好地构建框架,以便在计划让许多不同的站点使用它时使其尽可能灵活。如果一开始就设计错误,以后可能几乎不可能重新设计。例如,使用 PDO 进行数据库访问可能是明智的,允许所有应用程序能够使用不同的数据库,而您的类等仍然不知道如何与数据库交互(无论是 mysql 还是 oracle),但是,我如果可以的话,建议至少坚持一个。
在设计方面,您最好看看其他语言框架,看看它们是如何做的。您必须坚持良好的设计原则,仅在适用的情况下使用设计模式,并注意 MVC!
进一步阅读...
这不是一件容易的事,所以要小心。
| 归档时间: |
|
| 查看次数: |
1310 次 |
| 最近记录: |