[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 © 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 © 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