예제 #1
0
파일: Template.php 프로젝트: mirdware/scoop
 /**
  * Reglas de reemplazo para cada uno de los comandos de la plantilla.
  * EJ: @extends 'template' => \Scoop\View\Helper::extend('template').
  * @param string $line Linea que se encuentra analizando el parseador.
  * @return boolean Existio o no reemplazo dentro de la linea.
  */
 private static function replace(&$line)
 {
     $line = preg_replace(array('/@extends \'([\\w\\/-]+)\'/', '/@import \'([\\w\\/-]+)\'/', '/@if ([ \\w\\.\\&\\|\\$!=<>\\/\\+\\*\\-\\(\\)\\[\\]%\']+)/', '/@elseif ([ \\w\\.\\&\\|\\$!=<>\\/\\+\\*\\-\\(\\)\\[\\]%\']+)/', '/@foreach ([ \\w\\.\\&\\|\\$\\->:\\(\\)\\[\\]%\']+)/', '/@for ([ \\w\\.\\&\\|\\$;,\\(\\)!=<>\\+\\-\\(\\)\\[\\]%\']+)/', '/@while ([ \\w\\.\\&\\|\\$\\(\\)!=<>\\+\\-\\(\\)\\[\\]%\']+)/'), array(self::HERITAGE . '::extend(\'${1}\')', self::HERITAGE . '::import(\'${1}\')', 'if(${1}):', 'elseif(${1}):', 'foreach(${1}):', 'for(${1}):', 'while(${1}):'), $line, 1, $count);
     if ($count !== 0) {
         $line = \Scoop\IoC\Service::compileView($line);
         return true;
     }
     $line = str_replace(array(':if', ':foreach', ':for', ':while', '@else', '@sprout'), array('endif', 'endforeach', 'endfor', 'endwhile', 'else:', self::HERITAGE . '::sprout()'), $line, $count);
     if ($count !== 0) {
         return true;
     }
     $line = preg_replace('/\\{([\\w\\s\\.\\$\\[\\]\\(\\)\'\\"\\/\\+\\*\\-\\?:=!<>,#]+)\\}/', '<?php echo ${1} ?>', $line, -1, $count);
     if ($count !== 0) {
         $line = \Scoop\IoC\Service::compileView($line);
     }
     return false;
 }