我们是一个在LAN中开发PHP应用程序的小团队。在Mac和PC上都有。
个别开发人员检查并编辑源代码到他们自己的运行Apache的机器上。然后在localhost
上进行本地测试。
对于数据库,应用程序连接到LAN中专用计算机上的常见MySQL安装。这非常有效,因为我们很少对数据库模式进行(破坏性)更改。这意味着所有运行的单个应用程序都访问相同的测试数据。
但上传的文件仍然存在问题:它们只会上传到开发人员的本地计算机,尽管对它们的引用存储在中央数据库中。这意味着其他团队成员可能会显示用户上传图像的链接断开,实际上只存在于一台开发人员本地计算机上。
理想的解决方案是在中央机器上安装整个持久层。关于如何最好地实现这一点的任何想法?
答案 0 :(得分:1)
映射网络文件夹或使用Dropbox等类似服务。虽然本地数据库很好,但并没有占用太多资源。
答案 1 :(得分:0)
基本上你需要某种共享文件系统。有很多选择:samba共享,NFS安装目录,Dropbox(或类似服务)等。我建议查看可用选项,以了解最适合您基础架构的选项。
答案 2 :(得分:0)
我曾经处理过这个问题,而我所做的就是使用我们的NAS作为存储的一切。我们通过FTP在NAS上开发了我们的网站。它就像云开发,IDE只在我们这边,我们编辑的每个文件,图像上传等等都在NAS上。网站本身也在NAS上运行(因为NAS有能力成为服务器并拥有mySQL)
NAS从网络存储转变为实际的本地服务器。
根据我如何理解您的问题,我假设您只需要共享上传的资源(如图片),而不是一次在同一个应用中开发。
首先,我建议你不要在生产机器上开发。
现在,有两种方法可以做到:
模块化开发:
你是独立发展的。你不要碰对方的代码。您可以彼此分开开发功能。这样,你就不会踩到对方的鞋子里。这也促进了“松耦合”,用le man的话来说,“当一个特征断裂时,另一个特征不会”你应该check out this video了解如何将开发分解为“模块”。这是在JS中,但架构仍然适用。
版本控制开发
将您的发展分为3层:
制作(又名稳定)是公开的代码。您不在此处开发或触摸代码。您只能在完全测试时发布代码。此外,这不是公共服务器。这只是公共代码。但是,这里居住的是公共网站的实际复制品。
测试(又称Beta)是您测试已开发代码的地方。该系统仅用于测试目的。你也不要触摸这里的代码。你就是在这里找到自己的bug。这是你的“质量保证层”。此层也是您的代码合并的地方(稍后讨论)
开发(又名Alpha)是您触摸代码的地方。在这里,您分享您的代码,测试它,破解它,尝试新功能以及修复您在测试中找到的错误
正如您所看到的,由于覆盖或链接断开等原因,您不会破坏系统。
现在,您的发展战略。使用像GIT(分布式)或SVN(中央)这样的版本系统,并根据上面的那些创建3个分支。对于此示例,这使用分布式方法(我更喜欢)
在您的小组中指定一个“维护者/指环大师”,合并您的工作并将其发布到测试中。这个维护者所做的是收集你已经完成的“已完成”的代码并将其放入他的测试分支。 任何人然后可以将他的测试分支克隆到您的测试分支以测试您的代码。无论他们/您找到什么错误,您都会在开发中进行改进并再次将其提交给他。只有在该功能得到质量保证之后,维护者才能将其发布到稳定版,然后将其克隆到公共服务器。
完成所有操作后,当您继续前进时,只需将稳定分支克隆到开发分支,然后重新开始。现在你有一个新的画布可供使用.Overwriting由版本控制系统和维护者处理。你不用担心。
对于资源,您不希望使用来自公共服务器的资源来阻止本地开发系统。版本控制系统也有“忽略列表”,以防止您克隆某些资源。克隆只有必要的东西。如果您正在开发天气小部件,则只需要天气小部件的图像。你不需要来自其他小部件的图像(除非必要)