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

Unikanie class_exists w zorientowanym obiektowo kodzie WordPress

6

Jeśli piszesz kod obiektowy dla WordPressa (zwykle w kontekście wtyczek), prawdopodobnie natkniesz się na sprawdzenie class_exists przed zainicjowaniem klasy. Ale w tym momencie powinniśmy zacząć unikać class_exists w większości naszego kodu (z kilkoma wyjątkami, które opiszę poniżej).

W zależności od używanej wersji PHP ma to sens. Albo kiedyś tak było. Od PHP 5.3.0 nie jest to konieczne. Zamiast tego lepiej jest używać przestrzeni nazw.

Unikanie class_exists

Na tej stronie możesz zobaczyć wszystkie wymagania dla różnych wersji WordPressa , więc jeśli pracujesz ze starszymi wersjami WordPressa, warto sprawdzić całą klasę class_exists.

Mimo to jest ważna uwaga :

Uwaga: jeśli korzystasz ze starszego środowiska, 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 i jako takie mogą narazić Twoją witrynę na luki w zabezpieczeniach.

Jednak dla większości z nas nowoczesne środowiska hostingowe obsługują co najmniej PHP 5.3.0, jeśli nie wyższe, dlatego nie musimy używać class_exists.

To powiedziawszy, nierzadko można zobaczyć coś takiego :

Lub tak :

Lata temu też pisałbym taki kod. Czasami było to połączenie z wcześniej istniejącą bazą kodu. Innym razem to dlatego, że nie znałem nic lepszego. Chodzi o to, że stało się to czymś, co widzimy w kodzie opartym na WordPressie, gdy nie musimy go używać.

Właściwie to twierdzę, że nie powinniśmy już go używać.

Ale im więcej kodu piszesz i im więcej kodu czytasz, tym więcej się uczysz, prawda? To część całego powodu przestrzeni nazw i automatycznego ładowania.

Jak więc napisać powyższy kod?

Może tak :

Mimo to dla niektórych pojawia się pytanie: w jaki sposób przestrzenie nazw pomagają zamiast używania class_exists?

W idealnym przypadku, jeśli ta sama klasa istnieje w przestrzeni nazw, występuje problem z przestrzenią nazw. Pamiętaj, że możesz myśleć o przestrzeni nazw jak o pakiecie składającym się z unikalnych elementów. A ponieważ są wyjątkowe, nigdy nie powinno być innego utworu ani, w tej klasie, innej, takiej jak ona.

W tym celu, zamiast sprawdzania class_exists, staraj się używać przestrzeni nazw. Oczywiście nie mówię, że wróć i zrefaktoryzuj cały swój kod – nie zrobiłem tego – ale to nie znaczy, że kod, który piszę lub recenzuję, zawiera użycie lub zalecenia.

Jest to łatwa zmiana, która może znacznie poprawić czytelność kodu, zaśmiecona mniejszą liczbą warunków (post na inny czas) i znacznie lepiej zorganizowany.

Ź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