Давным давно пришел в проект, в котором всё классы вызываются через синглтон менеджер. Всё бы ничего, но из-за этого сложно с автодополнением.
Примерно всё так:
class ClassManager {
private $objects;
function __get($name) {
if (isset($this->objects[$name])) {
return $this->objects[$name];
} else {
$file = $this->getFileName($name);
$file_path = $_SERVER['DOCUMENT_ROOT'] . '/' .$file;
if ($file AND file_exists($file_path)) {
require_once($file_path);
$this->objects[$name] = new $name();
return $this->objects[$name];
}
return (object) $temp;
}
}
private function getFileName($name) {
return $name;
}
}
class CM {
static $init = NULL;
static function init() {
self::$init = new ClassManager();
}
}
И классы вызываются так:
CM::$init->Shab->и_название_метода_вспоминай_сам
Что можете посоветовать? Переписывать сейчас всё это нет времени...
Спасибо за внимание.