Нестатический метод не должен вызываться статически в Kohana 2.3.4 - PullRequest
0 голосов
/ 01 ноября 2019

Я перенес установку Kohana 2.3.4 на новый хостинг с php7 (возможно, это корень проблемы), и теперь я получаю следующую ошибку:

Uncaught PHP Error: Non-static method AdminHook::menu_tree() should not be called statically in file system/core/Event.php on line 209

Вот мой Event.php в строке 209 (call_user_func ($ callback); находится в строке 209):

public static function run($name, & $data = NULL)
{
    if ( ! empty(self::$events[$name]))
    {
        // So callbacks can access Event::$data
        self::$data =& $data;
        $callbacks  =  self::get($name);

        foreach ($callbacks as $callback)
        {
            call_user_func($callback); // LINE 209
        }

        // Do this to prevent data from getting 'stuck'
        $clear_data = '';
        self::$data =& $clear_data;
    }

    // The event has been run!
    self::$has_run[$name] = $name;
}

А вот класс AdminHook:

class AdminHook {
    public function menu_tree(){
        $session = Session::instance();
        if(isset($_GET['_ml']) AND $_GET['_ml'] == 1) {
            $session->set('menuLink', 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
            //url::redirect(url::current());
        }
        global $menuLink;
        $menuLink = $session->get('menuLink');
    }
}

Если я установилФункция menu_tree для static, я получаю следующую ошибку:

Uncaught PHP Error: Declaration of Menu_Model::validate(array &$array, $save = false) should be compatible with ORM_Core::validate(Validation $array, $save = false) in file application/models/menu.php on line 18

Я пытался найти решение в течение следующих нескольких дней, но не могу найти его. Любая помощь высоко ценится!

...