Tovább a tartalomhoz

wp-env

A @wordpress/env (wp-env) egy parancsból felállít egy helyi WordPress-környezetet bővítmény- és témafejlesztéshez: követelmények, telepítés, indítás, .wp-env.json és teszt-környezet.

A wp-env a WordPress Block Editor Handbook helyi fejlesztői környezete. Egy meglévő bővítmény- vagy témamappából indítva felállít egy WordPress-oldalt, amelyben a mappád már telepítve és aktiválva van. Kevés beállítást igényel, ezért a bővítményfejlesztők és a Gutenberg-közreműködők használják a legtöbbet.

  • Docker. A wp-env alapból Dockerrel fut, ezért a parancs kiadása előtt a Dockernek futnia kell.
  • Node.js. A wp-env Node-szkript. A doksi a legfrissebb LTS verziót javasolja, például nvm-mel telepítve.
  • git. A távoli források (WordPress, bővítmények, témák) letöltéséhez kell.

Van két kísérleti futtatókörnyezet is, amely nem kér Dockert: a --runtime=playground (WordPress Playground) és a --runtime=php (a gépeden lévő PHP, SQLite adatbázissal). Ezekből néhány funkció hiányzik, például a Playgroundban nincs wp-env run, a PHP-s módban pedig nincs multisite és Xdebug.

Globálisan:

Terminál
npm -g i @wordpress/env

Ha a projektnek van package.json-ja, projektfüggőségként is felveheted:

Terminál
npm i @wordpress/env --save-dev

Ilyenkor a parancsokat npm exec --no -- wp-env … formában vagy egy "wp-env": "wp-env" npm-szkripten át futtasd. Szkriptnél a kapcsolók elé külön -- kell: npm run wp-env start -- --update.

Lépj a bővítményed vagy témád mappájába, és indítsd el:

Terminál
cd ~/wp-content/plugins/sajat-bovitmeny
wp-env start

Az oldal a http://localhost:8888 címen él. Belépés: felhasználó admin, jelszó password. Az adatbázis felhasználója root, jelszava password.

Terminál
wp-env stop # leállítja a környezetet
wp-env start --update # forrásfrissítés és a beállítások újra alkalmazása
wp-env status # futási állapot, URL-ek, portok
wp-env reset all # adatbázisok nullázása (a tartalom elvész)
wp-env destroy # mindent töröl: konténerek, kötetek, helyi fájlok

A start alapból nem frissít semmit, csak ha a konfigurációs fájl változott, vagy ha megadod az --update kapcsolót.

A wp-env run <container> <parancs> a környezet egyik konténerében futtat parancsot. A cli konténerben elérhető a WP-CLI, a Composer és a PHPUnit:

Terminál
wp-env run cli wp user list
wp-env run cli wp plugin list
wp-env run cli --env-cwd=wp-content/plugins/sajat-bovitmeny composer install
wp-env run cli bash

A parancs alapból a WordPress gyökerében fut. Bővítményen belüli futtatáshoz add meg az --env-cwd kapcsolót. Ha a futtatott parancs kapcsolója ütközik a wp-env-ével, tedd a kapcsolót -- után: wp-env run cli php -- --help. Részletek a WP-CLI cikkben.

Beállítás nélkül a wp-env a legfrissebb éles WordPresst használja, és a mappát bővítményként vagy témaként tölti be. Ha mást szeretnél, tegyél a projekt gyökerébe egy .wp-env.json fájlt:

.wp-env.json
{
"$schema": "https://schemas.wp.org/trunk/wp-env.json",
"core": null,
"phpVersion": "8.2",
"plugins": [ ".", "WordPress/classic-editor" ],
"themes": [ "./teszt-tema" ],
"port": 4013,
"config": {
"WP_DEBUG_LOG": true
}
}

A gyakori mezők:

  • core: a WordPress forrása. null esetén a legfrissebb éles kiadás. Megadhatsz GitHub-hivatkozást (például WordPress/WordPress#5.2.0), helyi mappát vagy ZIP-fájl URL-jét.
  • plugins: a telepítendő és aktiválandó bővítmények. A "." az aktuális mappa.
  • themes: a telepítendő témák.
  • port: a webszerver portja, alapból 8888. A WP_ENV_PORT környezeti változó felülírja.
  • config: wp-config.php konstansok. Alapból be van állítva többek között a WP_DEBUG és a SCRIPT_DEBUG is true értékkel. A null érték megakadályozza a konstans definiálását.
  • mappings: tetszőleges helyi mappa beillesztése a WordPressbe, például mu-pluginok: "wp-content/mu-plugins": "./mu-plugins". Ami csak itt szerepel, azt a wp-env nem aktiválja.
  • phpVersion, mariadbVersion, multisite, phpmyadmin: PHP- és adatbázis-verzió, multisite, phpMyAdmin.

A személyes eltéréseknek való a .wp-env.override.json, amit nem commitolsz. A plugins és a themes nem összefésülődik, hanem teljesen felülíródik, csak a config és a mappings fésülődik össze.

A környezet tartalmazza a WordPress PHPUnit-tesztfájljait, a helyüket a WP_TESTS_DIR környezeti változó adja meg. Így nem kell külön csomagot telepítened hozzájuk. A teszteket a cli konténerben futtathatod:

Terminál
wp-env run cli --env-cwd=wp-content/plugins/sajat-bovitmeny phpunit

A külön teszt-környezet régi módja, a testsEnvironment mező (alapértelmezett port: 8889), elavult. A doksi helyette azt javasolja, hogy a tesztekhez használj másik konfigurációs fájlt a --config kapcsolóval, más porttal. Így két elkülönített környezet fut egymás mellett:

Terminál
wp-env start
WP_ENV_PORT=8890 wp-env start --config=./.wp-env.test.json
wp-env stop --config=./.wp-env.test.json

Minden konfigurációs fájlhoz külön konténerek és adatok tartoznak. A tesztekről lásd még a PHPUnit és a Playwright cikket.

Először nézd meg, fut-e (docker ps), és nem foglalt-e a port (WP_ENV_PORT vagy wp-env start --auto-port). Aztán próbáld a wp-env start --update parancsot, végül a wp-env reset all és a wp-env destroy jön, amelyek törlik a helyi tartalmat. A generált fájlok a ~/.wp-env mappában vannak (Linuxon ~/wp-env).

A wp-env egyetlen bővítményhez vagy témához készült, és azzal a mappával indul, amiben állsz. Nem teljes oldalmodell: nincs benne például saját tartománynév, HTTPS vagy e-mail-fogadás.

  • Ha egy egész projektet futtatnál, a webgyökérrel, Composerrel és adatbázis-importtal, használd a DDEV-et. A Bedrock projekteknél ez a természetes választás.
  • Ha grafikus felületet szeretnél, és nem akarsz parancssorban dolgozni, a LocalWP a kényelmesebb.
  • Ha CI-ban vagy a csapatban azonos, a repóban rögzített teszt-környezet kell egy bővítményhez, a wp-env a jobb: a .wp-env.json a kóddal együtt él.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások