[limb-svn] r6767 - in 3.x/trunk/limb/macro: src tests/cases tests/cases/compiler

svn at limb-project.com svn at limb-project.com
Wed Feb 6 16:41:05 MSK 2008


Author: korchasa
Date: 2008-02-06 16:41:04 +0300 (Wed, 06 Feb 2008)
New Revision: 6767
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6767

Added:
   3.x/trunk/limb/macro/src/lmbMacroTemplateLocatorSimple.class.php
   3.x/trunk/limb/macro/tests/cases/compiler/lmbMacroTemplateLocatorSimpleTest.class.php
Modified:
   3.x/trunk/limb/macro/src/lmbMacroTemplateLocator.class.php
   3.x/trunk/limb/macro/tests/cases/compiler/lmbMacroTemplateTest.class.php
   3.x/trunk/limb/macro/tests/cases/lmbBaseMacroTest.class.php
Log:
-- lmbMacroTemplateLocatorSimple added

Modified: 3.x/trunk/limb/macro/src/lmbMacroTemplateLocator.class.php
===================================================================
--- 3.x/trunk/limb/macro/src/lmbMacroTemplateLocator.class.php	2008-02-06 12:06:00 UTC (rev 6766)
+++ 3.x/trunk/limb/macro/src/lmbMacroTemplateLocator.class.php	2008-02-06 13:41:04 UTC (rev 6767)
@@ -19,28 +19,28 @@
  */
 class lmbMacroTemplateLocator implements lmbMacroTemplateLocatorInterface 
 {
-  protected $config;
   protected $cache_dir;
   protected $scan_dirs;
   protected $toolkit;
 
   function __construct($config)
   {
-    $this->config = $config;
+    $this->cache_dir = $config['cache_dir'];
+    $this->scan_dirs = $config['tpl_scan_dirs'];    
     $this->toolkit = lmbToolkit :: instance();
   }
 
   function locateSourceTemplate($file_name)
-  {    
+  {
     if(!lmbFs :: isPathAbsolute($file_name))
-      return $this->toolkit->tryFindFileByAlias($file_name, $this->config['tpl_scan_dirs'], 'macro');
+      return $this->toolkit->tryFindFileByAlias($file_name, $this->scan_dirs, 'macro');
     elseif(file_exists($file_name))
       return $file_name;
   }
 
   function locateCompiledTemplate($file_name)
   {
-    return $this->config['cache_dir'] . '/' . md5($file_name) . '.php';
+    return $this->cache_dir . '/' . md5($file_name) . '.php';
   }
 }
 

Added: 3.x/trunk/limb/macro/src/lmbMacroTemplateLocatorSimple.class.php
===================================================================
--- 3.x/trunk/limb/macro/src/lmbMacroTemplateLocatorSimple.class.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/src/lmbMacroTemplateLocatorSimple.class.php	2008-02-06 13:41:04 UTC (rev 6767)
@@ -0,0 +1,43 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com 
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
+ */
+lmb_require('limb/macro/src/lmbMacroTemplateLocatorInterface.interface.php');
+/**
+ * class lmbMacroSimpleTemplateLocator.
+ *
+ * @package macro
+ * @version $Id$
+ */
+class lmbMacroTemplateLocatorSimple implements lmbMacroTemplateLocatorInterface
+{
+  protected $config;
+
+  function __construct($config)
+  {
+    $this->config = $config;
+  }
+
+  function locateSourceTemplate($file_name)
+  {                
+//    if(file_exists($file_name))
+//      return $file_name;
+    $file_path = $this->config['tpl_scan_dirs'].'/'.$file_name;
+    if(!file_exists($file_path))
+      throw new lmbMacroException('template file not found', array('template' => $file_path));
+    return $file_path;
+  }
+
+  function locateCompiledTemplate($file_name)
+  {
+    $file_path = $this->config['cache_dir'] . '/' . md5($file_name) . '.php';
+    if(!file_exists($file_path))
+      throw new lmbMacroException('compiled template file not found', array('compiled template' => $file_path));
+    return $file_path;
+  }
+}
+

Added: 3.x/trunk/limb/macro/tests/cases/compiler/lmbMacroTemplateLocatorSimpleTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/compiler/lmbMacroTemplateLocatorSimpleTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/macro/tests/cases/compiler/lmbMacroTemplateLocatorSimpleTest.class.php	2008-02-06 13:41:04 UTC (rev 6767)
@@ -0,0 +1,77 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com 
+ * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
+ */
+class lmbMacroTemplateLocatorSimpleTest extends lmbBaseMacroTest
+{  
+  public $template_name = 'foo.phtml';
+   
+  function testlocateSourceTemplate()
+  {
+    $config = $this->_createMacroConfig();
+    $config['tpl_scan_dirs'] = $config['tpl_scan_dirs'][0];
+         
+    $template_locator = new lmbMacroTemplateLocatorSimple($config);
+    try
+    {
+      $template = $template_locator->locateSourceTemplate($this->template_name);
+      $this->fail();
+    } 
+    catch (lmbMacroException $e) 
+    {      
+      $this->pass();
+    }
+    
+    $this->_createMacroTemplate('bar',$this->template_name);
+    
+    try
+    {
+      $template = $template_locator->locateSourceTemplate($this->template_name);
+      $this->pass();
+    } 
+    catch (lmbMacroException $e) 
+    {      
+      $this->fail();
+    }
+    
+    $this->assertEqual('bar', file_get_contents($template));    
+  }
+  
+  function testLocateCompiledTemplate()
+  {
+    
+    $config = $this->_createMacroConfig();
+         
+    $template_locator = new lmbMacroTemplateLocatorSimple($config);
+    try
+    {
+      $template = $template_locator->locateCompiledTemplate($this->template_name);
+      $this->fail();
+    } 
+    catch (lmbMacroException $e) 
+    {      
+      $this->pass();
+    }
+    
+    $compiled_file_name = md5($this->template_name);
+    file_put_contents($config['cache_dir'].'/'.$compiled_file_name . '.php', 'bar');
+    
+    try
+    {
+      $template = $template_locator->locateCompiledTemplate($this->template_name);
+      $this->pass();
+    } 
+    catch (lmbMacroException $e) 
+    {      
+      $this->fail();
+    }
+    
+    $this->assertEqual('bar', file_get_contents($template));
+  }
+}
+
+

Modified: 3.x/trunk/limb/macro/tests/cases/compiler/lmbMacroTemplateTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/compiler/lmbMacroTemplateTest.class.php	2008-02-06 12:06:00 UTC (rev 6766)
+++ 3.x/trunk/limb/macro/tests/cases/compiler/lmbMacroTemplateTest.class.php	2008-02-06 13:41:04 UTC (rev 6767)
@@ -11,7 +11,7 @@
 {  
   function testRenderTemplateVar()
   {
-    $view = $this->_createView('Hello, <?php echo $this->name;?>');
+    $view = $this->_createMacroTemplate('Hello, <?php echo $this->name;?>');
     $view->set('name', 'Bob');
     $this->assertEqual($view->render(), 'Hello, Bob');
   }
@@ -21,31 +21,17 @@
     if(ini_get('short_open_tag') == 1)
       echo __METHOD__ . " does not check anything, since short tags are On anyway\n";
 
-    $view = $this->_createView('Hello, <?=$this->name?>');
+    $view = $this->_createMacroTemplate('Hello, <?=$this->name?>');
     $view->set('name', 'Bob');
     $this->assertEqual($view->render(), 'Hello, Bob');
   }
 
   function testGlobalVarsPreprocessor()
   {
-    $view = $this->_createView('Hello, <?=$#name?>');
+    $view = $this->_createMacroTemplate('Hello, <?=$#name?>');
     $view->set('name', 'Bob');
     $this->assertEqual($view->render(), 'Hello, Bob');
-  }
-
-  function _createView($tpl, $config = null)
-  {
-    $file = $this->_createTemplate($tpl);
-    $view = new lmbMacroTemplate($file, $this->_createMacroConfig());
-    return $view;
-  }
-
-  function _createTemplate($tpl)
-  {
-    $file = $this->tpl_dir . mt_rand() . '.phtml';
-    file_put_contents($file, $tpl);
-    return $file;
-  }
+  }  
 }
 
 

Modified: 3.x/trunk/limb/macro/tests/cases/lmbBaseMacroTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/lmbBaseMacroTest.class.php	2008-02-06 12:06:00 UTC (rev 6766)
+++ 3.x/trunk/limb/macro/tests/cases/lmbBaseMacroTest.class.php	2008-02-06 13:41:04 UTC (rev 6767)
@@ -34,14 +34,16 @@
     return new lmbMacroTemplate($file, $this->_createMacroConfig());
   }
 
-  protected function _createTemplate($code, $name)
+  protected function _createTemplate($code, $name = false)
   {
+    if(!$name)
+      $name = mt_rand() . '.phtml';
     $file = $this->tpl_dir . '/'. $name;
     file_put_contents($file, $code);
     return $file;
   }
 
-  protected function _createMacroTemplate($code, $name)
+  protected function _createMacroTemplate($code, $name = false)
   {
     $file = $this->_createTemplate($code, $name);
     return $this->_createMacro($file);



More information about the limb-svn mailing list