RhacoのTemplateParserについてのメモ

2005/11/19 08:17

※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】

RhacoのO/Rで動的にmodel系phpコードをジェネレートするために、Rhacoのテンプレートシステムを復習(ノードキュメントだからな、今のところ)。

タグパーサ系のクラス

今回は、htmlは関係ないので、TemplateParserを使用する。

RhacoのUnitTestを使用して、test.txtを処理してみた。

やはりWeb系のテンプレートを主に指向しているので、sgml系でないものを処理しようとするとちょっとテンプレートの見た目がビミョー。

以下超簡易サンプルコード

TemplateTest.php

 <?php
 define("RHACO_DIR","/open/workspace/rhaco/");
 require_once(RHACO_DIR."rhaco.php");

 define("LOG_DISP_LEVEL", "debug");

 Rhaco::import("test/UnitTest");

 Rhaco::import("tag/TemplateParser");

 class TemplateTest extends UnitTest {
   var $templateParser;


   function setUp() {
     $this->templateParser = new TemplateParser();
   }

   function testTemplateExec() {
     $list = array();
     $list[] = "x";
     $list[] = "y";
     $list[] = "z";
     $arg["testData"] = $list;
     $this->templateParser->setRequest($arg);
     print $this->templateParser->write("test/test.txt");
   }
 }
 new TemplateTest();
 ?>
test/test.txt

  test text for TemplateParser

    <loop class="testData" id="data">
      <if pattern="{$data} == 'x'">
        It's X!
      <else>
        It's not X!
      </if>
      {$data}:
    </loop>

  end
実行結果

  [Debug 2005/11/19 22:07:46]:[templateparser] view file [test/test.txt]
  test text for TemplateParser

              It's X!
          x:
              It's not X!
          y:
              It's not X!
          z:

  end

loop/for/ifタグの細かいアトリビュートについては別途メモしよう。

Prev Entry

Next Entry