Rudel
Pagal užklausą parenkamos WordPress persidengiančios aplinkos smėlio dėžėms.
composer require rudel/rudelNaujausia versija v0.10.0 GPL-2.0-or-later WordPress 6.4+, PHP 8.2+
wp rudel create \
--name=feature-a \
--owner=dennis \
--labels=agent,qa \
--purpose="Test checkout changes" \
--ttl-days=7Praktinis pritaikymas
Sukurkite smėlio dėžę iš pagrindinės svetainės, tada nukreipkite į ją WP-CLI arba HTTP užklausą.
Sukurkite smėlio dėžę ir nukreipkite į ją
wp rudel create klonuoja pagrindinės sistemos lenteles su nauju prefiksu, nukopijuoja temą į smėlio dėžės katalogą ir išveda smėlio dėžės ID.
Perduokite šį ID į RUDEL_ENVIRONMENT, skirtą WP-CLI, arba į X-Rudel-Environment antraštę ar rudel_environment slapuką, skirtus HTTP. PHP API sukuria tokią pačią smėlio dėžę ir įrašo jos gyvavimo ciklo metaduomenis.
wp rudel create --name=alpha --theme=twentytwentyfour
RUDEL_ENVIRONMENT=alpha-1234 wp option get siteurl
curl -H 'X-Rudel-Environment: alpha-1234' http://localhost:8000/$sandbox = Rudel::create( 'alpha', [
'theme' => 'twentytwentyfour',
'owner' => 'dennis',
'labels' => [ 'qa', 'agent' ],
'ttl_days' => 7,
] );Smėliadėžės
Laikinos persidengiančios aplinkos kūrimui, testavimui ir DI agentams.
Parinkimas pagal užklausą
Nukreipkite užklausą į smėlio dėžę naudodami X-Rudel-Environment antraštę, rudel_environment slapuką arba RUDEL_ENVIRONMENT iš WP-CLI. Parenkama vien pagal smėlio dėžės ID, netaikant autentifikavimo.
Persidengianti vykdymo aplinka
Aktyvinus į wp-config.php įterpiama įkrovos eilutė. Tuomet kiekviena smėlio dėžė gauna klonuotas lenteles su savo prefiksu ir aktyvios temos kopiją; WordPress branduolys, papildinių failai ir įkelti failai lieka bendrinami.
Git darbo medžiai
Integruotos PHP savosios Git klonavimo, siuntimo ir darbo medžių sekos; pagrindinės sistemos git dvejetainio failo nereikia.
Momentinės kopijos
Įvardyti atkūrimo taškai, kuriuose nukopijuojamos smėlio dėžės lentelės ir tvarkomi temų failai. Kurkite juos ir atkurkite iš jų naudodami WP-CLI arba PHP.
Užklausų izoliavimas
Kiekvienai užklausai atskiri lentelių prefiksai, temų katalogai, laikinieji katalogai, objektų podėlio rakto druska ir el. pašto blokavimas.
WP-CLI & PHP API
wp rudel komandos ir Rudel\Rudel statiniai metodai kuria, išvardija, atnaujina, daro momentines kopijas, atkuria ir naikina smėlio dėžes.
Paruošta agentams
Suteikia kodo agentams laikiną WordPress kopiją, kurioje WP-CLI apribota pagal RUDEL_ENVIRONMENT ir blokuojami siunčiami el. laiškai.
Kodėl Rudel
Viena instaliacija, daug smėlio dėžių
Rudel veikia įprastoje WordPress instaliacijoje be multisite ir antros WordPress instaliacijos. Pagrindinė svetainė ir toliau pateikia savo duomenis kiekvienai užklausai, kurioje nenurodyta smėlio dėžė.
Lentelių ir vienos temos kopijos
Smėlio dėžė gauna pagrindinės sistemos lentelių, įskaitant naudotojus, kopiją su atskiru prefiksu ir aktyvios temos kopiją; potėmei taip pat nukopijuojama jos pagrindinė tema. WordPress branduolys, papildinių failai ir įkelti failai lieka pagrindinėje sistemoje.
Smėlio dėžės su galiojimo terminu
Nurodykite smėlio dėžės savininką, žymas, paskirtį ir TTL dienomis. Valandinė WP-Cron užduotis pašalina pasibaigusio galiojimo smėlio dėžes, išskyrus pažymėtas kaip apsaugotas.
Saugu peržiūrėti
Smėlio dėžės užklausos blokuoja siunčiamus el. laiškus ir registruoja kiekvieną užblokuotą pranešimą. Jei wp-config.php nenustato savo reikšmės, objektų podėlio rakto druska išvedama iš smėlio dėžės ID, todėl nuolatinio podėlio raktai pagrindinėje sistemoje ir smėlio dėžėje nesutampa.
Palyginimas su
Rudel veikia jau naudojamoje svetainėje. Šie įrankiai skirti gretimiems poreikiams.
| Įrankis | Stipriosios pusės | Skirtumas nuo Rudel |
|---|---|---|
| WordPress Multisite | Stipriosios pusėsViename pagrindinių failų rinkinyje paleidžia virtualių svetainių tinklą su bendrinamais papildiniais ir temomis bei atskiromis kiekvienos svetainės duomenų bazės lentelėmis ir įkeltų failų katalogais. | Skirtumas nuo RudelRudel nereikia multisite. Smėlio dėžė yra esamos svetainės lentelių ir aktyvios temos kopija, parenkama pagal užklausą naudojant antraštę, slapuką arba WP-CLI aplinkos kintamąjį. |
| wp-env | Stipriosios pusėsParuošia vietinę WordPress svetainę su Docker papildinių ir temų kūrimui bei testavimui, nereikalaujant papildomos konfigūracijos. | Skirtumas nuo RudelRudel nereikia antros WordPress instaliacijos. Jis kuria smėlio dėžes iš jau naudojamos svetainės turinio, o jų lentelės saugomos toje pačioje MySQL duomenų bazėje kaip pagrindinės sistemos lentelės. Smėlio dėžė negauna atskiros PHP vykdymo aplinkos ar duomenų bazės serverio. |
| WordPress Playground | Stipriosios pusėsPaleidžia WordPress kliento pusėje WebAssembly aplinkoje, be serverio, izoliuotai naršyklėje ir be nuolatinių šalutinių poveikių už jos ribų. | Skirtumas nuo RudelRudel veikia serveryje greta tikros svetainės ir jos MySQL duomenų bazės. Smėlio dėžė sukuriama iš dabartinio svetainės turinio ir pasiekiama per WP-CLI bei iš bet kurio HTTP kliento. |
Klausimai ir atsakymai
Trumpi atsakymai iš Rudel dokumentacijos.
WordPress branduolys, papildinių failai ir įkelta medija. Kiekviena smėlio dėžė gauna atskirą duomenų bazės lentelių, įskaitant naudotojus, kopiją su sugeneruotu prefiksu ir atskirą aktyvios temos kopiją.
Siųskite X-Rudel-Environment antraštę arba rudel_environment slapuką su HTTP užklausa arba nustatykite RUDEL_ENVIRONMENT, skirtą WP-CLI. Rudel priima ID iš bet kurio kliento, todėl parinkimas nėra prieigos kontrolė.
Ne. Smėlio dėžėje atliekamos užklausos sustabdo siunčiamus laiškus per pre_wp_mail filtrą ir užregistruoja kiekvieno užblokuoto pranešimo gavėją bei temą.
Dviejose lentelėse pagrindinės sistemos duomenų bazėje: wp_rudel_environments ir wp_rudel_worktrees, su numatytuoju prefiksu. Vykdymo metu nėra JSON konfigūracijos ar SQLite saugyklos.
Aktyvinus sukuriamos vykdymo lentelės, į wp-config.php įterpiama įkrovos eilutė ir suplanuojamas valymo įvykis, todėl tuo metu WordPress reikia rašymo prieigos prie wp-config.php. Išjungus papildinį eilutė pašalinama.
Taip. wp rudel snapshot išsaugo smėlio dėžės lenteles ir temų failus nurodytu pavadinimu, o wp rudel restore su --snapshot juos atkuria.
Įdiekite papildinį, sukurkite smėlio dėžę iš savo svetainės ir naudodamiesi pradžios vadovu nusiųskite į ją pirmąją užklausą.