✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Z wdziękiem obsługuj obsługę wersji PHP w WordPress

22

Odkąd pracuję z WordPressem, rozmowa (i używam tego terminu luźno) na temat tego, które wersje PHP powinien, a których nie powinien obsługiwać, trwała.

  • Krótko mówiąc, niektórzy postrzegają go jako aplikację tak dużą i popularną jak WordPress, która obsługuje tak wiele stron internetowych opartych na CMS, powinna być w stanie wykorzystać swoją siłę do wspierania bardziej innowacyjnych rozwiązań.
  • Inni widzą, że ludzie nie często aktualizują, są na tanich hostach lub po prostu nie dbają (nie mówiąc już o zawracaniu sobie głowy wiedzą), jaką wersję PHP używają.

Te dwa punkty mogą dać post i komentarze przez wiele dni, ale nie jestem tym zainteresowany. Ponieważ mój zespół i ja zajmujemy się tworzeniem niestandardowych rozwiązań dla innych, mamy elastyczność w zakresie tego, gdzie użytkownicy hostują swoją witrynę lub aplikację, wdrażają ją i wykorzystują funkcje PHP oferowane przez ich hosty.

Zdarzają się jednak sytuacje, w których spotkałem ludzi z wersjami PHP tak niskimi jak 5.3.

Więc co wtedy?

Po pierwsze, strona wymagań WordPressa wyraźnie wspomina o tym:

Jeśli jesteś w starszym środowisku, w którym masz tylko starsze wersje PHP lub MySQL, WordPress działa również z PHP 5.2.4+ i MySQL 5.0+, ale te wersje osiągnęły oficjalny koniec życia.

Tak więc, żeby było jasne, działa na starszych wersjach PHP, ale jako programiści będziemy poważnie ograniczani przez to, co możemy zrobić z językiem. Jak wspomniano na stronie, implikacje bezpieczeństwa i wsparcie „końca życia" wersji języka nie powinny być ignorowane.

Zawsze, gdy pracuję z wtyczką lub czymś, co będzie działać na WordPressie i wiem, że będzie musiało działać na różnych hostach, zapewniam minimalne wsparcie. To zwykle PHP 5.6.20.

Jeśli środowisko, w którym ma działać projekt, nie obsługuje tego, powiadomię o tym i uniemożliwię uruchomienie projektu. W kontekście wtyczki, prawdopodobnie najlepiej podłączyć się do funkcji register_activation_hook.

Aby to zrobić, możesz napisać coś takiego:

<?php

register_activation_hook(__FILE__, __NAMESPACE__. 'acme_activate');
/**
 * Verifies that the user is running the proper version of WordPress for the
 * plugin to execute; otherwise, displays an error message and prevents the
 * plugin from being activated.
 */
function acme_activate()
{
    if (version_compare(PHP_VERSION, '5.6.20', '<')) {
        wp_die(
            sprintf(
                'Acme requires PHP 5.6.20 or higher.
                Your WordPress site is using PHP %s. Please contact your hosting
                provider and ask that they upgrade the version of PHP on which
                your installation of WordPress is running. Click back in your
                browser to your WordPress dashboard.',
                PHP_VERSION) );
    }
}

To prawda, że ​​jest prosty, a wyświetlacz używa standardowej stylizacji wp_die, ale działa również. Jeśli masz więcej doświadczenia lub czasu, możesz też trochę inaczej przeprowadzić kontrolę i stworzyć własną stylizację.

Celem tego posta nie jest jak to zrobić. Zamiast tego punkty są następujące:

  • określić, jaką wersję PHP zamierzasz obsługiwać,
  • porównaj wersję PHP działającą na serwerze,
  • wygeneruj komunikat, jeśli wersja PHP na serwerze jest mniejsza niż ta, którą będziesz obsługiwał,
  • z wdziękiem wyjdź.

To, w jaki sposób zakończysz renderowanie, zależy od Ciebie, ale sedno powyższego kodu powinno wystarczyć, aby zacząć.

Dodatkowe uwagi

A jeśli naprawdę chcesz zagłębić się w obsługę ciągów w PHP, polecam post Carla na temat obsługi ciągów w PHP.

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów