Esempio n. 1
0
 /**
  * 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();
 }
Esempio n. 2
0
 /**
  * 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();
 }