mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
Small fix of #229
This commit is contained in:
parent
24621099bf
commit
626334017b
@ -7,6 +7,7 @@
|
||||
* For the full copyright and license information, please view the license.md
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
use Fenom\Error\CompileException;
|
||||
use Fenom\ProviderInterface;
|
||||
use Fenom\Template;
|
||||
|
||||
@ -1094,7 +1095,7 @@ class Fenom
|
||||
* @param string|array $tpl
|
||||
* @param bool $store store template on disk
|
||||
* @param int $options
|
||||
* @throws RuntimeException
|
||||
* @throws CompileException
|
||||
* @return \Fenom\Template
|
||||
*/
|
||||
public function compile($tpl, $store = true, $options = 0)
|
||||
@ -1111,12 +1112,12 @@ class Fenom
|
||||
$cache_name = $this->getCompileName($tpl, $options);
|
||||
$compile_path = $this->_compile_dir . "/" . $cache_name . "." . mt_rand(0, 100000) . ".tmp";
|
||||
if(!file_put_contents($compile_path, $template->getTemplateCode())) {
|
||||
throw new \RuntimeException("Can't to write to the file $compile_path. Directory " . $this->_compile_dir . " is writable?");
|
||||
throw new CompileException("Can't to write to the file $compile_path. Directory " . $this->_compile_dir . " is writable?");
|
||||
}
|
||||
$cache_path = $this->_compile_dir . "/" . $cache_name;
|
||||
if (!rename($compile_path, $cache_path)) {
|
||||
unlink($compile_path);
|
||||
throw new \RuntimeException("Can't to move $compile_path to $cache_path");
|
||||
throw new CompileException("Can't to move the file $compile_path -> $cache_path");
|
||||
}
|
||||
}
|
||||
return $template;
|
||||
|
@ -102,7 +102,7 @@ class Template extends Render
|
||||
*/
|
||||
private $_ignore = false;
|
||||
|
||||
private $_before;
|
||||
private $_before = array();
|
||||
|
||||
private $_filters = array();
|
||||
|
||||
@ -310,7 +310,7 @@ class Template extends Render
|
||||
*/
|
||||
public function before($code)
|
||||
{
|
||||
$this->_before .= $code;
|
||||
$this->_before[] = $code;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -405,7 +405,7 @@ class Template extends Render
|
||||
*/
|
||||
public function getTemplateCode()
|
||||
{
|
||||
$before = $this->_before ? $this->_before . "\n" : "";
|
||||
$before = $this->_before ? implode("\n", $this->_before) . "\n" : "";
|
||||
return "<?php \n" .
|
||||
"/** Fenom template '" . $this->_name . "' compiled at " . date('Y-m-d H:i:s') . " */\n" .
|
||||
$before . // some code 'before' template
|
||||
@ -525,7 +525,7 @@ class Template extends Render
|
||||
$parent = $this->_fenom->getRawTemplate()->load($tpl, false);
|
||||
$parent->blocks = & $this->blocks;
|
||||
$parent->macros = & $this->macros;
|
||||
$parent->_before = & $this->_before;
|
||||
$parent->_before = & $this->_before;
|
||||
$parent->extended = $this->getName();
|
||||
if (!$this->ext_stack) {
|
||||
$this->ext_stack[] = $this->getName();
|
||||
@ -798,12 +798,14 @@ class Template extends Render
|
||||
}
|
||||
$code = $this->parseScalar($tokens);
|
||||
break;
|
||||
/** @noinspection PhpMissingBreakStatementInspection */
|
||||
case '$':
|
||||
$code = $this->parseAccessor($tokens, $is_var);
|
||||
if(!$is_var) {
|
||||
$code = $unary . $code;
|
||||
break;
|
||||
}
|
||||
/* no break */
|
||||
case T_VARIABLE:
|
||||
if(!isset($code)) {
|
||||
$code = $this->parseVariable($tokens);
|
||||
|
Loading…
Reference in New Issue
Block a user