• 4

php更新版本的思考模式

不知道有沒有學習php或相關應用軟體的朋友,php新版本沒有
向下支援的更新模式,他的思考模式是什麼?
如果有一個舊的軟體程式在某版本的php上面跑,php一更新,那
舊的程式不相容不就掛掉在那邊,請問大家不覺得很奇怪嗎?
2017-10-05 16:59 發佈

bmw_m3 wrote:
不知道有沒有學習php...(恕刪)



PHP舊版程式在新版上執行

最大最大的差異大概

short_open_tag 設定在 off


應該不會有其他問題

那只是

<? 和 <?php 的差異

貓老闆
應該不是只有一個地方需要修改,就算是只有一個地方需要修
改好了,那也是不對,無論是手動更新或自動更新,那裡面的程
式不就自己掛掉,真的不知道php更新團隊在想什麼?
PHP 新版大致向下相容舊版,只有一些情況必須做兼容性調整

一些 全域變數 (global variable)、system 變數,因為資安考量,被發現有漏洞可鑽,會導致資料被竊,或網站被注入攻擊。廢止繼續支援,或預設改為 off 關閉,要去 php.ini 配置檔中打開才能用。

另外還有 物件導向 部份,7.x 和 5.x 有差異。5.x 的物件導向不算完整,有點半實驗性質的,7.x 才完善了物件導向,語法上也更嚴謹了。如果在 5.x 寫好的物件導向程式碼,有可能要稍做修改才能在 7.x 下運行。


新版竟然沒 100% 完全支援舊版,大都會感到奇怪。

作者開發團隊這究竟是怎樣的思路,為何會這樣任意妄為胡搞。

原因就是:
主要為了安全性考量,廢除了以前沒想清楚就隨便添加上去的便利功能。或隨著網路發展,駭客愈來愈刁鑽,以前想不到的入侵手法,也被運用出來。

嚴重安全問題的功能被直接廢除。不嚴重的改為預設關閉,使用者仍是可以打開功能來使用,但打開所產生的風險,由使用者自負。

算是一種折衷辦法,作者開發團隊必須對這程式語言的安全性負責,但直接就斷了舊有程式碼完全無法運行也不好,所以提供了經過更改設定仍是可以使用的方法。


次之是一些新型態的寫作架構,比如:物件導向

當初PHP面市時的年代,這種新型態的架構還不是那麼明朗,PHP作者也沒想到要加入這麼複雜的架構,當初就只是想要提供除了 ASP 外的另一種免費開源網頁腳本程式的選擇。

ASP 費用昂貴,被微軟壟斷,封閉非開源,且最糟糕是無法跨平台,無法在 unix-like 作業系統下運行(後來有一些像 mono 之類的反組譯工程破解出來的相容模組,但不是 100% 相容)

而隨著 JSP 的加入,還有物件導向環境的發展,現在程式語言沒物件導向,可以說整個遜掉了,缺乏效率。

PHP 5.X版開始嘗試加入物件導向,後來 7.X 才完善。中間經過發展,也是察覺到當初加入時有些地方欠缺考量,語法不夠嚴謹,易產生BUG和漏洞,所以後來又有修正了語法。
不是PHP的思考模式是什麼的問題?

而是你更新的思考模式問題,原有穩定的系統,不見得要跟著更新成最新版本。

如果要更新,本來就要檢測相容問題了。
所以不是為了效能,而是因為安全性,不過無論是為了什麼,網站已經
先掛掉,邏輯上仍然說不過去,不知道其他種類的程式會不會有類似情
況,難怪老是有事情可以處理.

bmw_m3 wrote:
所以不是為了效能,而...(恕刪)


沒這麼難吧

如果都懂php程式語言了

把舊版程式改成新版可用應該不會很難


除非網站架構很龐大?? ERP??CRM??

如果網站架構很龐大 那應該要做的事情就是避免升級跟獨立補PHP漏洞



我是還沒想過升級的理由..

況且現在SERVER PHP多版本共存也做的到

切來切去也方便O_O
貓老闆
"避免升級"與"加強安全"這兩者互相違背,更新當然是必要的,問題是
在更新版本時無法做到向下相容,既然無法做到,是不是要交給會做的
人去更新,而非做出一個沒有向下相容的更新版本,然後怪程式設計師
不做改變去支援新的版本,不知道大家懂不懂我意思,就好像許多大家
可以一起更新的平台,其中工程師技術參差不齊,誰知道改出些什麼毛
病,是否有一個方式讓新版本發行前,最後有一位技術能力較佳的資深
工程師能夠有能力去做最後的修正,避免向下不相容等情況發生.
舉個最簡單的例子好了,某大廠的手機發布新版本平台,在台上向大家
展示從舊版本更新到新版本全過程,前面介紹了許多新版本的好處,在
台上示範更新過程,並請大家倒數,結果是最後出現錯誤畫面,然後製作
新版本平台的工程師說,新版本的平台要調如何如何的參數才會work,
請問,大家看出問題在哪了嗎?新版本平台再如何優秀,都是一個failed
的設計.


bmw_m3 wrote:
'避免升級'與'加...(恕刪)



懂你的意思

但你用的就是PHP

用PHP就是要自己補洞

補洞不升級的方法也很多

為何修補安全性漏洞一定得升級@@?誰給你的錯覺?

你知道PHP的核心程式碼是公開的嗎


最後 我只覺得你在抱怨

你並沒有想要找問題根解決問題


而且 你在講一個根本不可能會有結果的故事


人不可能不犯錯 更何況是人寫出來的程式

與其在這罵PHP 我倒想知道 你心中理想的程式語言是哪種 講出來讓大家心服口服一下吧
貓老闆
沒有在罵php,只是覺得還蠻扯的現象,還是得注意類似的狀況,看到
文章慢慢又想要比較誰比較熟,誰比較了解php,我想不必了,大家都
很強,強不強是本討論最沒必要的,版本向下相容才是本文討論重點
,當然未來docker技術成熟後,希望可以處理這部分問題,某些部份來
講有機會自動彌補這些荒唐的現象,也許未來docker會取代掉系統環
境設定與版本向下不相容的部分,大家只需專注在程式的撰寫與軟體
的安裝即可,也省去遇到這些狗屁倒灶現象的機會.
  • 4
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?