Хай там. Я разрабатываю систему плагинов, и у меня проблемы с call_user_func и ссылочными переменными.
Я называю обработчик плагина следующим образом:
if(PluginFactory::NumberOfPlugins() != 0)
foreach(PluginFactory::GetPlugins() as $pPlugin)
call_user_func(get_class($pPlugin) . "::OnHandlePluggablePart", "Core:AfterSceneAssembly", $Document);
Где $Document
- это объект моего документа, где я храню свои элементы управления. Идея заключается в том, что плагины могут изменять набор элементов управления (добавлять, удалять, изменять). Мой класс плагинов такой:
class SomePlugin extends Plugin
{
...
public static function OnHandlePluggablePart($sPart, &$Document)
{
if($sPart == "Core:AfterSceneAssembly")
{
$Document->AddControl(new Paragraph("", "Plugin test"));
}
}
}
Объект документа передается по значению (копируется), а не по ссылке ...
Что делать, что делать :)?