kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

TOOL更新_AppLogr.php修正

TOOL更新_AppLogr.php修正
・画面を走らせたときsmartyのtemplatesは何使っているのかを知りたいということになった。単体テストとして「Smarty.class.php」の1104行目「display」メソッドにデバックを入れてみた。(templates名わかるのが便利なら「Smarty.class.php」を継承して「display」メッソドを書き換えようかな。とも思う。)

■Smarty.class.php 単体テストとして、ためしにデバック入れた。
    /**
     * executes & displays the template results
     *
     * @param string $resource_name
     * @param string $cache_id
     * @param string $compile_id
     */
    function display($resource_name, $cache_id = null, $compile_id = null)
    {
        // デバック start
        $logger = new AppLogr(DIR_LOG, true);
        $logger->outDbgLog('[$resource_name]', $resource_name);    // $resource_name
        $logger->outDbgLog('[$this->_tpl_vars]', $this->_tpl_vars);    // $this->_tpl_vars
        // デバック end

        $this->fetch($resource_name, $cache_id, $compile_id, true);
    }

こんな感じで「20100722_debug.log」にでた。ちなみに、「$this->_tpl_vars」はsmartyでassignした変数たち。

2010/07/22 00:03:11 DEBUG (7): 0.03381800 [resource_name]: class.php 
line=1108 : view/admin/logininfo/logininfoListView.html 

Smarty.class.php」でなく「class.php」になっている。という「AppLogr.php」のバグを見つけてしまった。そこでこんな風に3箇所修正した。(\.を追加しただけ。)

■AppLogr.php 修正
<<修正前 3箇所あり>>
$phpname = preg_match('/[_a-zA-Z0-9]+\.[^\.]+$/', ・・・
<<修正後 3箇所あり>>
$phpname = preg_match('/[_a-zA-Z0-9\.]+\.[^\.]+$/',  ・・・

ということで、今度は「Smarty.class.php」とでた。OK。

2010/07/22 00:04:59 DEBUG (7): 0.70954100 [resource_name]: Smarty.class.php 
line=1108 : view/admin/logininfo/logininfoListView.html 

■サイト:http://kazpgm.ddo.jp/
7/21 23:00-01:00 http://d.hatena.ne.jp/kazpgm/20100118/1263836416(TOOL更新_今日はLog出力クラスを作り始めた。)を修正した。