Exemplo n.º 1
0
 /**
  * Compile partials into procedure.
  *
  * @access public
  * @param  \JonnyW\PhantomJs\Procedure\ProcedureInterface $procedure
  * @param  \JonnyW\PhantomJs\Procedure\InputInterface     $input
  * @return void
  */
 public function compile(ProcedureInterface $procedure, InputInterface $input)
 {
     $cacheKey = sprintf('phantomjs_%s_%s', $input->getType(), md5($procedure->getTemplate()));
     if ($this->cacheEnabled && $this->cacheHandler->exists($cacheKey)) {
         $template = $this->cacheHandler->fetch($cacheKey);
     }
     if (empty($template)) {
         $template = $this->renderer->render($procedure->getTemplate(), array('engine' => $this, 'procedure_type' => $input->getType()));
         $test = clone $procedure;
         $test->setTemplate($template);
         $compiled = $test->compile($input);
         $this->procedureValidator->validate($compiled);
         if ($this->cacheEnabled) {
             $this->cacheHandler->save($cacheKey, $template);
         }
     }
     $procedure->setTemplate($template);
 }