Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: После изменения NS адреса ошибка: Declaration of Setup::get_modules() should be compatible...
 
 автор: Evlanov   (20.07.2011 в 08:37)   письмо автору
 
 

После изменения NS адреса ошибка:

НЕИЗВЕСТНАЯ ОШИБКА: Declaration of Setup::get_modules() should be compatible with that of ModulesFmdc::get_modules() в файле "setup.class.php" строка:629.

Подскажите, пожалуйста, в чем проблема и как исправить.

  Ответить  
 
 автор: Саня   (20.07.2011 в 08:53)   письмо автору
 
   для: Evlanov   (20.07.2011 в 08:37)
 

Скорее всего вы ещё и PHP обновили с 5.2 на 5.3. Версия 5.3 любит строгие стандарты, о чём сообщает. Тут нужно исправлять сигнатуру (список параметров) методов. Нужно подогнать сигнатуру ModulesFmdc::get_modules() в точном соответствии с Setup::get_modules(), либо наоборот.

Как вариант, можно подавить этот тип ошибок
error_reporting( E_ALL ^ E_STRICT );

  Ответить  
 
 автор: Evlanov   (21.07.2011 в 09:40)   письмо автору
 
   для: Саня   (20.07.2011 в 08:53)
 

Спасибо за обстоятельный ответ.
Не могли бы вы разъяснить мне, так как я плохо знаю РНР..

------------------------------------------------------------------------------------------

1. Если я правильно понял, разработчики нашего сайта неверно написали параметры в функции "get_modules()"? Но функция "get_modules()" без параметров.
Вот первые строки:
public function get_modules() <- НЕТ ПАРАМЕТРОВ
{
global $_PARAMS, $_OBJECTS, $_IMODULES;
...
if(!empty($_PARAMS['Setup']['modules']))
$in_base_modules = &parent::get_modules(false, false); <- ЕСТЬ ПАРАМЕТРЫ

То есть в описании этой функции нет параметров, а в ее вызове есть. В этом может быть проблема?

------------------------------------------------------------------------------------------

2. Извиняюсь за дурацкий вопрос, что такое "ModulesFmdc::" и "Setup::"?

------------------------------------------------------------------------------------------

3. Где написать "error_reporting( E_ALL ^ E_STRICT );"? В начале каждого модуля который выдает ошибку?

------------------------------------------------------------------------------------------

  Ответить  
 
 автор: Саня   (21.07.2011 в 12:09)   письмо автору
 
   для: Evlanov   (21.07.2011 в 09:40)
 

1. Да, проблема в этом, скорее всего. Разработчики вашего сайта писали под устаревшую версию PHP, поэтому попросите их привести код в соответствие новой версии.

2. Это название класса, в котором находятся указанные функции.

3. Наверняка у сайта есть файл (конфигурационный, например), который подключается во все остальные скрипты на сайте. Можно вписать error_reporting в него.

  Ответить  
 
 автор: Evlanov   (21.07.2011 в 12:43)   письмо автору
 
   для: Саня   (21.07.2011 в 12:09)
 

Спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования