Kompozytor dla WordPressa, część 1
Ok, więc po omówieniu wszystkich różnych bibliotek, które mogą pomóc poprawić jakość kodu Twojej pracy, wciąż pojawia się pytanie:
Jak sprawić, by te projekty działały z naszą bazą kodu?
Krótko mówiąc, wymaga Composer. Jeśli nigdy go nie używałeś, pisałem o tym wcześniej krótko, ale zamierzam przedstawić podstawy tego, czego potrzebujesz, aby zacząć z niego korzystać oraz wspomniane biblioteki w swojej pracy.
W tym i następnym poście opowiem, jak skonfigurować wszystko lokalnie w najbardziej podstawowej formie, a następnie jak integruje się z Git, abyś mógł zacząć z niego korzystać na co dzień.
Konfiguracja Composera dla WordPress
Istnieje wiele informacji, które mogą (i argumentuję, że powinny znaleźć się w pliku dla Composera). Obejmuje to takie rzeczy, jak informacje o autorze, PSR, informacje itp. Ale to naprawdę wykracza poza zakres tego postu. Zamiast tego chcę podzielić się niezbędnym minimum niezbędnym do uzyskania konfiguracji i konfiguracji tych informacji.
Przykładowy katalog
Załóżmy, że na chwilę rozpoczniesz pracę nad wtyczką lub czymś związanym z WordPressem, który będzie wymagał różnych bibliotek omówionych w poprzedniej serii. A kiedy konfigurujesz katalog do tego, będziesz mieć bardzo mało plików. Może kilka pustych plików PHP, zasobów itp. Być może będzie to wyglądać tak:
To prawda, powyższy przykład już nieco wyprzedza to, jak może wyglądać Twoja praca, ponieważ:
- Jest
composer.lockplik pokazujący, że Composer został uruchomiony, - Posiada
vendorkatalog, który pokazuje, że biblioteki zostały zainstalowane przez Composer, - Istnieje
grumphp.ymlplik, który definiuje, jak GrumPHP powinien działać (omówię to później) podczas sniffowania kodu.
Ale sedno powyższego jest takie samo: masz composer.jsoni definiuje i zawiera wszystko, czego potrzebujemy na podstawie poprzedniego postu. Więc jak to ustawimy?
Konfigurowanie kompozytora
Po pierwsze, musisz mieć pomysł na to, jak zamierzasz ustrukturyzować swoją wtyczkę. Na przykład mam taką konfigurację wtyczki:
- Wszystkie pliki PHP znajdują się w
srckatalogu, - Wszystkie pliki CSS, JavaScript, obrazy itp. znajdują się w
assetskatalogu, - Katalog
vendorjest przeznaczony na rzeczy, które są instalowane przez Composer, viewsjest to, co jest używane w interfejsie projektu.
Na przykład:
Po drugie, w katalogu, o którym mowa, będziesz chciał utworzyć plik o nazwie composer.json. Można to zrobić za pomocą Terminala, wydając touch polecenie lub możesz je utworzyć w swoim IDE.
Ważną rzeczą, którą należy z tego wyciągnąć, jest to, że istnieje src katalog, ponieważ jest to katalog, który zawiera nasze pliki PHP i jest to katalog, który chcemy przeszukać.
Podstawowy plik kompozytora
Mając to na uwadze, oto podstawowy composer.jsonplik, którego możesz użyć w swoich projektach na podstawie poprzedniej serii i na podstawie tego, co udostępniono poniżej:
{
"name": "pressware/demo-wordpress-plugin",
"description": "This file is used to show how to configure a WordPress plugin using Composer.",
"autoload": {
"psr-4": {
"Pressware": "src/"
}
},
"require-dev": {
"phpro/grumphp": "^0.11.6",
"phpmd/phpmd": "^2.6",
"phpunit/phpunit": "5.7.21",
"nikic/php-parser": "^3.0",
"sebastian/phpcpd": "^3.0",
"povils/phpmnd": "^1.1",
"squizlabs/php_codesniffer": "^3.0",
"jakub-onderka/php-parallel-lint": "^0.9.2",
"sensiolabs/security-checker": "^4.0"
}
}
Patrząc na powyższy plik, oto jak go przeanalizować:
- Wiersze 2 i 3 zawierają krótki opis tego, o co chodzi we wtyczce. To są również inne obszary w tym pliku, które zawierają więcej informacji o tym, co należy zrobić.
- Wiersze od 4 do 8 są ważne, ponieważ wyjaśniają, że używamy PSR-4 do automatycznego ładowania i że wszystkie pliki należą do przestrzeni nazw najwyższego poziomu
Presswareoraz że pliki PHP znajdują się wsrckatalogu. - Wiersze od 9 do 18 obejmują wszystkie pliki opisane w poprzedniej serii.
Następnie wydaj następujące polecenie w swoim terminalu:
$ composer install
A to zainstaluje te pakiety.
A co z zobowiązaniami?
Aby upewnić się, że prawidłowo podsłuchujesz i obsługujesz zatwierdzenia, ważne jest, aby skonfigurować GrumPHP tak, aby obserwował pliki. Ale przyjrzę się temu w następnym poście.
W międzyczasie być może jest to dobra okazja do skonfigurowania wtyczki demonstracyjnej i przećwiczenia powyższego kodu. Odpowiednia konfiguracja za pierwszym razem może być trudna. Na szczęście wiele błędów wyjściowych jest naprawdę łatwych do zrozumienia, więc ich rozwiązanie jest stosunkowo proste.