デバッグでログをとるときは、ログを出力した場所であるソースコードのファイル名、関数名、行数がわかると便利です。何かいい手はないかと探していたら、ありました♪メモしておきます!
ポイント
- __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 でなくても、使えそうですね。まだ試していませんが、楽しみです。