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

Zatrzymaj wykonywanie wtyczki bez zależności

6

Jeśli podchodzisz do tworzenia wtyczek do WordPressa z perspektywy obiektowej, to w końcu dojdziesz do punktu, w którym nie będziesz komunikować się bezpośrednio z samym rdzeniem WordPressa.

I moim zdaniem to dobra rzecz. To znak architektury, że właściwie budujesz swój kod. To znaczy:

  1. Masz WordPressa siedzącego na poziomie podstawowym,
  2. Masz zestaw klas, które siedzą tuż nad WordPress, odpowiedzialne za wysyłanie informacji do i z WordPressa pomiędzy wtyczką,
  3. I masz resztę kodu, która obejmuje pozostałą część funkcjonalności.

Sposób, w jaki to jest zaimplementowane, może się różnić, ale ogólnie wyobrażam sobie to w ten sam sposób, w jaki myślę o standardowej aplikacji N-warstwowej, w której masz warstwę danych, warstwę aplikacji i front-end.

Poza tym razem masz WordPressa, warstwę do komunikacji z WordPressem i resztą kodu, a także, wiesz, z resztą kodu.

Jak można zorganizować wtyczkę.

Co się dzieje, gdy chcesz zatrzymać wykonywanie wtyczki, gdy musi ona wchodzić w interakcje z zależnością innej firmy i powinna być wykonywana tylko wtedy, gdy ta zależność jest obecna?

Zatrzymaj wykonywanie wtyczki

Ze względu na naturę PHP i WordPressa można to zrobić na kilka sposobów. Kod, który zamierzam udostępnić, nie określa sposobu, w jaki to zrobić.

Zamiast tego jest to sposób na zrobienie tego (który został wyciągnięty z czegoś, co jest w fazie rozwoju). Ponadto pokażę, jak współdziała z kilkoma innymi składnikami wtyczek.

1 Konstruktor

Jeśli przeczytasz wystarczająco dużo artykułów o WordPressie i programowaniu obiektowym, prawdopodobnie odkryjesz, że konstruktorów nie należy używać do definiowania hooków. I zgadzam się.

Tworzy niepotrzebny poziom sprzężenia i utrudnia testowanie. Jaki jest zatem cel konstruktora w kodzie opartym na WordPressie?

Używam go z tych samych powodów, których można oczekiwać w każdym innym języku: Aby zainicjować właściwości klasy. W poniższym kodzie zobaczysz trzy rzeczy:

  1. inicjuję właściwość,
  2. Sprawdzam, czy istnieje zależność od innej firmy,
  3. Jeśli nie, to dodaję komunikat o błędzie,
  4. Aktualizuję nieruchomość.

Jasne, jest gadatliwy, ale nie ucieka się też do sprytnego kodu do inicjowania wartości.

(Im jestem starszy, tym bardziej polubiłem konkretny kod, ponieważ ułatwia on czytanie, chwytanie i korzystanie z szybszego tempa niż alternatywa).

2 Metoda inicjalizacji

Ponieważ nie używamy konstruktora do pracy z hookami WordPress, ta funkcjonalność powinna istnieć w kontekście innej metody.

To daje nam wydzielone miejsce na umieszczenie tego typu funkcji, oddzielenie jej od reszty klasy i interakcję z WordPressem tylko wtedy, gdy metoda jest jawnie wywołana.

Pamiętaj jednak, że cały sens tego, do czego zmierzam, dotyczy zatrzymania wykonywania wtyczki – a nie tego, gdzie umieścić hooki.

Załóżmy więc, że zależność od strony trzeciej nie istnieje, więc co? Przypomnijmy, w konstruktorze została ustawiona właściwość, która pozwoli nam określić , czy powinniśmy iść naprzód z konfiguracją hooków, czy nie:

A kiedy to nastąpi, reszta kodu nie zostanie wykonana.

Dużo słów, mały kod

Brzmi to jak wiele wyjaśnień dla tak bardzo małego kodu.

Ale częścią tego jest również próba przekazania znaczenia oddzielenia części projektu opartego na WordPressie od reszty rdzenia, aby części mogły wchodzić w interakcje ze sobą bez wyraźnej potrzeby ciągłego rozmawiania z rdzeniem.

Ź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