デバッグでログをとるときは、ログを出力した場所であるソースコードのファイル名、関数名、行数がわかると便利です。何かいい手はないかと探していたら、ありました♪メモしておきます!
ポイント
- __METHOD__ → クラス名::関数名
- __LINE__ → ファイル上の現在の行番号
使ってみた
CakePHP2 でお手軽に試してみます。せっかくですので、ポイントに掲載しなかった他の定数も試します。
app/Controller/SampleController.php
<?php
class SampleController extends AppController {
public function index() {
pr('__LINE__');
pr(__LINE__);
pr('__FILE__');
pr(__FILE__);
pr('__DIR__');
pr(__DIR__);
pr('__FUNCTION__');
pr(__FUNCTION__);
pr('__CLASS__');
pr(__CLASS__);
pr('__METHOD__');
pr(__METHOD__);
pr('__NAMESPACE__');
pr(__NAMESPACE__);
}
}
画面ではこんな感じで出ます。
おわりに
__METHOD__ と、__LINE__ を押さえておけば、どこで出力したかどうかわかりますね!べたに書く文にはログに組み込むととても便利そうです。
逆に共通関数などに組み込むときは、これではだめでしょうね。共通関数の行数やクラス、関数めいが出力されてしまうでしょうから。課題です。
お世話になったページです。ありがとうございます。
また、課題を解決するのに、このページが参考になりそうです。CakePHP でなくても、使えそうですね。まだ試していませんが、楽しみです。

