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

Widżety WordPress: Refaktoryzacja, część 5

15

W poprzednim poście stworzyliśmy Rejestr, który będzie służył do przechowywania wszystkich różnych klas odpowiedzialnych za nadanie funkcjonalności naszemu widżetowi.

Aby to zrobić, zostanie wprowadzonych wiele innych klas, ale zanim tam przejdziemy, musimy dodać Rejestr do programu startowego wtyczki (nie mówiąc już o utworzeniu programu startowego dla wtyczki).

W szczególności tutaj zakończyliśmy:

Jak wspomniano wcześniej w poście, musimy dodać to do ładowania początkowego wtyczki. Aby to zrobić, musimy jednak zdefiniować własny filtr, dzięki czemu będziemy mogli łatwo ominąć rejestr z resztą wtyczki (gdy nadejdzie na to czas).

W tym poście skupimy się właśnie na tym.

WordPress Widget Boilerplate: Refaktoryzacja, część 5

Jeśli śledziłeś serię do tego momentu, powinieneś być w dobrej sytuacji, aby dodać Rejestr, abyśmy mieli do niego dostęp przez całą wtyczkę.

Aby to zrobić, załóż jednak, że wiesz, jak zdefiniować filtry. W WordPressie cały czas używamy akcji i filtrów.

Rzecz w tych hakach polega na tym, że są już zdefiniowane. Jak więc zdefiniować nasz filtr?

Przyjrzyjmy się dokładnie temu.

1 Definiowanie naszego filtra

Najpierw musimy zrozumieć kilka pojęć:

  • co to jest filtr,
  • jak dodać filtr,
  • jak wprowadzić nasz rejestr do filtra
  • jak pobrać klasę z filtra.

Na szczęście wszystko to jest łatwe do wyjaśnienia.

Co to jest filtr?

Mówiąc najprościej, haki pozwalają nam wywoływać WordPress w określonych momentach podczas wykonywania programu. Działania są zwykle zarezerwowane dla zachowania; Filtry są zarezerwowane dla danych.

Co więcej, filtry pozwalają nam pracować z określonymi danymi w aplikacji – mogą to być dane już istniejące, a nawet nowe. W naszym przypadku będzie to klasa Registry, która zawiera odniesienia do innych danych.

Dodawanie filtra

Dodanie filtra jest łatwe. Składa się z trzech części:

  1. wywołanie add_filter ,
  2. zdefiniowanie unikalnego identyfikatora dla filtra,
  3. przekazywanie informacji do filtra, które mogą być zwracane przy każdym wywołaniu.

Dla nas zamierzam zidentyfikować nasz rejestr jako filtr wpWidgetRegistry. Pamiętaj jednak, że ważne jest, aby wybrać unikalną nazwę dla swojej implementacji, ponieważ jeśli tego nie zrobisz, możesz skończyć z kolizją z innymi danymi, jeśli inna wtyczka użyje tego samego zidentyfikowanego.

Widżety WordPress: Refaktoryzacja, część 5

W każdym razie dodanie filtra wykonuje proste zadanie:

Podłącz funkcję lub metodę do określonej akcji filtrowania.

Oznacza to, że musimy zdefiniować metodę z naszym ID. Ze względu na naturę PHP nie musimy używać osobnej funkcji.

Widżety WordPress: Refaktoryzacja, część 5

Zamiast tego możemy użyć funkcji anonimowej.

Funkcje anonimowe, zwane również domknięciami, umożliwiają tworzenie funkcji, które nie mają określonej nazwy. Są najbardziej przydatne jako wartość parametrów wywołań zwrotnych, ale mają wiele innych zastosowań.

Anonimowa funkcja, którą zamierzamy zdefiniować, zaakceptuje odwołanie do wtyczki jako argument, a następnie zwróci ją za każdym razem, gdy zostanie wywołany filtr (co zostanie pokazane w dalszej części tego artykułu).

Przekazywanie informacji do naszego filtra

Teraz, gdy mamy już to wszystko pokryte, możemy przejść przez proces tworzenia instancji naszego Rejestru, definiowania filtra, a następnie dodawania rejestru, aby był dostępny w całej aplikacji.

Tak więc w głównym pliku wtyczki, czyli pliku wordpress-widget-boilerplate.php, dodajemy następujące wiersze kodu :

<?php

namespace WordPressWidgetBoilerplate;

use WordPressWidgetBoilerplateUtilitiesRegistry;

// More to come...

Powyższe deklaruje przestrzeń nazw, w której znajduje się Rejestr. Następnie dodajemy następujący blok kodu pod autoloaderem:

<?php

// Setup a filter so we can retrieve the registry throughout the plugin.
$registry = new Registry();
add_filter('wpWidgetRegistry', function() use ($registry) {
    return $registry;
});

Zwróć uwagę, że gdy zamierzasz aktywować wtyczkę, nie zostanie ona aktywowana i zgłosi błąd. Wynika to z braku autoloadera, o którym będzie mowa w następnym poście.

2 Odzyskiwanie naszego rejestru

Ponieważ rejestr jest zdefiniowany w programie początkowym wtyczki i odbywa się to za pomocą filtra, możemy uzyskać dostęp do rejestru w dowolnym miejscu wtyczki, wywołując nasz filtr niestandardowy.

Załóżmy na przykład, że jesteśmy w innej klasie i musimy uzyskać odwołanie do rejestru. W tym celu możemy wykonać to wywołanie :

<?php

// Retrieve the registry anywhere in the plugin.
$registry = apply_filters('wpWidgetRegistry', null);

I to wszystko. Łatwe, prawda? Dopóki wszystko zostanie poprawnie dodane do rejestru – co wkrótce omówimy – będziemy mogli uzyskać do nich dostęp za pomocą unikalnych identyfikatorów, których użyliśmy w poprzednim poście.

Autoloader

Teraz zaczynamy używać przestrzeni nazw i innych klas. Oznacza to, że będziemy musieli użyć autoloaderów.

Więc zanim przejdziemy do refaktoryzacji całej klasy w obecnej formie, zrobimy mały spacer do niektórych funkcji Composera, aby zobaczyć, jak jest on używany do generowania automatycznego ładowania (oprócz rzeczy, którymi już jesteśmy używanie go do obsługi jakości naszego kodu źródłowego).

Ź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