예제 #1
0
 public static function loadFromHandle($handle)
 {
     if (!is_array(self::$formatters)) {
         self::$formatters = array();
     }
     if (!self::$iterator instanceof TextFormatterIterator) {
         self::$iterator = new TextFormatterIterator();
     }
     self::$iterator->rewind();
     if (in_array($handle, array_values(self::$formatters))) {
         $tmp = array_flip(self::$formatters);
         return new $tmp[$handle]();
     }
     foreach (self::$iterator as $tf) {
         if (basename($tf) == "{$handle}.php") {
             return self::load($tf);
         }
     }
     throw new TextFormatterException("No such Formatter '{$handle}'");
 }