Ejemplo n.º 1
0
 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));
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 /**
  * 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;
 }