首頁 >後端開發 >php教程 >php在線更新解決方案

php在線更新解決方案

WBOY
WBOY原創
2016-08-04 09:21:572530瀏覽

目前的需求場景如下:

我開發一個擴展,運行在各個開源的cms系統,例如wordpress,discuz等等。

現在假如一個用戶安裝使用我們的產品,我們這邊發新版本,提示用戶更新,用戶點一個按鈕,然後瞬間升級到新版本了。用戶表示很滿意。

用戶是滿意了,但是我們這邊要完成這個動作,我們必須為每個開源cms開發自動升級系統。這個系統我開發過,對比版本啊,下載檔案啊,什麼的,感覺還是挺麻煩的,單一cms還可以,但是以後擴展到很多個cms,我們都要針對這套cms開發這個東西,那工作量就十分巨大了。所以,我現在希望發展一套公用的機制,能應用到所有的cms系統裡面,有什麼好的方法嗎?

──────────────────────────

我現在想到了一個方法。首先實現這個功能的困難在於,一個php檔案不可能自己替換自己。也就是這個運行的php檔案不可能把自己刪除或修改自己的原始碼。

所以,必須有個檔案是扮演這個修改別人的角色。他自己的東西不動,他的存在就是為了改變別人。

例如這個擴充下面有a、b、c三個檔。當使用者點擊升級,發送一個ajax請求,直接訪問運行c文件,c文件是獨立運行的,不依賴其他文件而存在。這樣,他可以對a、b這些檔案就行修改、刪除等等,也就達到了自動更新的目的,而所有的cms擴展,我只要在每個目錄下面放一個檔案c,那就好了,這個工作量是不是倍增的減少了?

這個方案可行嗎?

回覆內容:

目前的需求場景如下:

我開發一個擴展,運行在各個開源的cms系統,例如wordpress,discuz等等。

現在假如一個用戶安裝使用我們的產品,我們這邊發新版本,提示用戶更新,用戶點一個按鈕,然後瞬間升級到新版本了。用戶表示很滿意。

用戶是滿意了,但是我們這邊要完成這個動作,我們必須為每個開源cms開發自動升級系統。這個系統我開發過,對比版本啊,下載檔案啊,什麼的,感覺還是挺麻煩的,單一cms還可以,但是以後擴展到很多個cms,我們都要針對這套cms開發這個東西,那工作量就十分巨大了。所以,我現在希望發展一套公用的機制,能應用到所有的cms系統裡面,有什麼好的方法嗎?

──────────────────────────

我現在想到了一個方法。首先實現這個功能的困難在於,一個php檔案不可能自己替換自己。也就是這個運行的php檔案不可能把自己刪除或修改自己的原始碼。

所以,必須有個檔案是扮演這個修改別人的角色。他自己的東西不動,他的存在就是為了改變別人。

例如這個擴充下面有a、b、c三個檔。當使用者點擊升級,發送一個ajax請求,直接訪問運行c文件,c文件是獨立運行的,不依賴其他文件而存在。這樣,他可以對a、b這些檔案就行修改、刪除等等,也就達到了自動更新的目的,而所有的cms擴展,我只要在每個目錄下面放一個檔案c,那就好了,這個工作量是不是倍增的減少了?

這個方案可行嗎?

想到一個大概的思路:

首先建議分大版本更新以及補丁更新的,大版本更新如果比較複雜還是得下載文件覆蓋文件的方式人工進行。

小版本更新,可以建立一個通用的更新部署方式:
客戶端統一更新請求到中心伺服器端的處理更新的介面或入口文件,透過入口文件根據客戶端提交的本地環境系列數據,動態產生升級包以及部署的JSON設定文件,客戶端接收好以後讀取這個JSON然後升級資料庫、替換文件等等,這樣伺服器端只要不斷的維護版本升級以後各種CMS升級規則就可以。

話說回來,工作量還是龐大!

composer!
composer!
composer!
!!!!!!!!

思維真僵化。

既然PHP不能改自己,那就改配置文件,或改資料庫啊,問題不就解決了。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn