コード例 #1
0
require_once dirname(__FILE__) . '/lib/SimpleHelper.php';
$t = new lime_test(3);
class ProjectTemplateRenderer extends sfTemplateRenderer
{
    public function getEngine()
    {
        return $this->engine;
    }
    public function evaluate(sfTemplateStorage $template, array $parameters = array())
    {
    }
}
$loader = new sfTemplateLoaderFilesystem(array(dirname(__FILE__) . '/fixtures/templates/%name%.%renderer%'));
$engine = new sfTemplateEngine($loader);
$engine->set('foo', 'bar');
$engine->getHelperSet()->set(new SimpleHelper('foo'), 'bar');
// ->setEngine()
$t->diag('->setEngine()');
$renderer = new ProjectTemplateRenderer();
$renderer->setEngine($engine);
$t->ok($renderer->getEngine() === $engine, '->setEngine() sets the engine instance tied to this renderer');
// __call()
$t->diag('__call()');
$renderer = new ProjectTemplateRenderer();
$renderer->setEngine($engine);
$t->is($renderer->get('foo'), 'bar', '__call() proxies to the embedded engine instance');
// __get()
$t->diag('__get()');
$renderer = new ProjectTemplateRenderer();
$renderer->setEngine($engine);
$t->is((string) $renderer->bar, 'foo', '__get() proxies to the embedded engine instance');
コード例 #2
0
            return new sfTemplateStorageString($this->templates[$template . '.' . $renderer]);
        }
        return false;
    }
}
$loader = new ProjectTemplateLoader();
$renderer = new ProjectTemplateRenderer();
// __construct()
$t->diag('__construct()');
$engine = new ProjectTemplateEngine($loader);
$t->is($engine->getLoader(), $loader, '__construct() takes a loader instance as its second first argument');
$t->is(array_keys($engine->getRenderers()), array('php'), '__construct() automatically registers a PHP renderer if none is given');
$t->ok($engine->getHelperSet() instanceof sfTemplateHelperSet, '__construct() automatically creates a helper set if none is given');
$engine = new ProjectTemplateEngine($loader, array('foo' => $renderer));
$t->is(array_keys($engine->getRenderers()), array('foo', 'php'), '__construct() takes an array of renderers as its third argument');
$t->ok($renderer->getEngine() === $engine, '__construct() registers itself on all renderers');
$engine = new ProjectTemplateEngine($loader, array('php' => $renderer));
$t->ok($engine->getRenderers() === array('php' => $renderer), '__construct() can overridde the default PHP renderer');
$engine = new ProjectTemplateEngine($loader, array(), $helperSet = new sfTemplateHelperSet());
$t->ok($engine->getHelperSet() === $helperSet, '__construct() takes a helper set as its third argument');
// ->getHelperSet() ->setHelperSet()
$t->diag('->getHelperSet() ->setHelperSet()');
$engine = new ProjectTemplateEngine($loader);
$engine->setHelperSet(new sfTemplateHelperSet(array('foo' => $helper = new SimpleHelper('bar'))));
$t->is((string) $engine->getHelperSet()->get('foo'), 'bar', '->setHelperSet() sets a helper set');
// __get()
$t->diag('__get()');
$t->is($engine->foo, $helper, '->__get() returns the value of a helper');
try {
    $engine->bar;
    $t->fail('->__get() throws an InvalidArgumentException if the helper is not defined');