Есть библиотека, в которой имеет место быть класс, у которого в рамках одного процесса позволительно существование только одного инстанса, т.е. фактически это Singleton. Беда в том, что инициализация этого самого инстанса имеет несколько динамических параметров, которые надо каким-то образом передавать.
Решение должно работать на PHP > 5.2. Единственное, что мне пришло на ум:
public static function init($params) {
if(self::$instance) {
throw new Exception(__CLASS__ . ' already initialized');
}
$class = __CLASS__;
self::$instance = new $class($params);
}
public static function getInstance() {
if(!self::$instance) {
throw new Exception(__CLASS__ . ' is not initialized');
}
return self::$instance;
}
Но оно кажется далеко не самым удачным. У кого-нибудь есть ещё какие идеи, паделитесь?
Спасибо!