金曜日, 4月 19, 2013

PHPでJava風のprintStackTrace()を実現する方法

PHP では try-catch が使えます。

catchで捕まえた例外をどのように処理するかはまた人それぞれだとは思いますが、Java には printStackTrace() という便利な関数があります。

コールした関数を順に出力してくれる関数です。

ここではPHPで関数コールを出力する関数を実装してみました。

例外処理で呼び出すと、関数呼び出しのトレース文字列を出力します。

    try
      {
 // 関数本体
      }
    catch(Exception $e)
      {
 echo trace(debug_backtrace());
      }

関数のコールを順に出力するための関数です。

function trace($traceList)
{
  $html="";
  foreach($traceList as $debugInfo)
    {
      $pathInfo=pathinfo($debugInfo['file']);
      $baseName=$pathInfo['basename'];
      $funcName=$debugInfo['function'];
      $lineNum=$debugInfo['line'];
      $html.="@$funcName ($baseName: $lineNum)";
    }
  return $html;
}

Laravel サイトのアップグレード

 Laravel のサイトをアップグレードする機会がありましたので、その方法をここで書いておきたいと思います。かなり構成というか書き方が変わってきているので注意が必要です。 1. 新しいLaravelプロジェクトの作成 まずはクリーンなLaravel環境を作成します。 compo...