不知道有沒有學習php或相關應用軟體的朋友,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和漏洞,所以後來又有修正了語法。
在更新版本時無法做到向下相容,既然無法做到,是不是要交給會做的
人去更新,而非做出一個沒有向下相容的更新版本,然後怪程式設計師
不做改變去支援新的版本,不知道大家懂不懂我意思,就好像許多大家
可以一起更新的平台,其中工程師技術參差不齊,誰知道改出些什麼毛
病,是否有一個方式讓新版本發行前,最後有一位技術能力較佳的資深
工程師能夠有能力去做最後的修正,避免向下不相容等情況發生.
舉個最簡單的例子好了,某大廠的手機發布新版本平台,在台上向大家
展示從舊版本更新到新版本全過程,前面介紹了許多新版本的好處,在
台上示範更新過程,並請大家倒數,結果是最後出現錯誤畫面,然後製作
新版本平台的工程師說,新版本的平台要調如何如何的參數才會work,
請問,大家看出問題在哪了嗎?新版本平台再如何優秀,都是一個failed
的設計.
內文搜尋

X