Перейти к содержанию

4.7.2 Сканер совместимости PHP 8


Maqlao

Рекомендуемые сообщения

В Invision Community 4.7.2 появился сканер совместимости PHP 8 для сторонних приложений и плагинов.

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

Зачем нам это нужно?
Базовым языком программирования, который использует Invision Community, является PHP. Последняя версия PHP 8 была выпущена в ноябре 2020 года и содержит множество критических изменений и несовместимостей, которые не имеют обратной совместимости. Некоторые из этих изменений означают, что то, что было безобидным молчаливым уведомлением, теперь является фатальной ошибкой, что означает, что если вы обновитесь с несовместимым кодом, ваше сообщество выдаст фатальную ошибку, которая приведет либо к белому экрану, либо к сообщению об ошибке на уровне сервера в вашем браузере.

Сообщество Invision не может зафиксировать и устранить эти фатальные ошибки. Фатальные ошибки находятся глубже в цепочке выполнения.

PHP 8 существует уже почти два года, а PHP 7.4 «устарел», и обновления безопасности прекратятся с ноября, что означает, что он становится небезопасным, поэтому всем придется очень скоро перейти на PHP 8.

Что это?
Средство проверки совместимости проверяет все сторонние приложения и плагины, которые вы добавили из Marketplace.

Мы рекомендуем нашим авторам Marketplace тестировать PHP 8, но не все это делают, и поэтому такие приложения и плагины, которые нормально работают с PHP 7.4, не будут работать с PHP 8.

Средство проверки совместимости сканирует весь сторонний код на наличие проблем, которые могут привести к фатальным ошибкам, и, если находит их, отключает приложение или подключаемый модуль при обновлении.

Единственный способ повторно включить приложение или обновить его — обновить его до версии, совместимой с 4.7.2, из магазина.

Могу ли я повторно включить отключенные сторонние плагины и приложения?
Да, если вы уверены, что плагины и приложения нормально работают с вашей текущей версией PHP, вы можете снова включить их до нашего ноябрьского релиза, после чего приложения будут принудительно отключены.

Стоит связаться с авторами ключевых плагинов и приложений, чтобы узнать, есть ли у них версия, совместимая с PHP8, или они планируют выпустить ее к ноябрю, чтобы вы могли подготовиться к ноябрьскому обновлению.

Это действительно необходимо?
К сожалению, да. PHP вносит смелые изменения, которые не совместимы с предыдущими версиями. Сообществу Invision повезло, что так много сторонних разработчиков выпускают приложения и плагины для дальнейшего улучшения набора функций, но у нас нет прямого контроля над этим кодом. Нашим приоритетом является обеспечение плавного обновления вашего сайта и его бесперебойной работы.

Почему сейчас?
Мы уже некоторое время работаем над совместимостью с PHP 8 и призываем наших сторонних авторов сделать то же самое и протестировать PHP 8. В августе мы также проинформировали разработчиков о сканере и о том, что он может сделать с их приложениями. Мы также выпускаем бета-версии Invision Community 4.7 с мая этого года, чтобы дать им как можно больше времени для обновления своих приложений. Внедрение этого изменения болезненно в краткосрочной перспективе, но принесет пользу всем в долгосрочной перспективе.

Что еще я могу сделать?
Ваша лицензия на самостоятельный хостинг позволяет вам выполнить тестовую установку , которую вы должны использовать в качестве промежуточного сайта, и протестировать любые обновления на этом промежуточном сайте перед выполнением обновления на рабочем сайте. Это позволит вам зафиксировать любые проблемы, которые могут возникнуть, прежде чем запускать его на своем рабочем сайте.

Как всегда, мы рекомендуем делать резервную копию перед любым обновлением, чтобы вы могли легко выполнить откат, если возникнут какие-либо проблемы.

Я использую PHP 7, влияет ли это на меня?
Да, сканер совместимости по-прежнему будет работать при обновлении и проверять наличие проблем с PHP 8, поэтому при обновлении до PHP 8 вы не обнаружите, что ваше сообщество больше не работает.

Ссылка на комментарий
Поделиться на другие сайты

очередные красные таблички в ац.. 

Ссылка на комментарий
Поделиться на другие сайты

Придется скоро на поддомен форум перетаскивать)

Ссылка на комментарий
Поделиться на другие сайты

Обычному человеку все эти пхп 7 и пхп 8 ни о чем не говорят. Да и разницу никто не заметит. Просто блажь программистов: все движутся и мы куда-то движемся.

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Anche сказал:

а PHP 7.4 «устарел», и обновления безопасности прекратятся с ноября, что означает, что он становится небезопасным, поэтому всем придется очень скоро перейти на PHP 8.

те, кто до сих пор сидит на пхп 5.4/5.6 -🗿

Ссылка на комментарий
Поделиться на другие сайты

Whenever I try to set the PHP version to 8.0 than my current 7.4, my test forum throws 500 Error over AdminCP

What works is the only main page of the website and nothing else!

It's a little pain in the ass that I haven't figured it out what causes the issue yet!

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Orpheus сказал:

Whenever I try to set the PHP version to 8.0 than my current 7.4, my test forum throws 500 Error over AdminCP

What works is the only main page of the website and nothing else!

It's a little pain in the ass that I haven't figured it out what causes the issue yet!

Have you looked at the web server logs? At 500 an error always they will be.

Ссылка на комментарий
Поделиться на другие сайты

Я один такой везучий и у меня на свежеустановленной 4.7.2.1 не работает этот сканер? Если зайти в саппорт, то кружочек в сканере крутится бесконечно, в логах ошибка ( связанная с count() в самом Scanner.php ).

Ссылка на комментарий
Поделиться на другие сайты

Desti видимо, да. у меня везде ошибки выдаёт.

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, by_ix сказал:

видимо, да. у меня везде ошибки выдаёт.

Судя по всему они не предусмотрели варианта, когда ошибок нет :) Если разрешить приложение с ошибкой, то всё нормально, создается массив ошибок и сканер срабатывает, а если ошибок нет, массив не создается и лезет любимая ошибка с count()

Для любопытных - исправляется заменой в system/Application/Scanner.php (строка 434)

if ( !empty( $methodIssues ) 

на                         

if ( !empty( $methodIssues )  && \is_array($methodIssues)  )

Ссылка на комментарий
Поделиться на другие сайты

4.6.12.1 :bt:

и не парюсь.

хотя Вам парни большое спасибо, за ошибки все что меня ожидают :bk:

Ссылка на комментарий
Поделиться на другие сайты

11 часов назад, SlawkA сказал:

спасибо, за ошибки все что меня ожидают

Безумству храбрых поем мы песню. 😀

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

12 часов назад, SlawkA сказал:

4.6.12.1 :bt:

Invision Community v4.6.8 

и тоже не парюсь)) что может быть стабильнее последней официальной лицензией перед концом срока её)))

Изменено пользователем the.bunin
Ссылка на комментарий
Поделиться на другие сайты

On 9/23/2022 at 12:25 AM, September^^ said:

Have you looked at the web server logs? At 500 an error always they will be.

Nope, not yet...I am so lazy to do that!

I am currently on PHP 7.4, but it seems like that I need to change the PHP version to 8 or 8.1 sooner no matter what!

Ссылка на комментарий
Поделиться на другие сайты

On 9/23/2022 at 12:25 AM, September^^ said:

Have you looked at the web server logs? At 500 an error always they will be.

It might sound like mbstring extension isn't loaded, but I suppose it does load but still throws an error

Quote

[25-Sep-2022 11:41:02 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function IPS\mb_internal_encoding() in /home/mywebsite/public_html/init.php:558

Stack trace:

#0 /home/mywebsite/public_html/init.php(1435): IPS\IPS::init()

#1 /home/mywebsite/public_html/applications/core/interface/task/task.php(29): require_once('/home/mywebsite/...')

#2 {main}

  thrown in /home/mywebsite/public_html/init.php on line 558

[25-Sep-2022 11:42:01 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function IPS\mb_internal_encoding() in /home/mywebsite/public_html/init.php:558

Stack trace:

#0 /home/mywebsite/public_html/init.php(1435): IPS\IPS::init()

#1 /home/mywebsite/public_html/applications/core/interface/task/task.php(29): require_once('/home/mywebsite/...')

#2 {main}

  thrown in /home/mywebsite/public_html/init.php on line 558

[25-Sep-2022 11:43:01 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function IPS\mb_internal_encoding() in /home/mywebsite/public_html/init.php:558

Stack trace:

#0 /home/mywebsite/public_html/init.php(1435): IPS\IPS::init()

#1 /home/mywebsite/public_html/applications/core/interface/task/task.php(29): require_once('/home/mywebsite/...')

#2 {main}

  thrown in /home/mywebsite/public_html/init.php on line 558

[25-Sep-2022 11:44:01 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function IPS\mb_internal_encoding() in /home/mywebsite/public_html/init.php:558

Stack trace:

#0 /home/mywebsite/public_html/init.php(1435): IPS\IPS::init()

#1 /home/mywebsite/public_html/applications/core/interface/task/task.php(29): require_once('/home/mywebsite/...')

#2 {main}

  thrown in /home/mywebsite/public_html/init.php on line 558

This only happens when I change the PHP version from 7.4 to 8.0

Изменено пользователем Orpheus
Ссылка на комментарий
Поделиться на другие сайты

sudo apt install php8.n-mbstring (n - your php version suffix)

Изменено пользователем Desti
Ссылка на комментарий
Поделиться на другие сайты

А кто может дать ссылку на совместимость разных версий форума с версиями php?

Изменено пользователем aplayer
Ссылка на комментарий
Поделиться на другие сайты

21 hours ago, Desti said:

sudo apt install php8.n-mbstring (n - your php version suffix)

Do you mean to install mbstring? I guessed the same, but it's already installed/enabled.

And I am using cPanel's PHP Selector!

Ссылка на комментарий
Поделиться на другие сайты

run php code

print_r(get_loaded_extensions());
Ссылка на комментарий
Поделиться на другие сайты

2 hours ago, Desti said:

run php code

print_r(get_loaded_extensions());

Thanks,

I will do that and get back to you once I am done!

Ссылка на комментарий
Поделиться на другие сайты

20 hours ago, Desti said:

run php code

print_r(get_loaded_extensions());

PHP 7.4

Quote

Array ( [0] => Core [1] => date [2] => libxml [3] => openssl [4] => pcre [5] => sqlite3 [6] => zlib [7] => bz2 [8] => calendar [9] => ctype [10] => curl [11] => hash [12] => filter [13] => ftp [14] => gettext [15] => gmp [16] => SPL [17] => iconv [18] => pcntl [19] => readline [20] => Reflection [21] => session [22] => standard [23] => shmop [24] => SimpleXML [25] => mbstring [26] => tokenizer [27] => xml [28] => litespeed [29] => i360 [30] => bcmath [31] => dba [32] => dom [33] => enchant [34] => fileinfo [35] => gd [36] => imagick [37] => imap [38] => intl [39] => json [40] => ldap [41] => exif [42] => mysqlnd [43] => mysqli [44] => odbc [45] => PDO [46] => pdo_mysql [47] => PDO_ODBC [48] => pdo_pgsql [49] => pdo_sqlite [50] => pgsql [51] => Phar [52] => posix [53] => pspell [54] => snmp [55] => soap [56] => sockets [57] => sysvmsg [58] => sysvsem [59] => sysvshm [60] => tidy [61] => timezonedb [62] => xmlreader [63] => xmlrpc [64] => xmlwriter [65] => xsl [66] => zip )

PHP 8.0

Quote

Array ( [0] => Core [1] => date [2] => libxml [3] => openssl [4] => pcre [5] => sqlite3 [6] => zlib [7] => bz2 [8] => calendar [9] => ctype [10] => curl [11] => hash [12] => filter [13] => ftp [14] => gettext [15] => gmp [16] => SPL [17] => iconv [18] => json [19] => pcntl [20] => readline [21] => Reflection [22] => session [23] => standard [24] => shmop [25] => SimpleXML [26] => mbstring [27] => tokenizer [28] => xml [29] => litespeed [30] => i360 [31] => bcmath [32] => dba [33] => dom [34] => enchant [35] => fileinfo [36] => gd [37] => imagick [38] => imap [39] => intl [40] => ldap [41] => exif [42] => mysqlnd [43] => mysqli [44] => odbc [45] => PDO [46] => pdo_mysql [47] => PDO_ODBC [48] => pdo_pgsql [49] => pdo_sqlite [50] => pgsql [51] => Phar [52] => posix [53] => pspell [54] => snmp [55] => soap [56] => sockets [57] => sysvmsg [58] => sysvsem [59] => sysvshm [60] => tidy [61] => timezonedb [62] => xmlreader [63] => xmlrpc [64] => xmlwriter [65] => xsl [66] => zip )

Both load the same type & number of extensions.

I wonder, what is the problem, then?

Ссылка на комментарий
Поделиться на другие сайты

Ссылка на комментарий
Поделиться на другие сайты

Orpheus no idea. If i disabled mbstring from command line (phpdismod -v 8.1 -s fpm mbsting) and restart php-fpm, my script return error 500. 

PHP Fatal error:  Uncaught Error: Call to undefined function mb_internal_encoding() in /home/desti/4.7.2.1/test.php:4

You run code via browser or from command line? 

Ссылка на комментарий
Поделиться на другие сайты

On 9/27/2022 at 1:54 PM, Desti said:

You run code via browser or from command line?

Browser

P.S. Sorry for the late reply!

Изменено пользователем Orpheus
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...