示例#1
0
 /**
  * Return the configuration for a className
  *
  * @param string $className ClassName to load its configuration
  * @param bool $searchParent Indicate if the parent and implements class configuration should be searched
  * @return array Cfg Array parameter
  */
 public static function loadCfg($className, $searchParent = true)
 {
     if (!array_key_exists($className, self::$loadedCfg)) {
         self::$loadedCfg[$className] = array();
         if ($searchParent) {
             $ref = new nReflection($className);
             // Load the parent class configuration
             if ($parent = $ref->getParentClass()) {
                 self::mergeCfg(self::$loadedCfg[$className], self::loadCfg($parent->getName()));
             }
             // Load the implements class configuration
             if (count($implements = $ref->getInterfaces()) > 0) {
                 foreach ($implements as $imp) {
                     self::mergeCfg(self::$loadedCfg[$className], self::loadCfg($imp->getName()));
                 }
             }
         }
         $listCfg = file::nyroExists(array('name' => $className, 'type' => 'cfg', 'rtl' => false, 'list' => true));
         if (!empty($listCfg)) {
             foreach ($listCfg as $lc) {
                 include $lc;
                 if (isset($cfg)) {
                     self::mergeCfg(self::$loadedCfg[$className], $cfg, $className);
                 }
                 $cfg = null;
             }
         }
         self::mergeCfg(self::$loadedCfg[$className], nyro::getGlobalCfg($className));
         self::removeKeepUnique(self::$loadedCfg[$className]);
     }
     return self::$loadedCfg[$className];
 }