За последние 24 часа нас посетили 17723 программиста и 1719 роботов. Сейчас ищет 881 программист ...

Ошибка в файле XWebDebugRouter

Тема в разделе "PHP для новичков", создана пользователем Igorby, 4 май 2017.

  1. Igorby

    Igorby Новичок

    С нами с:
    30 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Strict Standards: Declaration of yiiDebugDB::getInfo() should be compatible with yiiDebugClass::getInfo($data, $config = NULL) in protected/extensions/yiidebugtb/XWebDebugRouter.php on line 251

    Сам код файла XWebDebugRouter на 251 строке

    Код (Text):
    1. class yiiDebugDB extends yiiDebugClass
    2. {
    3.     public static function getInfo($data)
    4.     {
    5.         parent::getInfo($data);
    6.         $result = array();
    7.         $result['panelTitle'] = 'Database Queries';
    8.         $count = 0;
    9.         $items = array();
    10.         foreach ($data as $row)
    11.         {
    12.             if (substr($row[2],0,9) == 'system.db')
    13.             {
    14.                 $items[] = $row;
    15.                 if ($row[2] == 'system.db.CDbCommand') $count++;
    16.             }
    17.         }
    18.  
    19.         if (count($items) > 0) $result['content'] = yiiDebugTrace::render($items);
    20.  
    21.         $result['title'] = 'DB Query: '.$count;
    22.  
    23.         return $result;
    24.     }
    25. }
    Подскажите как связать yiiDebugDB::getInfo() с yiiDebugClass

    P.S. Помимо вышеуказанной части кода в файле также присутствует еще три аналогичных функции, на которые сервер также ругается, полностью парализовав сайт. При желании могу привести. Но как упомянул, они идентичны. Заранее все благодарен!
     
  2. Igorby

    Igorby Новичок

    С нами с:
    30 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Аналогичная ошибка указана в справочнике. Там приведен вот такой вот пример:

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Код (Text):
    1. <?php
    2. class A
    3. {
    4.     public function doSomething($a, $b)
    5.     {
    6.     }
    7. }
    8.  
    9. class B extends A
    10. {
    11.     public function doSomething($c)
    12.     {
    13.     }
    14. }
    15. ?>
    И объявлена та же ошибка:
    PHP Strict standards: Declaration of B::doSomething() should be compatible with A::doSomething(B $a) in Command line code on line 1
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    А также указано, что с PHP 5.4 мы не можем переопределять метод класса с другой сигнатурой (It seems that starting of PHP 5.4 you can not override class method with different signature.). Что это может значить? Подскажите куда копать?
     
  3. Igorby

    Igorby Новичок

    С нами с:
    30 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    P.S.
    Проблема началась после обновления хостером версии PHP, с PHP 5.3 на PHP 5.4