/** * TemplatesManager * * @return \Tlumx\View\TemplatesManager */ public function getTemplatesManager() { if (!$this->templatesManager) { $this->templatesManager = new TemplatesManager(); $templatesPaths = $this->getConfig('templates_paths', []); if ($templatesPaths) { $this->templatesManager->setTemplatePaths($templatesPaths); } $templates = $this->getConfig('templates', []); if ($templates) { $this->templatesManager->setTemplateMap($templates); } } return $this->templatesManager; }
public function testTemplates() { $tm = new TemplatesManager(); $this->assertEquals([], $tm->getTemplateMap()); $tm->setTemplateMap(['a' => 'a.phtml', 'b' => 'b.phtml']); $this->assertEquals(['a' => 'a.phtml', 'b' => 'b.phtml'], $tm->getTemplateMap()); $tm->addTemplate('c', __FILE__); $this->assertEquals(['a' => 'a.phtml', 'b' => 'b.phtml', 'c' => __FILE__], $tm->getTemplateMap()); $this->assertTrue($tm->hasTemplate('c')); $this->assertTrue($tm->hasTemplate('b')); $this->assertTrue($tm->hasTemplate('c')); $this->assertFalse($tm->hasTemplate('d')); $this->assertEquals(__FILE__, $tm->getTemplate('c')); $tm->clearTemplateMap(); $this->assertEquals([], $tm->getTemplateMap()); }
public function setUp() { $_SERVER = array('SERVER_NAME' => 'localhost', 'SCRIPT_NAME' => 'index.php'); $this->provider = new ServiceProvider(); $router = new Router(); $router->setRoutes(['my' => ['methods' => ['GET'], 'route' => '/my/{id}', 'handler' => [], 'filters' => ['id' => '([\\d-]+)'], 'child_routes' => ['my-sub' => ['methods' => ['GET', 'POST'], 'route' => '/sub/{p}', 'handler' => [], 'filters' => ['p' => '(\\d+)']]]]]); $this->provider->setRouter($router); $tm = new TemplatesManager(); $layout = __DIR__ . DIRECTORY_SEPARATOR . 'resources' . DIRECTORY_SEPARATOR . 'SomeModule' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'main.phtml'; $layout2 = __DIR__ . DIRECTORY_SEPARATOR . 'resources' . DIRECTORY_SEPARATOR . 'SomeModule' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'main2.phtml'; $tm->setTemplateMap(['main' => $layout, 'main2' => $layout2]); $tm->addTemplatePath('foo', __DIR__ . DIRECTORY_SEPARATOR . 'resources' . DIRECTORY_SEPARATOR . 'SomeModule' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'foo'); $this->provider->setTemplatesManager($tm); $this->provider->setConfig(['layout' => 'main']); $file = __DIR__ . DIRECTORY_SEPARATOR . 'resources' . DIRECTORY_SEPARATOR . 'SomeModule' . DIRECTORY_SEPARATOR . 'controllers' . DIRECTORY_SEPARATOR . 'FooController.php'; require_once $file; $class = 'Foo\\FooController'; $this->controller = new $class($this->provider); }