Exemplo n.º 1
0
 private static function doInstantiate($className)
 {
     if (!ClassCache::exists($className)) {
         throw new SingletonException("Cannot create singleton for class {$className}: class does not exist.");
     }
     $name = new $className();
     self::$instances[$className] = $name;
 }
Exemplo n.º 2
0
 public static function get($className)
 {
     if (!ClassCache::exists($className)) {
         throw new NoSuchBeanException($className);
     }
     if (self::isRequestBean($className)) {
         return self::getOrCreateRequestBean($className);
     }
     if (self::isSessionBean($className)) {
         return self::getOrCreateSessionBean($className);
     }
     if (self::isApplicationBean($className)) {
         return self::getOrCreateApplicationBean($className);
     }
     throw new NoSuchBeanException($className);
 }
Exemplo n.º 3
0
 private function parseNode(XmlElement $node)
 {
     $className = ucfirst($node->getName());
     if (!ClassCache::exists($className)) {
         $instance = new HtmlComponent($node->getName(), $node->getText(), $node->getAttributes());
     } else {
         if (!ClassUtil::isSubclassOf($className, "Component")) {
             throw new ComponentNotExistsException($className);
         }
         $instance = new $className();
         foreach ($node->getAttributes() as $attrName => $attrValue) {
             $setterName = "set" . ucfirst($attrName);
             $setter = new ReflectionMethod($instance, $setterName);
             $setter->invoke($instance, (string) $attrValue);
         }
     }
     foreach ($node->getChildren() as $child) {
         $instance->addChild($this->parseNode($child));
     }
     return $instance;
 }