/** * 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; }