За последние 24 часа нас посетили 14892 программиста и 1728 роботов. Сейчас ищут 496 программистов ...

Обновил сайт на 8.2 и посыпались ошибки.

Тема в разделе "PHP для новичков", создана пользователем PetrLevanov, 16 дек 2023.

  1. PetrLevanov

    PetrLevanov Новичок

    С нами с:
    16 дек 2023
    Сообщения:
    1
    Симпатии:
    0
    Добрый день.

    Обновил сайт на Битрикс до последней версии и саму версию PHP до 8.2 с 7.4.

    Тема сайта сломалась, и к сожалению моих знаний не хватает( Посмотрел по поиску: скобки ставил, константу дописывал к функции.

    Подскажите пожалуйста куда копать. Сама ошибка:


    [Error]

    Non-static method Alexkova\Bxready2\Templates::getBitrixTopPanelMenu() cannot be called statically (0)

    /home/c/cd4/new-2019/public_html/bitrix/modules/alexkova.bxready2/lib/bxready.php:57

    #0: Alexkova\Bxready2\Bxready->__construct()

    /home/c/cd4/new-2019/public_html/bitrix/modules/alexkova.bxready2/lib/bxready.php:108


    Куда копать? Понимаю, что синтаксис, но какой именно не разобрался.

    Файл прилагаю.
     

    Вложения:

    • bxready.zip
      Размер файла:
      1,7 КБ
      Просмотров:
      4
  2. Дюран

    Дюран Активный пользователь

    С нами с:
    9 мар 2018
    Сообщения:
    285
    Симпатии:
    21
    Ну попробуйте на 57 строке вместо
    PHP:
    1. Templates::getBitrixTopPanelMenu();
    написать
    PHP:
    1. $t = new Templates(); $t->getBitrixTopPanelMenu();
     
    PetrLevanov нравится это.
  3. MikeN

    MikeN Гость

    С нами с:
    22 янв 2024
    Сообщения:
    1
    Симпатии:
    0
    Мне кажется зря так резко перескочили с 7.4, надо было на 8.0 чуть покатать на ней, там насколько помню не так больно будет )

    а так, да "Non-static method" говорит что метод не статический, и вызвать его напрямую нельзя...

    Можно так
    PHP:
    1. (new Templates())->getBitrixTopPanelMenu();
     
  4. Icons

    Icons Активный пользователь

    С нами с:
    20 апр 2018
    Сообщения:
    5
    Симпатии:
    0
    в классе Templates нужно добавить к методу "static"