Home > Backend Development > PHP Tutorial > yii How to use CWebLogRoute to log and debug variables route delete route add default gw linux route ad

yii How to use CWebLogRoute to log and debug variables route delete route add default gw linux route ad

WBOY
Release: 2016-07-29 08:48:34
Original
1338 people have browsed it

Introduction

I have read several articles about using external libraries to debug PHP code (such as: firePHP). After reading this article you will find that there is no need to use these external libraries in Yii.
Yii has powerful logging classes built in. If you read the logging documentation, you can see that we can decide what logs we want to log, which is exactly what we are going to do, using CWebLogRoute to create a Yii version of FirePHP.

Configuration

Add configuration in our protected/config/main.php configuration file:

<code><span>'log'</span>=><span>array</span>(
    <span>'class'</span>=><span>'CLogRouter'</span>,
    <span>'routes'</span>=><span>array</span>(
        <span>array</span>(
            <span>'class'</span>=><span>'CWebLogRoute'</span>,
            <span>//</span><span>// I include *trace* for the</span><span>// sake of the example, you can include</span><span>//</span><span>// more levels separated by commas</span><span>'levels'</span>=><span>'trace'</span>, 
            <span>//</span><span>// I include *vardump* but you</span><span>// can include more separated by commas</span><span>'categories'</span>=><span>'application.*,system.db.*,vardump'</span>, 
            <span>//</span><span>// This is self-explanatory right?</span><span>'showInFireBug'</span>=><span>true</span> ), 
        ),
),</code>
Copy after login

Use

Prepared, now let’s trace the variables to test it, as follows:

<code><span>public</span><span><span>function</span><span>actionTrace</span><span>()</span>{</span><span>$test</span> = <span>'This is a test'</span>;

    <span>$anotherTest</span> = <span>array</span>(<span>'one'</span>,<span>'two'</span>,<span>'three'</span>);

    <span>echo</span> Yii::trace(CVarDumper::dumpAsString(<span>$test</span>),<span>'vardump'</span>);

    <span>echo</span> Yii::trace(CVarDumper::dumpAsString(<span>$anotherTest</span>),<span>'vardump'</span>);

    <span>echo</span> Yii::trace(CVarDumper::dumpAsString(<span>$this</span>),<span>'vardump'</span>);
}</code>
Copy after login

Yii’s FirePHP function

above The code is relatively long to write, let's use Qiang's suggestion, let me write a FirePHP function like this on the index.php page:

<code><span>public</span><span><span>function</span><span>actionTrace</span><span>()</span>
{</span><span>//</span><span>// In your index.php or your globals.php file</span><span><span>function</span><span>fb</span><span>(<span>$what</span>)</span>
    {</span><span>echo</span> Yii::trace(CVarDumper::dumpAsString(<span>$what</span>), <span>'vardump'</span>);
    }

    <span>// </span><span>// using the above examples now we could</span><span>$test</span> = <span>'This is a test'</span>;

    fb(<span>$test</span>);
}</code>
Copy after login

OK, it's all done, no external classes are used in our debugger.

Supplement

This method does not require the installation of the chromephp plug-in, it can be used in firebug browsers, opera, chrome, firefox, etc.

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

The above introduces how Yii uses CWebLogRoute to record and debug variables, including route and eblog content. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template