Я работаю над плагиновой системой, и на данный момент я вынужден использовать call_user_func_array
. И это медленно и использует память.вызов статического класса внутри _callstatic не работает
Моя функция работает, и выглядит следующим образом:
public static function __callStatic($method, $args)
{
$plugins = self::_checkEventCache($method);
if(count($plugins)) :
foreach($plugins as $p):
$tmp = call_user_func_array(array(self::$_installedPlugins[$p], $method), array(&$args));
endforeach;
endif;
self::$_current_event = $method;
}
Мой вопрос, как я могу назвать это непосредственно или сделать эту скорость вверх? Я никогда не узнаю, сколько аргументов будет добавлено позже.
Любое решение, чтобы избавиться от call_user_func_array
?
$tmp =
также не работает над этим. Раньше - когда я не использовал static, он возвращал значение. Старый код, который я использовал, был так:
$tmp = $this->_installedPlugins[$p]->{$method}($args);
if($tmp !== NULL){
$this->_event_result[$method] = $tmp;
}
Мне нужно, чтобы получить те же результаты, теперь, когда я использую статический класс.
Любые идеи?
Спасибо. Только то, что я искал. У меня также были проблемы с выражением. Итак, проблема решена. –