Стоит ли переходить на новую версию PHP 7.0 ? – Однозначно стоит, даже не думайте - переходите!

В седьмой версии достаточно много нововведений. Основные из них:

  • в основе ядра PHP 7 используется PHPNG . Новое ядро дает прирост производительности сайтам от 40%;
  • type Hints и возвращаемые значения . Теперь при объявлении функции для каждой переменной можно указывать свой тип, а также тип данных, который вернет функция. Доступные типы: int , float , string и bool ;
  • комбинированный оператор сравнения и многое другое.

В PHP 7 были удалены некоторые расширения:

  • mysql

Уже в PHP 5.6.x использование этих расширений было нежелательным. Вместо «mysql» следует использовать «PDO», а вместо ereg → preg .

Более детально ознакомиться с новинками PHP 7 можно на официальной странице

Стоит ли переходить на PHP 7?

На данный момент самое простое, что вы можете сделать для увеличения производительности сайта, это перейти на PHP 7.0.x. Прирост скорости также зависит от того, как написан ваш проект. Если вы еще сомневаетесь, покажем некоторые сравнения:

Бенчмарки PHP 5.6 vs PHP 7 для нектоторых фреймфорков (Zend framework, Magento, Drupal, Mediawiki, WordPress, Laravel, SugarCRM и др):

По всем фреймворкам прирост производительности значительный. Давайте посмотрим, как обстоит дело с функциями и конструкциями ядра:

Бенчмарки PHP 5.6 vs PHP 7 для функций и конструкций ядра:

Если графики вас убедили, можно попробовать перенести свой сайт на новую версию PHP и ощутить прирост на реальном проекте.

Коллеги с Elasticweb рассказали, что перед запуском нового сервера с PHP 7 они запустили на нем крупный государственный проект, работающий на Laravel 5. Это был своеобразный тест производительности новой версии PHP и сервера в целом. Ранее этот проект был на сервере с PHP 5.6. После переноса сайта страницы начали открываться значительно быстрее, при этом использование ресурсов сократилось вдвое.

Для подготовки переезда на PHP 7 они использовали PHP 7 Migration Assistant Report (MAR) . Большинство популярных CMS/Framework уже обладают совместимостью с PHP 7, поэтому основная задача сводилась к тестированию custom плагинов.

WordPress 4, Drupal 8/7 и последняя версия Joomla уже готовы к PHP 7!

Итак, у вас есть старенький, но уж очень милый сердцу сайт, который вы решаетесь из жалости (или, возможно, перечитав Хабра) перевести на PHP7. С волнением ожидая резкого роста производительности, вы смахиваете пыль с бедного сайта и решительно переключаете в панели управления хостингом версию PHP.

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

Но предположим, что ваша сильная сторона - настойчивость, к тому же вы располагаете некоторым количеством времени для экспериментов. Давайте попробуем все починить.

Резервные копии

Делаем резервные копии сайта (а заодно и баз данных). Ведь кто не делает резервные копи - сам себе враг, верно? Для разного рода экспериментов имеет смысл добавить еще один сайт на хостинге и скопировать в него файлы, которые мы сейчас будем править.

Журналы ошибок

Настроим ведение журнала ошибок PHP в файл.htaccess (если он не был настроен ранее):

php_value display_errors 0
php_value log_errors 1
php_value error_log /home/vasya/domains/mysite.ru/logs/error.log

Работа с MySQL

Допустим, сайт использует базы данных, и вы видите ошибки вроде такой:

Fatal error: Uncaught Error: Call to undefined function mysql_connect()

Это оттого, что в современных версиях PHP (начиная с PHP 5.5.0) оригинальное расширение MySQL не поддерживается. Разработчики рекомендуют использовать MySQLi или PDO. Попробуем перейти на MySQLi, это просто:

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

$link = mysql_connect(‘localhost’, $user, $password)
mysql_select_db($dbname, $link)
mysql_query(‘set names cp1251’)

можно заменить на:

$link = mysqli_connect(‘localhost’, $user, $password, $dbname)
mysqli_query($link, ‘set names cp1251’)

для запросов:

$result=mysql_query($query,$cid)

заменить на:

$result=mysqli_query($cid, $query)

Другие популярные функции легко меняются на их аналоги с буквой ‘i’:

mysqli_fetch_array()
mysqli_fetch_row()
mysqli_fetch_assoc()
mysqli_fetch_array()
mysqli_num_rows()
mysqli_insert_id()
mysqli_close()

В результате этих несложных действий данные из БД должны успешно собираться и отправляться.

Кодировка

Настоящий олдскул - это сайт в CP1251 (как минимум). Всё превратилось в ромбики или прочие козяблики?

Скорее всего, достаточно будет указать кодировку в.htaccess таким образом:

php_value default_charset «cp1251»

Регулярные выражения

Также вы можете наблюдать ошибки следующего рода:

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead

Это означает, что модификатор /e, который позволял передать произвольной функции результат регулярного выражения, теперь не поддерживается. В таких случаях рекомендуется использовать функцию preg_replace_callback

Допустим, у нас есть такое регулярное выражение:

$string=preg_replace(«/:({1,10}):/e», «print_smile(‘\\1’)», $string)

с заменой на preg_replace_callback оно должно выглядеть вот так:

$string=preg_replace_callback(«/:({1,10}):/», create_function(‘$matches’, ‘return print_smile($matches)’), $string)

здесь все просто, регулярное выражение теперь указывается в качестве первого аргумента (без модификатора /e, разумеется), а в качестве второго аргумента указывается анонимная функция (которая будет выполнена после применения регулярного выражения) с двумя аргументами: массив $matches, где будут сохранены данные, совпадающие с регулярным выражением и вызов внешней функции с аргументами. В данном примере внешняя функция называется print_smile и ей передается аргументом первое найденное вхождение. То, что в preg_replace было \\1 (первое найденное вхождение) станет $matches (если аргументов было больше, то будет $matches, $matches и так далее).

Вот еще один пример, посложнее:

Было так:

$out=preg_replace(«/<(=[\’\»]{0,1}|)(.*?)([\’\»]{0,1})>(.*?)<\/>/es», «feed_out_sub_rm(‘\\2′,’$base_prefix’,’$nick’,’$id_entry’)», $out)

Стало вот так:

$out=preg_replace_callback(‘/<(=[\’\»]{0,1}|)(.*?)([\’\»]{0,1})>(.*?)<\/>/s’, create_function(‘$matches’, ‘return feed_out_sub_rm($matches, «‘.$base_prefix."», «‘.$nick."», «‘.$id_entry."») ‘), $out)

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

Копаясь в регулярных выражениях, можно вспомнить еще про две функции, которые с версии PHP 5.3.0 считаются устаревшими (и не поддерживаются). Симптомы следующие:

Fatal error: Uncaught Error: Call to undefined function ereg_replace()

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

$str=ereg_replace(«[\r\t\n]»,»»,$str)
$str=preg_replace(«/[\r\t\n]/»,»»,$str)

Аналогичный симптом:

Fatal error: Uncaught Error: Call to undefined function split()

$var_pair=split(«=»,$tmp)

$var_pair=explode(«=»,$tmp)

Если регулярное выражение посложнее, то пробуем преобразовать к preg_split.

Если что-то не получается, или ваш случай совсем не похож на наши примеры - пишите комментарии, попробуем разобраться вместе.

Для того, чтобы оставлять комментарии к посту, авторизуйтесь, используя свой аккаунт в социальных сетях ВКонтакте/FaceBook, или аккаунт в Google/Яндекс.

Добрый день уважаемые читатели и подписчики, наверняка многие из вас слышали информацию, о том, что поисковая система Google прилагает огромные усилия, для перевода всех сайтов в интернете на безопасное соединение https, за счет установки сертификатов шифрования для веб сайтов , предлагая вебмастерам получить бонусы в поисковой выдаче, при прочих равных. Вот и я всерьез задумался над этой задачей, планируя осуществить переезд сайта в летнее время, но перед этим делом я должен все подготовить и одной из ступеней подготовки я для себя поставил, переход с php 5 на php 7, на своем хостинге mchost.ru

Для чего мне переход с php 5 на php 7

На это меня натолкнуло две вещи:

  • Я получаю больше функциональных возможностей от php 7
  • Я уменьшаю нагрузку на свои ресурсы и уменьшая количество запросов, тем самым увеличивая скорость загрузки сайта, очень сейчас актуально для мобильной поисковой выдачи, процент которой уже перевалил за 50 процентов.

Я вам уже описывал в статье, как мой сайт загибался от нагрузки парсинга не него, и техническая поддержка, после решения проблем, так же порекомендовала, при поддержке сайтом php 7, перейти именно на нее. Тесты сравнения производительности php 5 и php 7 , смотрите по ссылке.

Смена версии php

Так как у меня VPS хостинг на mchost, то это делается очень просто. Заходим в личный кабинет, по адресу https://cp.mchost.ru/login.php. Далее как любой нормальный человек, вы должны сделать резервную копию сайта. Заходим в пункт резервные копии, выбираем сайт и создаем.

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

В пункте php для домена, у вас отобразится список возможных версий, на текущий момент самой последней является FastCGI PHP 7.1

Начнется процесс перехода с php 5 на php 7, в справа у вас будет прогресс бар.

как видите, до изменения версии, у меня это 5.4.45

Смотрим теперь 7.1

Хочу отметить, что сам перевод между версиями, может занять до 15 минут, так, что лучше это действие отложить на вечернее время

Если кстати хотите получить 3 месяца халявы от данного хостинга, то щелкайте по баннеру ниже и вводите промокод 48C4-D018-AC60-50C6

После того как вы перевели сайт на свежую версию, проверьте весь функционал вашего ресурса, все ли работает и отображается корректно, если нет у вас два выхода, 1 это откатиться, второй это доработать сайт.

Возможные проблемы

Бывают случаи, что вы получаете ошибку: Ошибка установки соединения с базой данных

Решается она просто, вам нужно обновить пароль на базу данных, в личном кабинете. Выбираем пункт Базы данных и щелкаем по нужной (редактировать)

Задаем заново пароль.

Если например вы не помните пароль от нее и у вас движок сайта, как и у меня WordPress, то можно подключить к ftp серверу и найти в корне сайта файл wp-config.php

Откройте его и найдите поле (Пароль к базе данных MySQL)

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


Обязательно ли переходить на PHP 7 для CMS Joomla

Начиная с версии Joomla! 3.5 вышло много весьма полезных дополнений, однако самым главным изменением стало то, что среднестатистический пользователь заметит отнюдь не сразу. И речь, конечно, о возможности поддержки PHP 7.

Заходя в админку выдается предупреждение: Ваша версия PHP, 5.6.29, в настоящее время получает только исправления безопасности от проекта PHP. Это означает, что ваша версия PHP скоро не будет поддерживаться. Мы рекомендуем запланировать обновление до новой версии PHP до конца поддержки 31.12.18. Joomla будет быстрее и более безопасной, если вы обновитесь до новой версии PHP (рекомендуется PHP 7.x). Пожалуйста, свяжитесь с вашим хостингом для получения инструкции по обновлению.

Попробуем разобраться.

Если вас смущает только это предупреждение в админке, то дальше можете не читать, а просто отключить через Менеджер плагинов - Плагин определения версии PHP. На работоспособность сайта это никак не отразиться, а раздражающее вас уведомление (картинка выше) пропадет.

PHP 7 не стоит недооценивать. С его помощью можно снизить показатели отказов и сбоев, увеличить скорость загрузки страниц и сделать работу более мобильной.

Если вы уже читали статьи о принципе и преимуществах использования PHP 7, то наверняка знаете о том, что, по словам разработчиков, внедрение данного языка в CMS значительно повышает их производительность. Однако как же это повлияло непосредственно на Joomla? Этот вопрос и будет рассмотрен в данной статье.

PHP 7 в основном славиться производительность и уменьшением потребляемой памяти. Разработчики и блоггеры утверждают, что код выполняется почти вдвое быстрее по сравнению с php5.6

Но, главная проблема с PHP7 - она не обратносовместима с PHP5.6. Т.е. разработчики не гарантируют, что ваш старый код будет работать в новой версии PHP.

Обновленная версия PHP 7 стала самым весомым событием и важным изменением для PHP, начиная с версии PHP 5, которая, кстати, имела немало недочетов и нареканий от пользователей. Команда разработчиков PHP заявляет о значительном прогрессе в данном, обновленном продукте: производительность повышена вдвое, также на 50% было снижено потребление памяти, в сравнении с предыдущей версией. Также присутствуют новые функции: конвертирование неисправных ошибок в исключения, добавления классов и операторов. Однако есть и плохие новости касающихся пользователей CMS Joomla.

Старые версии Joomla 3 (до 3.5) и Joomla 2.5 и 1.5 линеек - не поддерживают PHP7.

Проводилось много тестов для оценки различных показателей работы (производительности) Joomla и php7, например https://www.gavick.com/blog/joomla-php-7-speedtest https://habr.com/company/mailru/blog/350686/

Все они свидетельствуют о 45-50% приросте производительности и снижении нагрузки на сервер, что важно при тяжелых и посещаемых сайтов.

Как показывают результаты исследования, введение поддержки PHP 7 в последний релиз Joomla! является крупнейшим доступным улучшением, предлагая гораздо больше, чем простое обновление функций.

Хотя это не то, что вы обязательно заметите, на первый взгляд, тот факт, что скорость загрузки является важным фактором вашего сайта, показатель отказов, а также улучшение потребления памяти важно для сайтов, которые имеют большое количество посетителей и просмотров страниц. На 40% меньше памяти на одну страницу - это действительно много! Учитывая все это, единственный вопрос почему не обновиться сейчас?

Очевидно, что скорость и улучшение памяти - весьма привлекательные параметры, которыми хочется воспользоваться как можно быстрее. Однако в данном деле лучше не спешить, а произвести все обдуманно . Ведь, скорее всего ваш сайт был инсталлирован с использованием ранних версий Joomla! и PHP. И тот факт, что версия Joomla! 3.5 и выше совместима с последним релизом РНР 7 не гарантирует совместимость в сторонних расширениях , уже установленных на вашем сайте. Поэтому, прежде чем приступить к установке обновленной версии РНР, стоит произвести обновление самой Joomla до актуальной версии и проверить совместимость расширений, установленных на вашем сайте. Не забудьте также проверить: совместим ли ваш хостинг с PHP 7. Если нет, то возможно, самое время поискать другого современного хостера , который позволит вам воспользоваться всеми преимуществами новой версии PHP.

Я использую простой подход - если расширение обновлялось в этом году (да и не раз) - то вероятность его совместимости с php7 высока. Но это не факт! Нужно пройтись по сайтам разработчиков ваших расширений и посмотреть там. Есть еще проблема для неподготовленных простых пользователей. Скорее всего у вас менялись шаблоны расширений или они подгонялись под вас, не всегда шаблон расширения вынесен в папку шаблона сайта. При обновлении расширений поверх, может исказится дизайн. Возможно придется выносить шаблоны расширений в правильное место - папка html вашего шаблона сайта. Поэтому всегда все надо делать с архивами базы и всех файлов!!!

Если у вас есть какие то платные расширения под домен (например для интернет-магазина), то большая вероятность, что они скомпилированы под IonCube, Opcache или даже старый Zend Optimizer хостинга под определенную версию php и работать не будут. Надо узнать у разработчика такого расширения - вышло ли обновление под php7 и скачать его. К счастью это не частая ситуация для обычных сайтов, но возникает в интернет-магазинах, где часто докупаются платные расширения. Например, вот этот разработчик https://joomshopping.pro/ забил на все, не обновляет расширения под php7, никому не отвечает. И такое бывает. Вам придется искать замену таким расширениям или оставить все как есть на php5.6 (рекомендуется).

Произведите полный аудит - что у вас установлено, каких версий и имеется ли совместимость с php7.

Ничего страшного с вашим сайтом, если вы просто переключите в личном кабинете хостинга на php 7 для эксперимента - не произойдет. Переключите в случае чего обратно и все. Этого боятся не надо.

После переключения проверьте работоспособность сайта, всех расширений, админку сайта. Обязательно! зайдите в Общие настройки сайта и Включите Показ всех ошибок для разработчика. Если ошибок в админке не будет, то уже хорошо, переходите на сайт. Даже если их огромное количество - не пугайтесь, попробуйте посмотреть внимательно в коды ошибок. Там как правило в пути ошибки указан компонент (плагин, модуль) и файл в котором она происходит. Обновите этот компонент для начала.

Часто используется страница ошибок своя, а сайт не грузится после перехода на php7 и сразу выдает эту страницу. а на ней не указан код ошибки. При такой ситуации - в папке своего шаблона временно переименуйте error.php. Тогда будет загружаться стандартная страница ошибки и в ней будет строка с указанием пути.

Даже если у вас Joomla 3.8+ не факт, что при переходе на php7 ничего не сломается: некоторые плагины и компоненты ещё не поддерживают php7.

Проблема тут в том, что в php 7 изменили порядок применения операторов (и не только):

Исходный код:
$foo->$bar["baz"]
В версии php5.6 понимается как:
$foo->{$bar["baz"]}
А, php7 понимает его уже совсем по-другому:
($foo->$bar)["baz"]

В принципе, если компонент очень ценен для вас, то вы можете самостоятельно исправить проблему, расставив в нужных местах скобки: $foo->{$bar["baz"]}. Для этого в админке Joomla включаете показ всех возможных ошибок, а потом по именам файлов и номерам строчек ищете соответствующие проблемы.

Ошибок бывает много. Для примера: Ошибки и решения при обновлении шаблонов SJ для использования PHP 7.x:

1. Карта Google

Ошибка:
Устаревшие: методы с тем же именем, что и их класс, не будут конструкторами в будущей версии PHP; Plugin_googleMaps имеет устаревший конструктор в /plugins/system/ytshortcodes/includes/libs/googlemap/googleMaps.lib.php в строке 385

Найти: function Plugin_googleMaps

2. Директива Cookie Lite

Ошибка:
Устаревшие: методы с тем же именем, что и их класс, не будут конструкторами в будущей версии PHP; plgSystemEUCookieDirectiveLite имеет устаревший конструктор в /plugins/system/EUCookieDirectiveLite/EUCookieDirectiveLite.php в строке 37

Перейти к: /plugins/system/EUCookieDirectiveLite/EUCookieDirectiveLite.php

Найти: function plgSystemEUCookieDirectiveLite

Заменить на: function __construct

3. Рамочная программа YT

Ошибка:
Устаревшие: методы с тем же именем, что и их класс, не будут конструкторами в будущей версии PHP; YtFrameworkTemplate имеет устаревший конструктор в /plugins/system/yt/includes/site/lib/yt_template.php в строке 16

Найти: функция YtFrameworkTemplate

Заменить на: function __construct

4. YT Framework Render XML

Ошибка:
Устаревшие: методы с тем же именем, что и их класс, не будут конструкторами в будущей версии PHP; YtFrameworkRenderXML имеет устаревший конструктор в / plugins / system / yt / includes / site / lib / yt_renderxml.php в строке 13

Найти: функция YtFrameworkRenderXML

Заменить на: function __construct

5. Рамочный объект YT

Ошибка:
Устаревшие: методы с тем же именем, что и их класс, не будут конструкторами в будущей версии PHP; YtObject имеет устаревший конструктор в /templates/sj_imag/menusys/ytobject.php в строке 13

Найти: функция YtObject

Заменить на: function __construct

6. JW Все видео

Ошибка:
Устаревшие: методы с тем же именем, что и их класс, не будут конструкторами в будущей версии PHP; plgContentJw_allvideos имеет устаревший конструктор в /plugins/content/jw_allvideos/jw_allvideos.php в строке 18

Перейти к: /plugins/content/jw_allvideos/jw_allvideos.php

Найти: function plgContentJw_allvideos

Заменить на: function __construct

Ошибки Strict Standards чаще всего лечатся - Убрать из строки &

Вариантов ошибок много и если вы ничего не понимаете - либо оставьте как есть, либо обновите Joomla и все расширения до совместимости с php7 и потом попробуйте переключится на нее. Либо обратитесь к специалистам.

Выводы

Переходить на php7 всё-равно когда-нибудь потребуется для новых сайтов, посещаемых сайтов, сайтов с большой нагрузкой и тд. Joomla 4 будет работать только с php7. И переход этот не будет безболезненным: скорее всего потребуется что-то исправлять или от чего-то отказываться. Чтобы все заработало сразу и без одной ошибки - маловероятно!

В качестве совета могу посоветовать подождать ещё немного: возможно кто-то из разработчиков шаблонов/компонентов/модулей/плагинов имеющихся у вас - выпустит новую версию, совместимую с PHP7. Сейчас уже некоторые расширения нельзя обновить на php5.6 - пишет, что нужна php7. Переходное время, как известно - тяжелое.

Но если ваш сайт работает прекрасно, вы всем довольны - то не надо вообще ничего этого делать. Не нужна вам эта гонка обновлений, она бывает очень неприятной и болезненной! Разве подумать еще - о дополнительной безопасности вашего сайта.

Если вас раздражают все эти сообщения об обновлениях, версиях php, письма на почту и тд. - зайдите в менеджер плагинов и выключите плагины - уведомление об обновлениях расширений, уведомление об обновлениях Joomla, Проверка версии php, Отправка писем об обновлении (уведомления) и так же статистику. И живите и работаете спокойно.

Часто спрашивают - "написано, что безопасность страдает при php5.6". Не сильно, и если ваш сайт правильно защищен (читайте на нашем специализированном сайте - https://joomlahealth.ru), то прекрасно и безопасно будет работать и на старых версиях Joomla и на старых версиях php.

При создании новых сайтов - однозначно, сразу надо делать на php7!

В заключении несколько переводов цитат с официального сайта Joomla по поводу php 7 и Joomla 4:

С перспективой Joomla 4 в следующем году мы хотели бы повысить осведомленность о необходимости обновления до PHP 7.
Joomla 4 потребует PHP 7 для запуска. Большинство хостеров уже предлагают PHP 7 в своих пакетах, и вам будет довольно легко изменить версию PHP.

Причины, по которым вам надо обновить PHP:

PHP 7 лучше

PHP 7 на самом деле имеет улучшение производительности, благодаря которому ваш сайт будет работать в два раза быстрее (по сравнению с PHP 5+) и потребляет на 50% меньше памяти. PHP 7 также более безопасен и позволяет вам делать больше как разработчику.

Joomla 4 будет иметь огромные улучшения как для пользователей, так и для разработчиков. Исправленный код, обновленный фреймворк, отличные новые функции и многое другое. В ядре будет реализована Bootstrap 4, появятся 2 новых шаблона (frontend и backend), новый медиа-менеджер понравится многим.

Поскольку Joomla 4 все еще находится в стадии разработки, то список функций будет еще расширяться.

Обновленная структура

Обновленный Framework (версия 2.0), поставляемый с Joomla 4, имеет некоторые значительные улучшения. API базы данных будет изначально поддерживать подготовленные операторы, что является существенным улучшением безопасности. Хранение зашифрованных данных теперь возможно с помощью модульного компонента Keychain. Инструменты командной строки можно создавать лучше и безопаснее благодаря новому компоненту консоли.

Это более безопасно и поддерживается

Версии, более старые, чем PHP 5.6, больше не поддерживаются для исправлений безопасности. Если в PHP 5.3 обнаружена какая-то большая уязвимость, никто не собирается ее исправлять, и ваш сайт будет уязвим. Используя последнюю версию, вы всегда будете знать, что об этих возможных проблемах позаботятся, и обновления будут доступны вам очень быстро, когда они появятся.
Поскольку PHP 7 является последней основной версией, она будет поддерживаться в течение длительного времени (включая второстепенные выпуски), поэтому ваш веб-сайт Joomla 4 будет легко работать до 2025 года.

Что если я не могу обновить?

Важно помнить, что Joomla 3.9+ будет поддерживаться в течение двух лет после ее выпуска. Это означает, что вы можете комфортно управлять своим сайтом Joomla 3 до 2020 года, но вы упустите все замечательные возможности и преимущества Joomla 4.

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

М. Бабкер

Смысл тут один - Joomla 4 будет работать только на php7+. 3 же линейка Joomla может работать на php5+.

Обновлять или не обновлять - решать только вам, с учетом всего мною написанного в начале статьи...

Стоит ли переходить на новую версию PHP 7.0 ? - Однозначно стоит, даже не думайте — переходите!

В седьмой версии достаточно много нововведений. Основные из них:

  1. в основе ядра PHP 7 используется PHPNG. Новое ядро дает прирост производительности сайтам от 40%;
  2. type Hints и возвращаемые значения. Теперь при объявлении функции для каждой переменной можно указывать свой тип, а также тип данных, который вернет функция. Доступные типы: int, float, string и bool;
  3. комбинированный оператор сравнения и многое другое.

В PHP 7 были удалены расширения:

  • mysql

Удаленные расширения давно были в статусе "deprecated", их использование приводило к выводу на экран warning. Вместо "mysql" нужно использовать "mysqli" или "pdo_mysql", а вместо "ereg" => "preg_*".

Более детально ознакомиться с новинками PHP 7 можно на официальной странице .

Стоит ли переходить на PHP 7?

На данный момент самое простое, что вы можете сделать для увеличения производительности сайта, это перейти на PHP 7.0.x. Прирост скорости также зависит от того, как написан ваш проект. Если вы еще сомневаетесь, покажем некоторые сравнения:

Бенчмарки PHP 5.6 vs PHP 7 для нектоторых фреймфорков и CMS (Zend framework, Magento, Drupal, Mediawiki, WordPress, Laravel, SugarCRM и др):

По всем фреймворкам прирост производительности значительный. Давайте посмотрим, как обстоит дело с функциями и конструкциями ядра:

Если графики вас убедили, можно попробовать перенести свой сайт на новую версию PHP и ощутить прирост на реальном проекте.

При создании ноды, выберите в списке серверов "Blue", для того чтобы нода была создана на сервере с PHP 7.

Вот так показывает себя 1c bitrix на базе SSD диска и PHP 7.0



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png