亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

項(xiàng)目切換PHP7.1.15

tuniutech / 2435人閱讀

摘要:也可以接入項(xiàng)目打包測(cè)試流程做代碼檢測(cè)。擴(kuò)展替換以后廢棄了和擴(kuò)展,項(xiàng)目中使用的使用的類(lèi)使用的是已經(jīng)廢棄的擴(kuò)展使用擴(kuò)展做兼容替換。測(cè)試方案和大部分公司差不多,項(xiàng)目組劃分了線下開(kāi)發(fā)環(huán)境預(yù)發(fā)布環(huán)境和生產(chǎn)環(huán)境三個(gè)環(huán)境。

項(xiàng)目由PHP5.5切換至PHP7.1.15

背景

從2015年鳥(niǎo)哥的技術(shù)分享,我們知道PHP7是對(duì)底層實(shí)現(xiàn)得一次完全重構(gòu),函數(shù)調(diào)用機(jī)制和內(nèi)存管理等很多方便做了優(yōu)化,使PHP性能有了很大的提升,至今PHP7經(jīng)歷了多個(gè)版本的迭代,常用的擴(kuò)展和插件也基本做到兼容了PHP7,升級(jí)PHP7的難度越來(lái)越低。

隨著閃貸業(yè)務(wù)的快速發(fā)展,推廣業(yè)務(wù)和API接口的代碼變得越來(lái)越復(fù)雜,頁(yè)面響應(yīng)時(shí)間變得越來(lái)越慢,一定程度上影響到用戶的訪問(wèn)體驗(yàn)。因此最近花費(fèi)了很多精力在優(yōu)化網(wǎng)站的性能上,力求使用戶得到更好的體驗(yàn)。升級(jí) PHP 7 作為其中一個(gè)重要環(huán)節(jié),取得了可觀的效果,后端 web 服務(wù)器的負(fù)載和核心頁(yè)面的響應(yīng)時(shí)間都降低了很多。

PHP代碼升級(jí)

從PHP官方升級(jí)文來(lái)看,PHP7相較于PHP5語(yǔ)法基本改變不大,做到了向后99%的兼容,但是項(xiàng)目中還是有很多編碼不規(guī)范或者使用建議廢除的函數(shù)導(dǎo)致的不兼容,使用的ThinkPHP3.1框架也有很多不兼容的地方:

preg_replace的e修正符的棄用,使用preg_replace_callback函數(shù)替代,例如:

preg_replace("/_([a-zA-Z])/e", "strtoupper("1")", $name);替換為
preg_replace_callback("/_([a-zA-Z])/", function($r) {return strtoupper($r[1]);},$name)

eregi函數(shù)的棄用,使用preg_match函數(shù)配合/i修正符替換

ereg函數(shù)使用preg_match

類(lèi)名稱(chēng)和方法名同名會(huì)被解析為構(gòu)造函數(shù),PHP7以后會(huì)報(bào)錯(cuò),使用__construct替換

方法中必傳參數(shù)沒(méi)有傳,PHP5會(huì)報(bào)警告,但是項(xiàng)目會(huì)繼續(xù)執(zhí)行,但是PHP7會(huì)直接報(bào)錯(cuò)誤終止程序運(yùn)行

PHP7對(duì)間接變量的解析順序和PHP5的解析順序不一致,若想保持一致使用{}保證解析順序

 $foo->$bar["baz"]   // 解釋為 ($foo->$bar)["baz"] 替換為$foo->{$bar["baz"]}
$foo->$bar["baz"]() // 解釋為 ($foo->$bar)["baz"]() 替換為$foo->{$bar["baz"]}()
Foo::$bar["baz"]() // 解釋為 (Foo::$bar)["baz"]() 替換為Foo::{$bar["baz"]}()

使用 php7cc 輔助進(jìn)行代碼檢查,php7cc 可以檢查出來(lái)項(xiàng)目中大部分代碼不兼容的情況,然后輸出到文本中逐個(gè)文件做兼容處理。也可以接入項(xiàng)目打包測(cè)試流程做代碼檢測(cè)。

擴(kuò)展替換

PHP7以后廢棄了mysql和mongo擴(kuò)展,項(xiàng)目中使用的ucenter使用的db類(lèi)使用的是已經(jīng)廢棄的mysql擴(kuò)展,使用msyqli擴(kuò)展做兼容替換。

因?yàn)閙ongo擴(kuò)展在項(xiàng)目中使用太多,而且和mongodb擴(kuò)展的API一點(diǎn)都不兼容,若是切換必須重寫(xiě)整個(gè)底層訪問(wèn)接口,工程量太大,所以使用了 mongo-php-adapter,它是基于 ext-mongodb 的 API 寫(xiě)的 ext-mongo 的適配器,可以不對(duì)代碼進(jìn)行任何修改,就遷移到 ext-mongodb 上,遷移成本低了很多。

測(cè)試方案

和大部分公司差不多,項(xiàng)目組劃分了線下開(kāi)發(fā)環(huán)境、預(yù)發(fā)布環(huán)境和生產(chǎn)環(huán)境三個(gè)環(huán)境。一個(gè)需求從開(kāi)發(fā)到上線,一般經(jīng)過(guò)幾個(gè)步驟:工程師在統(tǒng)一的線下開(kāi)發(fā)環(huán)境完成開(kāi)發(fā)和簡(jiǎn)單的測(cè)試;再部署到預(yù)發(fā)布環(huán)境,由 測(cè)試進(jìn)行統(tǒng)一的測(cè)試和回歸;最后,再正式部署到生產(chǎn)環(huán)境上。我們?cè)谏?jí)部署 PHP 7 時(shí),也是按這樣的順序遞進(jìn)的:

升級(jí)線下開(kāi)發(fā)環(huán)境,包括擴(kuò)展升級(jí)和代碼升級(jí),進(jìn)行測(cè)試;

升級(jí)預(yù)發(fā)布環(huán)境,測(cè)試;

灰度測(cè)試生產(chǎn)環(huán)境,抓取錯(cuò)誤日志分析,穩(wěn)定運(yùn)行一段時(shí)間,再全量升級(jí)生產(chǎn)環(huán)境。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28420.html

相關(guān)文章

  • ios微信下vue項(xiàng)目組件切換并自動(dòng)播放音頻的解決方案

    摘要:最近在做一個(gè)英語(yǔ)答題項(xiàng)目項(xiàng)目需求是通過(guò)答題取的成績(jī)答題的題型是分為聽(tīng)音選圖看圖選詞和填空題項(xiàng)目總共分為了個(gè)頁(yè)面開(kāi)始頁(yè)答題頁(yè)和結(jié)束頁(yè)面答題頁(yè)關(guān)于每種題型我做了相應(yīng)的組件每次切換題目的時(shí)候顯示對(duì)應(yīng)的的組件要求聽(tīng)音選圖的時(shí)候會(huì)自動(dòng)播放音頻慣例下的 最近在做一個(gè)英語(yǔ)答題項(xiàng)目 , 項(xiàng)目需求是通過(guò)答題取的成績(jī) , 答題的題型是分為 , 聽(tīng)音選圖 , 看圖選詞 , 和填空題 . 項(xiàng)目總共分為了3個(gè)頁(yè)...

    LinkedME2016 評(píng)論0 收藏0
  • webpack+vue項(xiàng)目實(shí)戰(zhàn)(五,監(jiān)聽(tīng)路由,實(shí)現(xiàn)同個(gè)頁(yè)面不同狀態(tài)的切換

    摘要:好了,閑話不多說(shuō)今天要說(shuō)的時(shí)利用監(jiān)聽(tīng)路由的方式,實(shí)現(xiàn)同個(gè)頁(yè)面不同狀態(tài)的切換。只要等于,那么頁(yè)面就是待確認(rèn)回款頁(yè)面進(jìn)入待確認(rèn)回款頁(yè)面中,回款狀態(tài)的篩選標(biāo)簽要加上。 1.前言 今天發(fā)完這一篇,就要這個(gè)系列告一段落了!以后如果有什么要補(bǔ)充的會(huì)繼續(xù)補(bǔ)充!因?yàn)樵诤笈_(tái)管理項(xiàng)目上,搭建的話,主要就是這樣了!還有的一些是具體到交互的處理,那個(gè)是要根據(jù)后端的需求,來(lái)進(jìn)來(lái)比較細(xì)化的工作,我在這里就不說(shuō)了!...

    guyan0319 評(píng)論0 收藏0
  • 引用兩個(gè)或多個(gè)數(shù)據(jù)庫(kù)里的數(shù)據(jù),項(xiàng)目數(shù)據(jù)庫(kù)的配置方法

    摘要:解決辦法可以在使用完切換數(shù)據(jù)庫(kù)的方法拿到需要的數(shù)據(jù)后,再次調(diào)用方法切換回接下來(lái)需要用到的數(shù)據(jù)庫(kù)。 1、首先配置兩個(gè)數(shù)據(jù)源(數(shù)據(jù)庫(kù))以及一個(gè)動(dòng)態(tài)數(shù)據(jù)庫(kù): ...

    hqman 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<