/** * Функция проверяет, был ли переопределён "стандартный" класс * @param string $class имя базового класса * @param bool $name только имя? * @return object|string необходимый объект */ public function get_class($class, $name = false) { $this->include_redefined($class); if ($this->state) { if (function_exists('load_aliases') && !$this->aliases_inited) { load_aliases(); $this->aliases_inited = true; } if (class_exists($this->redefined[$class], false)) { $class = $this->redefined[$class]; } } if (!$name && $class instanceof pluginable_object) { if (!$this->pluginable[$class]) { $this->pluginable[$class] = new $class(); } return clone $this->pluginable[$class]; } return $name ? $class : new $class(); }
/** * Создание алиаса к классу * @param string $original имя оригинального класса * @param string $alias имя алиаса * @return bool true, если успешно создали алиас */ function class_alias($original, $alias) { if (!class_exists($original, false)) { return false; } $p = ROOT . CLASS_ALIASES; $f = file_get_contents($p); $string = "if (!class_exists('" . $alias . "') && class_exists('" . $original . "')){class " . $alias . " extends " . $original . "{}}\n"; if (mb_strpos($f, $string) === false) { if (class_exists($alias)) { return true; } if (!!validword($alias)) { return false; } $f = mb_substr($f, 0, mb_strlen($f) - 2); $f .= $string . '?>'; } else { return true; } file_put_contents($p, $f); load_aliases(); return true; }