/** * 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]; }