Пока я работаю с WordPress, разговоры (и я использую этот термин вольно) о том, какие версии PHP он должен или не должен поддерживать, не прекращались.
- Суть в том, что некоторые видят в нем такое же большое и популярное приложение, как WordPress, которое поддерживает так много веб-сайтов на основе CMS, что должно иметь возможность использовать его влияние для создания более инновационных решений.
- Другие видят, что люди не часто обновляются, используют бюджетные хосты или просто не заботятся (не говоря уже о том, чтобы знать), какую версию PHP они используют.
Эти два пункта могли бы дать пост и комментарии в течение нескольких дней, но меня это не интересует. Поскольку моя команда и я занимаемся созданием пользовательских решений для других, у нас есть возможность подвести итоги того, где пользователи размещают свой сайт или приложение, развернуть его и использовать функции PHP, предлагаемые их хостами.
Однако бывают случаи, когда я сталкивался с некоторыми людьми, использующими версии PHP даже ниже 5.3.
Что тогда?
Во- первых, на странице требований WordPress конкретно упоминается об этом:
Если вы находитесь в устаревшей среде, где у вас есть только более старые версии PHP или MySQL, WordPress также работает с PHP 5.2.4+ и MySQL 5.0+, но эти версии достигли официального окончания срока службы.
Так что, чтобы было ясно, он работает на старых версиях PHP, но мы, как разработчики, будем сильно ограничены тем, что мы можем делать с языком. И, как упоминается на странице, не следует игнорировать последствия для безопасности и поддержку «конца жизни» версии языка.
Всякий раз, когда я работаю с плагином или чем-то, что будет работать на WordPress, и я знаю, что это должно работать на разных хостах, я предоставляю минимальный уровень поддержки. Обычно это PHP 5.6.20.
Если среда, в которой будет выполняться проект, не поддерживает это, я сообщу об этом и предотвратю запуск проекта. В контексте плагина, вероятно, лучше всего подключиться к функции register_activation_hook.
Для этого вы можете написать что-то вроде этого:
Конечно, это просто, и на дисплее используется стандартный стиль wp_die, но он тоже работает. Если у вас больше опыта или времени, вы также можете запустить проверки немного по-другому и предоставить свой собственный стиль.
Цель этого поста не в том, как это сделать. Вместо этого пункты таковы:
- определите, какую версию PHP вы собираетесь поддерживать,
- сравнить версию PHP, работающую на сервере,
- отображать сообщение, если версия PHP на сервере меньше той, которую вы будете поддерживать,
- изящно выйти.
Как вы в конечном итоге отобразите это, зависит от вас, но сути приведенного выше кода должно быть достаточно, чтобы вы начали.
Дополнительные примечания
И если вы действительно хотите углубиться в работу со строками в PHP, я рекомендую статью Карла об обработке строк в PHP.