From 769e8ec7a9d95973706f9eb3bc6c98d8ea86e680 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Thu, 17 May 2012 11:48:09 +0000 Subject: [PATCH] Rewrote debug lines to ->debugOutput() --- .../template/class_BaseTemplateEngine.php | 146 ++++++++++++------ 1 file changed, 95 insertions(+), 51 deletions(-) diff --git a/inc/classes/main/template/class_BaseTemplateEngine.php b/inc/classes/main/template/class_BaseTemplateEngine.php index 2a3a52e6..96952b44 100644 --- a/inc/classes/main/template/class_BaseTemplateEngine.php +++ b/inc/classes/main/template/class_BaseTemplateEngine.php @@ -172,13 +172,16 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return $index FALSE means not found, >=0 means found on a specific index */ private function getVariableIndex ($var, $stack = NULL) { + // Replace all dashes to underscores to match variables with configuration entries + $var = trim(str_replace('-', '_', $var)); + // First everything is not found $found = false; // If the stack is null, use the current group if (is_null($stack)) { // Use current group - //* DEBUG: */ print __METHOD__.' currGroup=' . $this->currGroup . ' set as stack!
' . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__.' currGroup=' . $this->currGroup . ' set as stack!'); $stack = $this->currGroup; } // END - if @@ -186,11 +189,11 @@ class BaseTemplateEngine extends BaseFrameworkSystem { if ($this->isVarStackSet($stack)) { // Now search for it foreach ($this->getVarStack($stack) as $index => $currEntry) { - //* DEBUG: */ print __METHOD__.":currGroup={$stack},idx={$index},currEntry={$currEntry['name']},var={$var}
\n"; + //* DEBUG: */ $this->debugOutput(__METHOD__.':currGroup=' . $stack . ',idx=' . $index . ',currEntry=' . $currEntry['name'] . ',var=' . $var); // Is the entry found? if ($currEntry['name'] == $var) { // Found! - //* DEBUG: */ print __METHOD__.":FOUND!
\n"; + //* DEBUG: */ $this->debugOutput(__METHOD__.':FOUND!'); $found = $index; break; } // END - if @@ -244,13 +247,16 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return $content Content of the variable or null if not found */ protected function readVariable ($var, $stack = NULL) { + // Replace all dashes to underscores to match variables with configuration entries + $var = trim(str_replace('-', '_', $var)); + // First everything is not found $content = NULL; // If the stack is null, use the current group if (is_null($stack)) { // Use current group - //* DEBUG: */ print __METHOD__.' currGroup=' . $this->currGroup . ' set as stack!
' . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__.' currGroup=' . $this->currGroup . ' set as stack!'); $stack = $this->currGroup; } // END - if @@ -264,7 +270,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { } // END - if // Return the current position - //* DEBUG: */ print __METHOD__.': group='.$stack.',var='.$var.', content['.gettype($content).']='.$content.'
' . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__.': group=' . $stack . ',var=' . $var . ', content[' . gettype($content) . ']=' . $content); return $content; } @@ -311,7 +317,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { */ public function setVariableGroup ($groupName, $add = true) { // Set group name - //* DEBIG: */ print __METHOD__.": currGroup=".$groupName."
\n"; + //* DEBIG: */ $this->debugOutput(__METHOD__.': currGroup=' . $groupName); $this->currGroup = $groupName; // Skip group 'general' @@ -329,7 +335,11 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return void */ public function addGroupVariable ($var, $value) { - //* DEBUG: */ print __METHOD__.": group=".$this->currGroup.", var=".$var.", value=".$value."
\n"; + // Replace all dashes to underscores to match variables with configuration entries + $var = trim(str_replace('-', '_', $var)); + + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__.': group=' . $this->currGroup . ', var=' . $var . ', value=' . $value); // Get current variables in group $currVars = $this->readCurrentGroup(); @@ -362,6 +372,9 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @throws NoVariableException If the given variable is not found */ private function modifyVariable ($var, $value) { + // Replace all dashes to underscores to match variables with configuration entries + $var = trim(str_replace('-', '_', $var)); + // Get index for variable $index = $this->getVariableIndex($var); @@ -398,6 +411,9 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return void */ protected function setVariable ($varGroup, $var, $value) { + // Replace all dashes to underscores to match variables with configuration entries + $var = trim(str_replace('-', '_', $var)); + // Get index for variable $index = $this->getVariableIndex($var); @@ -420,6 +436,9 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return $varData Variable data array */ private function generateVariableArray ($var, $value) { + // Replace all dashes to underscores to match variables with configuration entries + $var = trim(str_replace('-', '_', $var)); + // Generate the temporary array $varData = array( 'name' => $var, @@ -567,8 +586,8 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @throws EmptyVariableException If the variable name is left empty */ public final function assignVariable ($var, $value) { - // Trim spaces of variable name - $var = trim($var); + // Replace all dashes to underscores to match variables with configuration entries + $var = trim(str_replace('-', '_', $var)); // Empty variable found? if (empty($var)) { @@ -582,11 +601,11 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // Was it found? if ($index === false) { // Add it to the stack - //* DEBUG: */ echo "ADD: ".$var."
\n"; + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':ADD: ' . $var . '[' . gettype($value) . ']=' . $value); $this->addVariable($var, $value); } elseif (!empty($value)) { // Modify the stack entry - //* DEBUG: */ echo "MOD: ".$var."
\n"; + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':MOD: ' . $var . '[' . gettype($value) . ']=' . $value); $this->modifyVariable($var, $value); } } @@ -633,8 +652,8 @@ class BaseTemplateEngine extends BaseFrameworkSystem { */ protected final function setRawTemplateData ($rawTemplateData) { // And store it in this class - //* DEBUG: */ print __METHOD__.': '.strlen($rawTemplateData).' Bytes set.' . chr(10); - //* DEBUG: */ print $this->currGroup.' variables: '.count($this->getVarStack($this->currGroup)).', groups='.count($this->varStack).'' . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__.': ' . strlen($rawTemplateData) . ' Bytes set.'); + //* DEBUG: */ $this->debugOutput(__METHOD__.': ' . $this->currGroup . ' variables: ' . count($this->getVarStack($this->currGroup)) . ', groups=' . count($this->varStack)); $this->rawTemplateData = (string) $rawTemplateData; } @@ -644,7 +663,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return $rawTemplateData The raw data from the template */ public final function getRawTemplateData () { - //* DEBUG: */ print __METHOD__.': '.strlen($this->rawTemplateData).' Bytes read.' . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': ' . strlen($this->rawTemplateData) . ' Bytes read.'); return $this->rawTemplateData; } @@ -655,7 +674,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { */ private final function setCompiledData ($compiledData) { // And store it in this class - //* DEBUG: */ print __METHOD__.': '.strlen($compiledData).' Bytes set.' . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': ' . strlen($compiledData) . ' Bytes set.'); $this->compiledData = (string) $compiledData; } @@ -665,7 +684,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return $compiledData Compiled template data */ public final function getCompiledData () { - //* DEBUG: */ print __METHOD__.': '.strlen($this->compiledData).' Bytes read.' . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': ' . strlen($this->compiledData) . ' Bytes read.'); return $this->compiledData; } @@ -742,7 +761,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { $ioInstance = $this->getFileIoInstance(); // Some debug code to look on the file which is being loaded - //* DEBUG: */ print __METHOD__.": FQFN=".$fqfn."
\n"; + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': FQFN=' . $fqfn); // Load the raw template $rawTemplateData = $ioInstance->loadFileContents($fqfn); @@ -763,6 +782,12 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @param $var The variable we want to assign */ private function assignTemplateVariable ($varName, $var) { + // Replace all dashes to underscores to match variables with configuration entries + $var = trim(str_replace('-', '_', $var)); + + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': varName=' . $varName . ',var=' . $var); + // Is it not a config variable? if ($varName != 'config') { // Regular template variables @@ -784,7 +809,10 @@ class BaseTemplateEngine extends BaseFrameworkSystem { $rawData = (string) $rawData; // Search for variables - @preg_match_all('/\$(\w+)(\[(\w+)\])?/', $rawData, $variableMatches); + preg_match_all('/\$(\w+)(\[(\w+)\])?/', $rawData, $variableMatches); + + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':rawData(' . strlen($rawData) . ')=' . $rawData . ',variableMatches=' . print_r($variableMatches, true)); // Did we find some variables? if ((is_array($variableMatches)) && (count($variableMatches) == 4) && (count($variableMatches[0]) > 0)) { @@ -829,13 +857,13 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // Load all requested templates foreach ($templateMatches[1] as $template) { - // Load and compile only templates which we have not yet loaded // RECURSIVE PROTECTION! BE CAREFUL HERE! if ((!isset($this->loadedRawData[$template])) && (!in_array($template, $this->loadedTemplates))) { + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':template=' . $template); // Template not found, but maybe variable assigned? - //* DEBUG: */ print __METHOD__.":template={$template}
\n"; if ($this->getVariableIndex($template, 'config') !== false) { // Use that content here $this->loadedRawData[$template] = $this->readVariable($template, 'config'); @@ -973,8 +1001,16 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @todo Unfinished work or don't die here. */ private function assignAllVariables (array $varMatches) { + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':varMatches()=' . count($varMatches)); + // Search for all variables foreach ($varMatches[1] as $key => $var) { + // Replace all dashes to underscores to match variables with configuration entries + $var = trim(str_replace('-', '_', $var)); + + // Debug message + $this->debugOutput(__METHOD__ . ':key=' . $key . ',var=' . $var); // Detect leading equals if (substr($varMatches[2][$key], 0, 1) == '=') { @@ -990,8 +1026,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // @TODO Non-string found so we need some deeper analysis... ApplicationEntryPoint::app_die('Deeper analysis not yet implemented!'); } - - } // for ($varMatches ... + } // END - foreach } /** @@ -1001,15 +1036,20 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return void */ private function compileRawTemplateData (array $templateMatches) { + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':loadedRawData()= ' .count($this->loadedRawData)); + // Are some code-templates found which we need to compile? if (count($this->loadedRawData) > 0) { - // Then compile all! foreach ($this->loadedRawData as $template => $code) { + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':template=' . $template . ',code(' . strlen($code) . ')=' . $code); // Is this template already compiled? if (in_array($template, $this->compiledTemplates)) { // Then skip it + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': Template ' . $template . ' already compiled. SKIPPED!'); continue; } // END - if @@ -1018,23 +1058,20 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // Lookup the matching variable data if (($foundIndex !== false) && (isset($templateMatches[3][$foundIndex]))) { - // Split it up with another reg. exp. into variable=value pairs preg_match_all($this->regExpVarValue, $templateMatches[3][$foundIndex], $varMatches); + ///* DEBUG: */ $this->debugOutput(__METHOD__ . ':varMatches=' . print_r($varMatches,true)); // Assign all variables $this->assignAllVariables($varMatches); - } // END - if (isset($templateMatches ... // Compile the loaded template $this->compileCode($code, $template); - } // END - foreach ($this->loadedRawData ... // Insert all templates $this->insertAllTemplates($templateMatches); - } // END - if (count($this->loadedRawData) ... } @@ -1059,7 +1096,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { private function finalizeVariableCompilation () { // Get the content $content = $this->getRawTemplateData(); - //* DEBUG: */ print __METHOD__.': content before='.strlen($content).' ('.md5($content).')' . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': content before=' . strlen($content) . ' (' . md5($content) . ')'); // Do we have the stack? if (!$this->isVarStackSet('general')) { @@ -1070,7 +1107,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // Walk through all variables foreach ($this->getVarStack('general') as $currEntry) { - //* DEBUG: */ print __METHOD__.': name='.$currEntry['name'].', value=
'.htmlentities($currEntry['value']).'
\n'; + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': name=' . $currEntry['name'] . ', value=
' . htmlentities($currEntry['value']) . '
'); // Replace all [$var] or {?$var?} with the content // @TODO Old behaviour, will become obsolete! $content = str_replace('$content[' . $currEntry['name'] . ']', $currEntry['value'], $content); @@ -1082,7 +1119,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { $content = str_replace('{?' . $currEntry['name'] . '?}', $currEntry['value'], $content); } // END - for - //* DEBUG: */ print __METHOD__.': content after='.strlen($content).' ('.md5($content).')' . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': content after=' . strlen($content) . ' (' . md5($content) . ')'); // Set the content back $this->setRawTemplateData($content); @@ -1110,8 +1147,11 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return void */ public function assignConfigVariable ($var) { + // Replace all dashes to underscores to match variables with configuration entries + $var = trim(str_replace('-', '_', $var)); + // Sweet and simple... - //* DEBUG: */ print __METHOD__.': var=' . $var . ',getConfigEntry()=' . $this->getConfigInstance()->getConfigEntry($var) . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': var=' . $var . ',getConfigEntry()=' . $this->getConfigInstance()->getConfigEntry($var)); $this->setVariable('config', $var, $this->getConfigInstance()->getConfigEntry($var)); } @@ -1141,7 +1181,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // Do we have the stack? if (!$this->isVarStackSet('general')) { // Abort here silently - // @TODO This silent abort should be logged, maybe. + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': Aborted, variable stack general not found!'); return; } // END - if @@ -1150,11 +1190,14 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // Compile the value $value = $this->compileRawCode($this->readVariable($currVariable['name']), true); + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': name=' . $currVariable['name'] . ',value=' . $value); + // Remove it from stack $this->removeVariable($index, 'general'); // Re-assign the variable - //* DEBUG: */ print __METHOD__.': value='. $value . ',name=' . $currVariable['name'] . ',index=' . $index . chr(10); + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': value='. $value . ',name=' . $currVariable['name'] . ',index=' . $index); $this->assignConfigVariable($value); } // END - foreach } @@ -1173,19 +1216,13 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // Iterate through all general variables foreach ($this->getVarStack('general') as $currVariable) { // Transfer it's name/value combination to the $content array - //* DEBUG: */ echo $currVariable['name'].'=
'.htmlentities($currVariable['value']).'
\n'; + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':' . $currVariable['name'] . '=
' . htmlentities($currVariable['value']).'
'); $dummy[$currVariable['name']] = $currVariable['value']; }// END - if // Set the new variable (don't remove the second dollar!) $$validVar = $dummy; - // Prepare all configuration variables - $config = NULL; - if ($this->isVarStackSet('config')) { - $config = $this->getVarStack('config'); - } // END - if - // Remove some variables unset($index); unset($currVariable); @@ -1285,6 +1322,9 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // Search for code-tags which are {? ?} preg_match_all($this->regExpCodeTags, $rawData, $templateMatches); + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':templateMatches=' . print_r($templateMatches , true)); + // Analyze the matches array if ((is_array($templateMatches)) && (count($templateMatches) == 4) && (count($templateMatches[0]) > 0)) { // Entries are found: @@ -1300,15 +1340,12 @@ class BaseTemplateEngine extends BaseFrameworkSystem { // Are some raw templates found and loaded? if (count($this->rawTemplates) > 0) { - // Insert all raw templates $this->insertRawTemplates(); // Remove the raw template content as well $this->setRawTemplateData(''); - } // END - if - } // END - if($templateMatches ... } @@ -1393,24 +1430,31 @@ class BaseTemplateEngine extends BaseFrameworkSystem { */ public function compileRawCode ($rawCode, $setMatchAsCode=false) { // Find the variables - //* DEBUG: */ print __METHOD__.":rawCode=
".htmlentities($rawCode)."
\n"; + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':rawCode=
' . htmlentities($rawCode) . '
'); preg_match_all($this->regExpVarValue, $rawCode, $varMatches); // Compile all variables - //* DEBUG: */ print __METHOD__.":
".print_r($varMatches, true)."
\n"; + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':
' . print_r($varMatches, true) . '
'); foreach ($varMatches[0] as $match) { // Add variable tags around it $varCode = '{?' . $match . '?}'; + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':varCode=' . $varCode); + // Is the variable found in code? (safes some calls) if (strpos($rawCode, $varCode) !== false) { - // Replace the variable with it's value, if found - $value = $this->readVariable($match); - //* DEBUG: */ print __METHOD__.": match=".$match.",value[".gettype($value)."]=".$value."
\n"; - if (($setMatchAsCode === true) && (is_null($value))) { + // Debug message + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': match=' . $match . ',value[' . gettype($value) . ']=' . $value); + + // Use $match as new value or $value from read variable? + if ($setMatchAsCode === true) { // Insert match $rawCode = str_replace($varCode, $match, $rawCode); } else { + // Read the variable + $value = $this->readVariable($match); + // Insert value $rawCode = str_replace($varCode, $value, $rawCode); } @@ -1418,7 +1462,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { } // END - foreach // Return the compiled data - //* DEBUG: */ print __METHOD__.":rawCode=
".htmlentities($rawCode)."
\n"; + //* DEBUG: */ $this->debugOutput(__METHOD__ . ':rawCode=
' . htmlentities($rawCode) . '
'); return $rawCode; } @@ -1439,7 +1483,7 @@ class BaseTemplateEngine extends BaseFrameworkSystem { * @return void */ public function renameVariable ($oldName, $newName) { - //* DEBUG: */ print __METHOD__.": oldName={$oldName}, newName={$newName}
\n"; + //* DEBUG: */ $this->debugOutput(__METHOD__ . ': oldName=' . $oldName . ', newName=' . $newName); // Get raw template code $rawData = $this->getRawTemplateData(); -- 2.30.2