日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【yii2调试神器】yii2-debug能力分析和配置项解析

發布時間:2025/3/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【yii2调试神器】yii2-debug能力分析和配置项解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

我們采用一問一答的方式,先來制定整個專題的情景,本次阿北去一家叫做“千度”的互聯網公司應聘yii2工程師,故事就在面試中。

角色介紹:

  • 我 靠顏值走天下。
  • 面試官老李 帶著眼睛的中年男人

你給我說說yii2-debug是個什么東西?

面對這樣的問題,我再一次思考,yii2-debug到底能干點啥?對于一個yii2的擴展,它實現不了像xdebug那樣強大的斷點功能,但是因為它來自于yii2,因此它能用最簡單的數據展示給你想要的東西,比如yii2每步都加載了什么模塊、都運行了哪些SQL語句、捕獲當前會員信息等等

相對比一行行看代碼,這才是我們需要的。

  • 全面# yii2-debug能讓你快速知道當前yii2版本、php版本、Http響應狀態、當前的控制器和action、內存占有量等等,實在是務必強大的小強。
  • 管事兒多# 通過Configuration面板可以快速查看當前yii2程序和PHP環境的配置,再也不用phpinfo()了。
  • F12# 不用使用F12了,通過Request面板能夠知道本次請求了的Headers、參數、相應數據以及SESSION會話等等。
  • 無處不在# 能展示系統帶的和你自己寫的log記錄,更好的是會告訴你某個日志來自于哪個文件的哪行。
  • 性能分析# 通過Profiling為你展示程序運行時間以及內存占有、還有詳情和曲線哈。優化代碼必備。
  • SQL# 一個頁面用了哪些SQL語句,具體的不要不要的,Database面板通通展示給你。
  • 資源我也管# Asset Bundles輕松的幫你分析出一個頁面加載的資源類。
  • 登陸不登錄# User面板幫你展示當前登陸會員的信息,方便你分析一些授權相關數據。
  • 路由分析# 當你對URL進行重寫的時候,Route面板實在是你診斷路由的最佳助手。

然后那?

面對老李這樣的發問,我大腦飛速,難道是我說的還不夠么?哦,還有,yii2-debug支持擴展能力,比如我們團隊可以開發一個專門用于我們自己的debug面板。

另外還有整合能力,yii2-debug能和PHPSTORM進行無縫整合。

我知道的就是這些。

老李不動表情的說了句:“好吧,這個問題先這樣,在問你一個小學三年級水平的問題”。

我們都知道yii2-debug是在web.php配置,而其本身就是一個模塊而已,你給我說說web.php都哪些項可能對yii2-debug有影響。

丫的,有本事你就整四年級的,這是考我yii2-debug配置問題啊,幸好哥之前做了功課。

的確,yii2-debug是一個模塊,因此我們也可以通過/index.php?r=debug來訪問它,我們先看看在web.php中yii2-debug的配置。

從代碼我們能知道以下幾件事情

  • yii2-debug是需要預加載的
  • yii2-debug能進行權限限制,比如只能本地或某個ip訪問,這個gii差不多。

特別說下預加載吧,我們都知道yii可以做到需要一個模塊的時候再調用,這也是yii性能很高的原因之一,但是yii2-debug作為一個整個yii2程序的調試擴展,它必須要在程序開始那一刻就加載進來。

如果你不信,可以看下yii2-debug的log面板,我截圖給你。

yii2預加載的庫并不多,開發模式下就log、yii2-debug、gii,生成環境下只有log一個而已,預加載完以后,才有路由解析等等。

另外一個地方會對yii2-debug有影響,就是日志的traceLevel問題,我們之所以能在yii2-debug的Log面板看到每個日志的出處,都是因為在web.php下有如下配置

'log' => ['traceLevel' => YII_DEBUG ? 3 : 0,'targets' => [['class' => 'yii\log\FileTarget','levels' => ['error', 'warning'],],], ],

就是其中的

'traceLevel' => YII_DEBUG ? 3 : 0,

3表示每一條日志記錄都會記錄與之相關的三層棧調用信息,0表示不記錄任何相關的棧調用信息,在開發模式下,traceLevel為3,因此你看到了日志的出處。

當然這一切并不用我們配置,系統默認就是這樣,而當我們部署程序到生產環境,traceLevel會自動因為Yii_DEBUG==false而變為0,不會發生性能上的損耗。

如果你忘記了,那還挺耗資源的。

最后要說明下面代碼

if(YII_ENV_DEV){//使用yii2-debug }

這里面的 YII_ENV_DEV 其實是一個bool型,它由判斷 YII_ENV === 'dev' 而來,而YII_ENV就在你的yii2入口文件index.php中。

defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev');// dev 和 prod

因此,當你部署yii2到生產環境那一刻,請修改上面代碼為

defined('YII_DEBUG') or define('YII_DEBUG', false); defined('YII_ENV') or define('YII_ENV', 'prod');

則一切安好。

?????

然后那?

“不錯不錯” 老李稍微點點頭,然后說道:“這些都是皮毛,我先去趟wc,一會回來繼續。”

好吧....腎不好的人都要常去洗手間,故事剛剛開始,下一篇為你講解老李wc后那精彩萬分的小強yii2-debug絕殺技和老李前列腺的問題。

轉載于:https://my.oschina.net/abei2017/blog/914784

總結

以上是生活随笔為你收集整理的【yii2调试神器】yii2-debug能力分析和配置项解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。