public function testNaming() { $name = 'xySomeTagHandler'; $this->assertEquals('xy', Social_Dsl_TagMetaInfo::getNamespaceFromClassName($name)); $this->assertEquals('some-tag', Social_Dsl_TagMetaInfo::getNameFromClassName($name)); $name = 'AHandler'; $this->assertTrue(Social_Dsl_TagMetaInfo::getNamespaceFromClassName($name) == NULL); $this->assertEquals('a', Social_Dsl_TagMetaInfo::getNameFromClassName($name)); $name = 'ab:some-tag'; $fnames = Social_Dsl_TagMetaInfo::getFilenamesFromTagName($name); $this->assertEquals('abSomeTag.php', $fnames[0]); $this->assertEquals('abSomeTagHandler.php', $fnames[1]); $farr = array('usr', 'local', 'goats', 'moregoats', 'someClass.php'); $fpath = implode(DIRECTORY_SEPARATOR, $farr); $this->assertEquals('someClass', Social_Dsl_TagMetaInfo::getClassnameFromFileName($fpath)); }
public static function fromString($serializedString) { $iarr = explode(',', $serializedString); if (count($iarr) == 7) { $tmi = new Social_Dsl_TagMetaInfo(); $tns = $iarr[0] == 'NULL' ? NULL : $iarr[0]; $fname = $iarr[2]; $tmi->setTagNamespace($tns); $tmi->setTagName($iarr[1]); $tmi->setHandlerSourceFile($fname); $tmi->setHandlerClassName($iarr[3]); $tmi->setTagType($iarr[4]); $tmi->setIsEmpty($iarr[5] == 'true' ? true : false); $tmi->setLastModified(intval($iarr[6])); return $tmi; } else { throw new Exception("[TagMetaInfo] incorrectly-serialized string: {$serializedString}"); } return NULL; }
/** * Given a .php file $filePath, parse the file and obtain * all the class names defined in it. Attempt to create * meta info for that class if it is a potential tag handler. * * Returns true if a tag handler was found and it's meta info * was loaded, false otherwise. */ public function loadTagHandlerMetaInfo($filePath, $force = false) { $c = Social_Dsl_TagMetaInfo::getClassnameFromFileName($filePath); if ($force || !in_array($c, $this->m_visitedClasses)) { $this->m_visitedClasses[] = $c; $tmi = Social_Dsl_TagMetaInfo::createMetaInfo($c, $filePath); if ($tmi != NULL) { $tn = $tmi->getTagName(); $tns = $tmi->getTagNamespace(); if ($tns == NULL) { $tns = 'NULL'; } if (!array_key_exists($tns, $this->m_tagMetaInfo)) { $this->m_tagMetaInfo[$tns] = array(); } $this->m_tagMetaInfo[$tns][$tn] = $tmi; return true; } } return false; }