Exemplo n.º 1
0
 public static function loadClass($className, $packageName = '')
 {
     BizClassLoader::loadMetadataClass($className, $packageName);
 }
Exemplo n.º 2
0
 /**
  * Contructor of class
  *
  * @param array $xmlArr
  * @param string $childClassName
  * @param object $parentObj
  * @return void
  */
 public function __construct(&$xmlArr, $childClassName, $parentObj = null)
 {
     //if (is_array($array)) $this->var = $array;
     $this->m_prtObj = $parentObj;
     if (!$xmlArr) {
         return;
     }
     if (isset($xmlArr["ATTRIBUTES"])) {
         $className = isset($xmlArr["ATTRIBUTES"]['CLASS']) ? $xmlArr["ATTRIBUTES"]['CLASS'] : $childClassName;
         if ((bool) strpos($className, ".")) {
             $a_package_name = explode(".", $className);
             $className = array_pop($a_package_name);
             //require_once(BizSystem::getLibFileWithPath($className, implode(".", $a_package_name)));
             $clsLoaded = BizClassLoader::loadMetadataClass($className, implode(".", $a_package_name));
         }
         //if (!$clsLoaded) trigger_error("Cannot find the load class $className", E_USER_ERROR);
         $obj = new $className($xmlArr, $parentObj);
         $this->m_var[$obj->m_Name] = $obj;
     } else {
         foreach ($xmlArr as $child) {
             $className = isset($child["ATTRIBUTES"]['CLASS']) ? $child["ATTRIBUTES"]['CLASS'] : $childClassName;
             /**
              * If a '.' is found within className we need to require such class
              * and then get the className after the last dot
              * ex. shared.dataobjs.FieldName, in this case FieldName is the class, shared/dataobjs the path
              *
              * The best solution to this is enable object factory to specify its resulting object constructor parameters
              */
             if ($className) {
                 //bug fixed by jixian for resolve load an empty classname
                 if ((bool) strpos($className, ".")) {
                     $a_package_name = explode(".", $className);
                     $className = array_pop($a_package_name);
                     //require_once(BizSystem::getLibFileWithPath($className, implode(".", $a_package_name)));
                     $clsLoaded = BizClassLoader::loadMetadataClass($className, implode(".", $a_package_name));
                 } elseif ($parentObj->m_Package) {
                     /* if(is_file(BizSystem::getLibFileWithPath($className, $parentObj->m_Package))){
                        require_once(BizSystem::getLibFileWithPath($className, $parentObj->m_Package));
                        }; */
                     $clsLoaded = BizClassLoader::loadMetadataClass($className, $parentObj->m_Package);
                 }
                 //if (!$clsLoaded) trigger_error("Cannot find the load class $className", E_USER_ERROR);
                 $obj = new $className($child, $parentObj);
                 $this->m_var[$obj->m_Name] = $obj;
             }
         }
     }
 }