yii 500错误页面的设置

yii 500错误页面的设置

yii 500错误页面的设置

yii2自定义500错误

 由于项目想加预警监控,有一块儿是涉及到程序内部错误的500,这样的错误级别比较高,所以就需要捕获这样的错误,顺便自定义了一把视图样式

推荐学习:yii框架

 看了这篇博客,知道了如何去自定义自己错误页面 : http://tech.lubanr.com/2015/12/12/yii2-0框架的错误和异常处理机制/

 如果我们需要定制自己的异常处理方式,需要做的就是继承yiibaseErrorHandler,写一个定制的renderException,最后在$config中定制自己的errorHandler

1.创建ErrorHandler 继承这个yiibaseErrorHandler抽象类,然后定义这个父类中的抽象方法

<?php namespace commoncomponentexception; /**  * User: szliugx@gmail.com  * Date: 2016/9/20  * Time: 14:24  */ use yii; use yiibaseErrorHandler as BaseErrorHandler; use commoncomponentearlywarningEarlyWarning; class ErrorHandler extends BaseErrorHandler {     public $errorView = &#39;@app/views/errorHandler/error.php&#39;;     public function renderException($exception)     {         if(Yii::$app->request-&gt;getIsAjax()){             exit( json_encode( array('code' =&gt;$exception-&gt;getCode(),'msg'  =&gt;$exception-&gt;getMessage()) ));         }else{             //将500的代码,发送监控预警             if(!empty($exception-&gt;getCode()) &amp;&amp; $exception-&gt;getCode() ==8){                 $params = [];                 $params['projectName'] = "oct-youban";                 $params['level'] = 5;                 $params['title'] = "500:".$exception-&gt;getMessage();                 $params['value'] = $exception-&gt;getCode();                 $params['message'] = $exception-&gt;getFile().":".$exception-&gt;getLine();                 $params['bizcode'] = 8;                 $params['subcode'] = 8001;                 EarlyWarning::WarninApi($params);             }             echo  Yii::$app-&gt;getView()-&gt;renderFile($this-&gt;errorView,['exception' =&gt; $exception,],$this);         }     } }

 

2.创建视图文件 : @app/views/errorHandler/error.php

<?php /**  * User: szliugx@gmail.com  * Date: 2016/9/20  * Time: 15:23  */ ?>nbsp;html&gt;       <meta>     <meta>     <meta>     <meta>     <meta>     <meta>     <meta>     <meta>     <title> <?php  if(!empty($exception->getCode())&amp;&amp;($exception-&gt;getCode() == 8)){echo "出错啦";}else{ echo $exception-&gt;getMessage();}?&gt;</title>     <link><div>     <div></div>     <div>         <p><?php  if(!empty($exception->getCode())&amp;&amp;($exception-&gt;getCode() == 8)){echo "出错啦";}else{ echo $exception-&gt;getMessage();}?&gt;</p>     </div> </div>  

 

3.修改应用的配置文件:@app/config/main.php

        'errorHandler' =&gt; [             //'errorAction' =&gt; 'site/error',             'class' =&gt; 'commoncomponentexceptionErrorHandler',         ],

 

修改上面三处,就能达到想要的目的,效果如下:

500错误页:    

yii 500错误页面的设置

404错误页 : 

 yii 500错误页面的设置

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享