예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 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());
 }
예제 #3
0
 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);
 }