예제 #1
0
파일: PHPTAL.php 프로젝트: ShaeS/Pine-Birch
 /**
  * Parse currently set template, prefilter and generate PHP code.
  *
  * @return string (compiled PHP code)
  */
 protected function parse()
 {
     $data = $this->_source->getData();
     $prefilters = $this->getPreFilterInstances();
     foreach ($prefilters as $prefilter) {
         $data = $prefilter->filter($data);
     }
     $realpath = $this->_source->getRealPath();
     $parser = new PHPTAL_Dom_SaxXmlParser($this->_encoding);
     $builder = new PHPTAL_Dom_PHPTALDocumentBuilder();
     $tree = $parser->parseString($builder, $data, $realpath)->getResult();
     foreach ($prefilters as $prefilter) {
         if ($prefilter instanceof PHPTAL_PreFilter) {
             if ($prefilter->filterDOM($tree) !== NULL) {
                 throw new PHPTAL_ConfigurationException("Don't return value from filterDOM()");
             }
         }
     }
     $state = new PHPTAL_Php_State($this);
     $codewriter = new PHPTAL_Php_CodeWriter($state);
     $codewriter->doTemplateFile($this->getFunctionName(), $tree);
     return $codewriter->getResult();
 }
예제 #2
0
파일: PHPTAL.php 프로젝트: palmic/lbox
 /**
  * Parse currently set template, prefilter and generate PHP code.
  * 
  * @return string (compiled PHP code)
  */
 protected function parse()
 {
     self::setIncludePath();
     require_once 'PHPTAL/Dom/DocumentBuilder.php';
     require_once 'PHPTAL/Php/State.php';
     require_once 'PHPTAL/Php/CodeWriter.php';
     self::restoreIncludePath();
     // instantiate the PHPTAL source parser
     $data = $this->_source->getData();
     $prefilters = $this->getPreFilterInstances();
     foreach ($prefilters as $prefilter) {
         $data = $prefilter->filter($data);
     }
     $parser = new PHPTAL_Dom_SaxXmlParser($this->_encoding);
     $builder = new PHPTAL_Dom_DocumentBuilder();
     $realpath = $this->_source->getRealPath();
     $tree = $parser->parseString($builder, $data, $realpath)->getResult();
     foreach ($prefilters as $prefilter) {
         if ($prefilter instanceof PHPTAL_PreFilter) {
             if ($prefilter->filterDOM($tree)) {
                 throw new PHPTAL_ConfigurationException("Don't return value from filterDOM()");
             }
         }
     }
     $state = new PHPTAL_Php_State($this);
     $codewriter = new PHPTAL_Php_CodeWriter($state);
     $codewriter->doTemplateFile($this->getFunctionName(), $tree);
     return $codewriter->getResult();
 }