コード例 #1
0
    function testRegisterFromFile()
    {
        $rnd = mt_rand();
        $contents = <<<EOD
<?php
/**
 * @filter foo_{$rnd}
 * @aliases foo1_{$rnd}, foo2_{$rnd} 
 */
class Foo{$rnd}Filter extends lmbMacroFilter{}

/**
 * @filter bar_{$rnd}
 */
class Bar{$rnd}Filter extends lmbMacroFilter{}
EOD;
        file_put_contents($file = LIMB_VAR_DIR . '/filters/' . $rnd . '.filter.php', $contents);
        $filter_info1 = new lmbMacroFilterInfo("foo_{$rnd}", "Foo{$rnd}Filter");
        $filter_info1->setAliases(array("foo1_{$rnd}", "foo2_{$rnd}"));
        $filter_info1->setFile($file);
        $filter_info2 = new lmbMacroFilterInfo("bar_{$rnd}", "Bar{$rnd}Filter");
        $filter_info2->setFile($file);
        $dictionary = new lmbMacroFilterDictionary();
        $dictionary->registerFromFile($file);
        $this->assertEqual($dictionary->findFilterInfo("foo_{$rnd}"), $filter_info1);
        $this->assertEqual($dictionary->findFilterInfo("foo1_{$rnd}"), $filter_info1);
        $this->assertEqual($dictionary->findFilterInfo("bar_{$rnd}"), $filter_info2);
    }
コード例 #2
0
 static function instance()
 {
     if (self::$instance) {
         return self::$instance;
     }
     self::$instance = new lmbMacroFilterDictionary();
     return self::$instance;
 }
コード例 #3
0
 protected function _createCompiler()
 {
     lmb_require('limb/macro/src/compiler/*.interface.php');
     lmb_require('limb/macro/src/compiler/*.class.php');
     $tag_dictionary = lmbMacroTagDictionary::instance();
     $filter_dictionary = lmbMacroFilterDictionary::instance();
     $tag_dictionary->load($this->config);
     $filter_dictionary->load($this->config);
     return new lmbMacroCompiler($tag_dictionary, $this->locator, $filter_dictionary);
 }
コード例 #4
0
{
    function getValue()
    {
        if (!isset($this->params[0])) {
            return 'trim(' . $this->base->getValue() . ')';
        } else {
            return 'trim(' . $this->base->getValue() . ', ' . $this->params[0] . ')';
        }
    }
}
$foo_filter_info = new lmbMacroFilterInfo('uppercase', 'MacroFilterFooTest');
$foo_filter_info->setFile(__FILE__);
$zoo_filter_info = new lmbMacroFilterInfo('trim', 'MacroFilterZooTest');
$zoo_filter_info->setFile(__FILE__);
lmbMacroFilterDictionary::instance()->register($foo_filter_info);
lmbMacroFilterDictionary::instance()->register($zoo_filter_info);
class lmbMacroFiltersTest extends lmbBaseMacroTest
{
    function testFilter()
    {
        $code = '{$#var|uppercase}';
        $tpl = $this->_createMacroTemplate($code, 'tpl.html');
        $tpl->set('var', 'hello');
        $out = $tpl->render();
        $this->assertEqual($out, 'HELLO');
    }
    function testFilterChain()
    {
        $code = '{$#var|trim|uppercase}';
        $tpl = $this->_createMacroTemplate($code, 'tpl.html');
        $tpl->set('var', '  hello  ');