Kod klasy MyBBIntegrator: http://pastebin.com/LrpJGmp5
Patrzyłem sobie co potrafi ta klasa i nie mogę zrozumieć kilka rzeczy. Jedną z nich jest to:
  1. // linia 387
  2. $this->plugins->run_hooks("polls_do_newpoll_start");

Jednakże w klasie nie ma zadeklarowanej zmiennej $plugins, więc co się dzieje, ten kod jest poprawny?

Spójrzcie na __construct klasy:
  1. // linia 2365
  2. function MyBBIntegrator(&$mybb, &$db, &$cache, &$plugins, &$lang, &$config)
  3. {
  4. $this->mybb =& $mybb;
  5. $this->db =& $db;
  6. $this->cache = $cache;
  7. $this->plugins =& $plugins;
  8. $this->lang =& $lang;
  9. $this->config =& $config;
  10.  
  11. define('MYBB_ADMIN_DIR', MYBB_ROOT.$this->config['admin_dir'].'/');
  12.  
  13. // Some Constants for non-magic-numbers
  14. define('NON_FATAL', false);
  15.  
  16. require_once MYBB_ROOT.'inc/class_parser.php';
  17. $this->parser = new postParser;
  18. }

Mamy sobie __construct klasy do której przekazywany jest CHYBA wskaźnik (&) do zmiennej $plugins z pliku global.php, następnie do zmiennej $plugins w klasie MyBBIntegrator:
  1. $this->plugins =& $plugins;

jest przypisywany ten chyba wskaźnik. No ale kurcze.. Przecież w klasie tej nie ma zdefiniowanej zmiennej $plugins. Zmienne klasy: cache, config, db, mybb są zdefiniowane w klasie ale plugins i lang nie ma.. Więc co jest grane?