假设我有一个存储在单个文件中的php类。如果在不同主机(甚至是不同用户)的多个项目中使用此类,则更新此类将是一个巨大的痛苦。
我可以想象这可以通过这个例程自动完成:
存储在单个存储库中的PHP类(或文件)。
在每个使用此类的主机上应该是一个cron作业来测试这些(这些)类(或多个文件)是否有任何更新。
如果是,则此文件正在下载并替换现有文件。
我可以自己做这一切,但我想应该有这样的即用型解决方案。我现有的存储库像github有这样的功能或任何其他......
问题:
上面描述的场景对于此功能是否最佳?
是否有任何现成的解决方案? (希望免费解决方案)
答案 0 :(得分:3)
我们使用composer来管理我们的依赖项,这些依赖项可以从私有存储库加载。在项目中开发共享类,然后将其设置为composer.json
内的下游项目的依赖项。更新上游项目(包含共享文件)后,下游项目可以通过运行$ composer update
您可以在composer.json
:
{
"require": {
"myname/myupstreamproject": "dev-master"
},
"repositories": [
{
"type": "git",
"url": "git@github.com:myname/myproject.git"
}
]
}
如果您在repo上使用标记,则可以使用相应的versioning syntax替换"dev-master"
,如果由于某种原因,您需要使用不同版本的共享文件来使用某些项目。 / p>
答案 1 :(得分:1)
检查使用rsync。 rsync可用于跨多个系统复制文件/文件夹,并且可以从源系统触发以部署更改(如果有)(增量)。或者,如果该类位于github或其他存储库系统中,请编写一个定期执行更新的自动化任务。