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.
This content is not available in your language yet.
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.
Követelmények
Szekció neve “Követelmények”- Docker. A
wp-envalapból Dockerrel fut, ezért a parancs kiadása előtt a Dockernek futnia kell. - Node.js. A
wp-envNode-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.
Telepítés
Szekció neve “Telepítés”Globálisan:
npm -g i @wordpress/envHa a projektnek van package.json-ja, projektfüggőségként is felveheted:
npm i @wordpress/env --save-devIlyenkor 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.
Indítás, leállítás, parancsok
Szekció neve “Indítás, leállítás, parancsok”Lépj a bővítményed vagy témád mappájába, és indítsd el:
cd ~/wp-content/plugins/sajat-bovitmenywp-env startAz 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.
wp-env stop # leállítja a környezetetwp-env start --update # forrásfrissítés és a beállítások újra alkalmazásawp-env status # futási állapot, URL-ek, portokwp-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ájlokA start alapból nem frissít semmit, csak ha a konfigurációs fájl változott, vagy ha megadod az --update kapcsolót.
Parancs futtatása a környezetben
Szekció neve “Parancs futtatása a környezetben”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:
wp-env run cli wp user listwp-env run cli wp plugin listwp-env run cli --env-cwd=wp-content/plugins/sajat-bovitmeny composer installwp-env run cli bashA 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.
A .wp-env.json alapjai
Szekció neve “A .wp-env.json alapjai”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:
{ "$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.nullesetén a legfrissebb éles kiadás. Megadhatsz GitHub-hivatkozást (példáulWordPress/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ól8888. AWP_ENV_PORTkörnyezeti változó felülírja.config:wp-config.phpkonstansok. Alapból be van állítva többek között aWP_DEBUGés aSCRIPT_DEBUGistrueértékkel. Anullé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 awp-envnem 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.
Teszt-környezet
Szekció neve “Teszt-környezet”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:
wp-env run cli --env-cwd=wp-content/plugins/sajat-bovitmeny phpunitA 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:
wp-env startWP_ENV_PORT=8890 wp-env start --config=./.wp-env.test.jsonwp-env stop --config=./.wp-env.test.jsonMinden 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.
Ha elakad
Szekció neve “Ha elakad”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).
Mikor jobb a DDEV vagy a LocalWP
Szekció neve “Mikor jobb a DDEV vagy a LocalWP”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-enva jobb: a.wp-env.jsona kóddal együtt él.
Hasznos linkek
Szekció neve “Hasznos linkek”Published: