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

Jak korzystać z wtyczek WordPress z automatycznym ładowaniem PSR-4

24

Powiedzmy, że pracujesz nad projektem dla kogoś i określiłeś jego zakres, zadania są delegowane, masz wszystkie biblioteki i narzędzia potrzebne do rozpoczęcia, a także rozdzieliłeś temat lub prezentację, i jaka będzie funkcjonalność lub wtyczki.

Ale zamiast mieć garść pojedynczych wtyczek, co by było, gdyby istniał pakiet mniejszych funkcjonalnych wtyczek lub mikrowtyczek lub jakkolwiek chcesz je nazwać, działający w celu zasilania pakietu?

Co więcej, wszystkie z nich są zbudowane na tym samym fundamencie, ale współdzielą ze sobą kod i żeby było ciekawiej, zdecydujesz się użyć automatycznego ładowania PSR-4 przez Composer, aby zająć się tym wszystkim?

PSR-4 Autoloading Wtyczki WordPress

Po pierwsze, sposób myślenia o tym, co próbuję powiedzieć (bo kto wie, czy mam jasność 🙃) jest taki, że masz swoją pracę w wp-content/pluginskatalogu. A twoja wtyczka znajduje się, powiedzmy, acme-pluginsi ma podkatalogi dla twoich mikrowtyczek.

W tym przykładzie utrzymamy to w prosty sposób i powiemy, że jest główna wtyczka, a potem tylko jedna mikrowtyczka. Katalog wyglądałby mniej więcej tak;

Jak korzystać z wtyczek WordPress z automatycznym ładowaniem PSR-4

Teraz są pliki, które spodziewasz się zobaczyć we wtyczce:

  • CZYTAJ,
  • LICENCJA,
  • REJESTR ZMIAN,
  • kompozytor.json
  • kompozytor.lock
  • sprzedawca
  • plik startowy wtyczki,
  • itp.

A teraz chodzi o to: jeśli używasz PSR-2 i zamierzasz używać automatu ładującego PSR-4, musisz wiedzieć o dwóch rzeczach:

  1. Przestrzenie nazw powinny być zgodne z organizacją katalogu. Mówiłem o tym trochę podczas mojej prezentacji WordCamp Atlanta 2017 (konkretnie w ramach wirtualnej i logicznej organizacji).
  2. Jak pracować, composer.jsonaby zdefiniować swoje autoloadery. Możesz dużo o tym przeczytać tutaj, ale w dalszej części tego postu podam uwagi dotyczące klifu.

Problem polega na tym, że vendorkatalog znajduje się na wyższym poziomie, na którym istnieją niektóre pliki źródłowe. W ten sposób standardowy sposób ustawienia niestandardowego automatycznego ładowania w Composerze nie zadziała.

Na przykład bardzo typowe jest to :

{
  "name": "pressware/acme-plugins",
  "description": "A demo plugin",
  "autoload": {
    "psr-4": {
      "Acme": "src/",
    }
  },
  // ...
}

Ale aby zrekompensować naszą pracę, musimy to zrobić :

{
  "name": "pressware/acme-plugins",
  "description": "A demo plugin",
  "autoload": {
    "psr-4": {
      "Acme": "",
      "AcmeMicroPlugin": "MicroPlugin/src/"
    }
  },
  // ...
}

To prosta zmiana, ale to prosty przykład, prawda? Więc jaki jest z tego wniosek?

Pamiętaj, że zaktualizowaliśmy niektóre zmiany w  lokalizacji automatycznego ładowania. W szczególności to się dzieje:

  • Pierwszym elementem jest przestrzeń nazw najwyższego poziomu, do której będą należeć wszystkie wtyczki należące do wtyczki Acme.
  • Drugi wpis odnosi się do MicroPlugin, który widzisz w katalogu powyżej. Reprezentuje przestrzeń nazw dla tej konkretnej wtyczki i mówi Composerowi, aby szukał plików źródłowych do automatycznego załadowania przy użyciu katalogu właściwości

Stąd dodasz nowy wpis dla autoloadera, który odpowiada każdej mikrowtyczce, która będzie należeć do wtyczki najwyższego poziomu.

Organizowanie przyszłych mikrowtyczek

Istnieje kilka sposobów na uporządkowanie kodu tak, aby można było użyć domyślnego automatycznego ładowania.

Jeśli zastosujesz model mikrowtyczek (z braku lepszego terminu), to nie zadziała, więc pozostaniesz z koniecznością reorganizacji plików, a to z czasem może być uciążliwe.

Ź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