소개
나는 외부 라이브러리를 사용하여 PHP 코드(예: firePHP)를 디버깅하는 방법에 대한 여러 기사를 읽었습니다. 이 기사를 읽고 나면 Yii에서 이러한 외부 라이브러리를 사용할 필요가 없다는 것을 알게 될 것입니다.
Yii에는 강력한 로깅 클래스가 내장되어 있습니다. 로깅 문서를 읽으면 어떤 로그를 기록할지 결정할 수 있다는 것을 알 수 있습니다. 이것이 정확히 우리가 할 일입니다. CWebLogRoute를 사용하여 Yii 버전의 FirePHP를 생성하는 것입니다.
구성
protected/config/main.php 구성 파일에 구성 추가:
<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>
사용 준비, 이제 추적해 보겠습니다. 테스트해 보겠습니다. 변수는 다음과 같습니다:
<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>
Yii의 FirePHP 함수
위 코드는 작성하기에 비교적 길기 때문에 강력한 제안을 사용하고 index.php 페이지에 추가하겠습니다. FirePHP와 같은 기능:
<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>
좋아요, 모든 것이 완료되었습니다. 우리 디버거에서는 외부 클래스가 사용되지 않습니다.
추가
이 방법은 chromephp Plug-를 설치할 필요가 없습니다. 에서는 Firebug 브라우저를 사용할 수 있으며 Opera, Chrome, Firefox 등이 적용 가능합니다.
').addClass('사전 번호 매기기').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });위 내용은 Yii가 CWebLogRoute를 사용하여 경로 및 eblog 콘텐츠를 포함한 변수를 기록하고 디버깅하는 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.