CakePHP更新按钮

时间:2014-01-23 13:11:57

标签: php cakephp cakephp-2.0

我正在构建一个人们可以在其托管上安装的CakePHP应用程序。 与此同时,我仍在研究应用程序,因此我希望人们只需单击更新按钮即可更新它。 从我在Controller中编写新代码的那一刻起,制作新的组件,......,我将其推送到“源服务器”,然后点击更新,然后他们必须在他们的服务器上拥有所有这些更新的代码。 我正在考虑编写一个执行git pull / fetch的exec(命令行),但不是每个主机都安装了git,所以这不是最好的解决方案。 有人可以帮我解决这个问题吗?

提前致谢,

亚伦

2 个答案:

答案 0 :(得分:1)

您需要实现一个包系统:您的php脚本将下载一个zip文件,其中包含来自源的所有代码,将其解压缩到临时文件夹中,读取元数据文件,该文件告诉您的脚本插件或应用程序的版本代码是,将其与正在运行的版本进行比较,可能会执行一些安全检查,如校验和,或者您是否希望实现签名检查。检查成功后,您将不得不用包中的文件替换现有文件。

如果您保留以前版本的zip,您甚至可以选择进行回滚。不要忘记您的更新代码也需要一种方法来触发数据库迁移。我会开发一个“Package”或“PluginManager”插件来完成所有这些。事件系统可用于在安装/卸载内容时触发事件。

Wordpress以这种方式做到了,你可能想看看它做了什么,但我不建议采用任何一个非常难看的wordpress代码,只是使用这个概念。

答案 1 :(得分:0)

与joomla,wordpress一样,您可以创建安装包,可以检查当前版本并检查服务器版本。    stept2
    压缩后,它创建数据库和文件备份
    step3从临时目录下的服务器下载pakedge     step4用旧版本替换新版本     步骤5如果成功更新,则从临时目录中删除pkg并删除旧文件备份
    步骤6如果失败则替换站点sitebackup