1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Fixed XenForo и PHP 5.4

Тема в разделе "Баги XenForo", создана пользователем Kn1ght, 27.03.2012.

Загрузка
  1. Kn1ght

    Kn1ght Местный

    Регистрация:
    16.02.11
    Сообщения:
    180
    Симпатии:
    47
    Версия XF:
    1.2.4
    После обновления на тестовой машине php до версии 5.4 появились сообщения об ошибках на страницах с полями для ответов.
    Ошибки не критичные, т.е. все работает, но висят над шапкой.
    пример ошибок:


     
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Получается, что при несуществующем ключе в массиве будет генерироваться такая ошибка, а раньше прокатывало без ошибок. Исправить-то не долго - просто нужно проверять через тот же isset. Но таких кусков кода будет много, наверное.
    Других ошибок нет?
     
  3. Kn1ght

    Kn1ght Местный

    Регистрация:
    16.02.11
    Сообщения:
    180
    Симпатии:
    47
    Версия XF:
    1.2.4
    больше не вылезло, причем ошибки вылезают только там где есть поле ответа (поле поиска например таких ошибок не выдает).
     
  4. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Если ошибок в поле поиска не вылазит, значит массив корректный. Я так думаю, что разработчикам не так уж и сложно будет адаптировать ксен под 5.4.
    А зенд тут не причем.
     
  5. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Kn1ght, а версия XF при этом какая? 1.1.2 или все же как указано у вас в профиле - 1.1.0?
     
  6. Kn1ght

    Kn1ght Местный

    Регистрация:
    16.02.11
    Сообщения:
    180
    Симпатии:
    47
    Версия XF:
    1.2.4
    1.1.2
    (пошел править в профиле)
     
    Romchik® нравится это.
  7. ragtek

    ragtek Пользователь

    Регистрация:
    30.03.12
    Сообщения:
    1
    Симпатии:
    0
    Версия XF:
    1.1.2
    Were you able to find what's causing this problem?

    I have this too, but don't know why it only happens on 1 of 5 test boards:(

    sorry for disturbing your russian paradise:p
     
  8. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Kn1ght и ragtek нравится это.
  9. Kn1ght

    Kn1ght Местный

    Регистрация:
    16.02.11
    Сообщения:
    180
    Симпатии:
    47
    Версия XF:
    1.2.4
    теперь надо подождать когда дистростроители очнуться (генту в расчет не берем)
     
  10. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Hello, ragtek! :)
     
  11. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Ну можно и самому собрать. Но проще подождать :)
    Да и нет пока необходимости в переходе. Ксен врядли в ближайшем будущем будет переписан под фишки 5.4. Но, теоретически, переход на 5.4 должен дать прирост производительности, даже без переписывания кода.
    Есть, конечно, мощный плюс для плагинописателей в 5.4 - можно расширять статические методы родительских классов. Это значительно облегчит код, не заставляя переписывать куски оригинальных методов.
     
  12. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Расширять да, но не заменять. Т.е. при прямых вызовах статических методов по полному имени все равно придется переписывать по принципу copy/paste (а таких участков в ксене достаточно)
     
  13. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    А не. Я ошибся. Это появилось в 5.3, а не в 5.4. То есть нужно вместо self:: использовать static::
    Это позволяет заменить copy-paste, так как используется позднее связывание. Вызов из родительского класса вызовет перегруженный статический метод, а не свой. Тогда хелперы можно будет без проблем перегружать своими. Но при одном условии - если методы объявлены статическими.
    В любом случае это потребует от разработчиков XenForo отказаться от поддержки более ранних, чем 5.3 версий PHP. Пойдут ли они на это? Не уверен.
     
  14. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Использование static вместо self никак не облегчает написание плагинов. Расширить статические методы можно и сейчас, только смысла практически ноль, т.к. абсолютно все статик методы вызываются по полному имени.
    К примеру расширить XenForo_Link до My_Plugin_Link легко, только вот что делать с этим дочерним классом если все равно для генерации паблик ссылки везде вызывается родительский по полному имени XenForo_Link::buildPublicLink

    На данный момент в пхп 5.3 нет ничего настолько специфического, что могло бы очень сильно разогнать ксен или значительно уменьшить код по сравнению с 5.2. Единственный плюс от 5.3, что он просто быстрее 5.2 и все. Все проблемы расширяемости движка исходят из архитектуры движка, т.е. зависят только от самих разработчиков ксенфоро. Если они перепишут все вызовы статик методов с вызовов по полному имени, на вызовы через переменную, то тогда да - можно будет нормально расширять и использовать расширенные классы. Но даже тогда использование static:: лишь облегчит код плагинов и все, но ни как не будет единственным решением.
    И без static:: расширять и использовать расширенные классы можно будет, но не надо будет заморачиваться с кешированием всех имен родительских классов.
     
    maus нравится это.
  15. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Блин. Точно. Только через вызов parent и self будут вызываться "дочки". А по полному имени класса никак :(
     
  16. StWaN

    StWaN Местный

    Регистрация:
    12.08.11
    Сообщения:
    64
    Симпатии:
    30
    Версия XF:
    1.4.10
    А с PHP 5.3.10 XenForo работает без ошибок?
     
  17. angro

    angro Местный

    Регистрация:
    05.11.11
    Сообщения:
    6
    Симпатии:
    0
    Я думал это Fedora быстрея стала работать а это оказывается последний php.
    У меня критичные нагрузки были на хосте, а теперь можно ещё покрутиться полгодика.
     
  18. angro

    angro Местный

    Регистрация:
    05.11.11
    Сообщения:
    6
    Симпатии:
    0
    Здесь временное решение
    http://xenforo.com/community/posts/345799
    суть его в том что в фаиле attachment_editor_attachment перед {$attachment прописываем isset, целиком выглядит так 'isset({$attachment.thumbnailUrl})'
     
  19. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    В 1.1.3 вроде должны были пофиксить. Отпишитесь, кто обновился.
     
  20. trup1k

    trup1k Пользователь

    Регистрация:
    23.03.12
    Сообщения:
    4
    Симпатии:
    0
    Версия XF:
    1.1.3
    Обновился.Не пофиксили :(
     

Поделиться этой страницей