API
A Rudel\Rudel statikus homlokzat. Ezen az oldalon minden metódus az osztály nyilvános statikus metódusa.
use Rudel\Rudel;
if ( Rudel::is_sandbox() ) {
error_log( 'Running in sandbox ' . Rudel::id() );
}
Azokhoz az életciklus-metódusokhoz, amelyek táblákat klónoznak vagy törölnek (create(), create_from_git(), destroy(), cleanup(), cleanup_merged()), élő WordPress kérésre van szükség $wpdb értékkel. WordPress rendszeren kívüli Rudel::init() utáni meghívásuk RuntimeException kivételt vált ki. Lásd az Önálló használat szakaszt.
Futásidejű környezet
Ezek a metódusok az aktuális kérést írják le. Sandboxon kívül false vagy null értéket adnak vissza.
| Metódus | Visszatérési érték |
|---|---|
is_sandbox(): bool |
true, ha az aktuális kérés sandboxban fut |
id(): ?string |
az aktuális sandbox azonosítója |
path(): ?string |
az aktuális sandbox könyvtára |
engine(): ?string |
overlay sandboxon belül |
table_prefix(): ?string |
a sandbox táblaprefixuma, például wp_b65338d_ |
url(): ?string |
a sandbox URL; az overlay sandboxok megosztják a gazdagép URL értékét |
exit_url(): string |
a gazdagép URL értéke |
is_email_disabled(): bool |
true, ha a kéréshez kimenő levelezés le van tiltva |
log_path(): ?string |
{sandbox directory}/debug.log |
version(): ?string |
a telepített Rudel verziója |
cli_command(): string |
a WP-CLI gyökérparancs, rudel, hacsak nincs beállítva a RUDEL_CLI_COMMAND |
Rudel::context(): array
A fentieket egy tömbben adja vissza:
[
'is_sandbox' => true,
'id' => 'alpha-3be7',
'path' => '/var/www/html/wp-content/rudel-environments/alpha-3be7',
'engine' => 'overlay',
'table_prefix' => 'wp_b65338d_',
'url' => 'http://localhost/',
'exit_url' => 'http://localhost/',
'email_disabled' => true,
'log_path' => '/var/www/html/wp-content/rudel-environments/alpha-3be7/debug.log',
'version' => '0.10.0',
'cli_command' => 'rudel',
]
Rudel::status(): array
A wp rudel status függvénnyel azonos futásidejű összefoglalót adja vissza tömbként: a rendszerindítás állapotát, az aktuális sandboxot, a sandboxok könyvtárát és számát, a rudel_config értékeket, valamint azt, hogy ütemezve van-e automatizálás.
Sandboxrekordok
A sandboxok Rudel\Environment objektumként jelennek meg. A hasznos, csak olvasható tulajdonságok közé tartozik a id, name, path, created_at, status, template, owner, labels, purpose, expires_at, last_used_at, theme_slug, table_prefix és clone_source. A metódusok közé tartozik a is_protected(), get_url(), get_table_prefix(), get_size() és to_array().
Rudel::all(): array
Minden sandboxot Environment objektumokat tartalmazó tömbként ad vissza. Nem fogad el szűrőket.
foreach ( Rudel::all() as $sandbox ) {
echo $sandbox->id . ' ' . $sandbox->status . "\n";
}
Rudel::get( string $id ): ?Environment
Betölt egy sandboxot azonosító alapján, vagy null értéket ad vissza.
$sandbox = Rudel::get( 'alpha-3be7' );
Rudel::environments_dir(): string
A sandboxkönyvtárakat tartalmazó könyvtárat adja vissza.
Életciklus
Rudel::create( string $name, array $options = [] ): Environment
Létrehoz egy sandboxot, és visszaadja azt. Az azonosító a névből és négy hexadecimális karakterből áll.
$sandbox = Rudel::create( 'alpha', [
'theme' => 'twentytwentyfour',
'owner' => 'dennis',
'labels' => [ 'qa', 'agent' ],
'ttl_days' => 7,
] );
Beállítások:
| Kulcs | Jelentés |
|---|---|
theme |
A sandboxba másolandó téma slugja; alapértelmezés szerint a gazdagép aktív témája |
clone_from |
Egy meglévő sandbox azonosítója, amelyet a gazdagép helyett klónoz |
owner, purpose |
Szabad szöveges metaadatok |
labels |
Tömb vagy vesszővel elválasztott karakterlánc |
protected |
true, hogy a sandbox kimaradjon a tisztításból |
ttl_days |
Lejárat a létrehozás időpontjához képest |
expires_at |
Kifejezett lejárati időbélyeg |
template |
A rekordon tárolt címke; nem tölt be mentett sablont |
site_options |
A sandbox beállítási táblájába írt beállításnevek és skalárértékek |
skip_limits |
true az max_sandboxes és max_disk_mb megkerüléséhez |
Rudel::create_from_git( string $remote_url, array $options = [] ): array
Létrehoz egy sandboxot, majd klónozza bele a $remote_url elemet. A create() beállításokat, valamint a name értéket (alapértelmezés szerint a tároló nevét) és a type értéket (theme vagy plugin) fogadja el. Visszaadja a [ 'environment' => Environment, 'git' => [...] ] értéket. Sikertelen klónozás esetén a sandbox nem áll vissza; a hiba a git.error mezőben jelenik meg. Lásd: Git.
Rudel::update( string $id, array $changes ): Environment
Frissíti az életciklus-metaadatokat, és visszaadja a frissített sandboxot. Az elfogadott kulcsok közé tartozik a owner, labels, purpose, protected, ttl_days (mostantól számítva), expires_at, clear_expiry, name és site_options.
Rudel::update( 'alpha-3be7', [ 'protected' => true, 'ttl_days' => 3 ] );
Rudel::destroy( string $id ): bool
Eltávolítja a sandbox tábláit, könyvtárát és kapcsolt munkafáit, majd törli a rekordját. Ha az azonosító nem létezik, false értéket ad vissza. Nem ellenőrzi a védelmet: a védett sandboxok is megsemmisülnek.
Rudel::cleanup( array $options = [] ): array
Alkalmazza a lejárati, kor- és inaktivitási szabályzatot. Beállítások: dry_run (bool), max_age_days és max_idle_days (nem nulla érték esetén felülírják a rudel_config értéket). Visszaadja a removed, skipped, errors és reasons értékeket (azonosító a expired, age, idle vagy protected értékhez). Lásd: Tisztítás.
Rudel::cleanup_merged( array $options = [] ): array
Eltávolítja azokat a sandboxokat, amelyek kapcsolt Git munkafaágai beolvadtak a tároló alapértelmezett ágába. Beállítás: dry_run.
Rudel::touch_current_environment(): void
Tevékenységet rögzít (last_used_at) az aktuális sandboxhoz. A Rudel minden sandboxkérésnél meghívja.
Naplók
Rudel::read_log( string $id, int $lines = 50 ): array
Visszaadja a sandbox debug.log utolsó sorait a következőként: path, exists, empty, total_lines és lines.
Rudel::clear_log( string $id ): array
Kiüríti a sandbox debug.log elemét, és visszaadja a path, existed és cleared értékeket.
Pillanatképek
Rudel::snapshot( string $id, string $name ): array
Létrehoz egy pillanatképet, és visszaadja a metaadatait (name, created_at, sandbox_id).
Rudel::restore( string $id, string $name ): void
Visszaállít egy pillanatképet. Az alapértelmezett auto_snapshot_before_restore beállítás esetén a Rudel előbb ment egy pre-restore-... pillanatképet.
Rudel::snapshots( string $id ): array
A pillanatképek metaadatait sorolja fel, a legújabbal kezdve. Lásd: Pillanatképek.
Sablonok
Rudel::save_template( string $id, string $name, string $description = '' ): arrayRudel::templates(): arrayRudel::delete_template( string $name ): bool
A mentett sablonok csak fájlmásolatok. Egyetlen API vagy parancs sem hoz létre belőlük sandboxot. Lásd: Sablonok.
Git
Rudel::push( string $id, string $remote_url = '', string $message = 'Update from Rudel', string $subdir = '' ): ?string
Véglegesíti és feltolja a sandbox könyvtárán belüli munkapéldányt a rudel/{id} ágra. A $remote_url és a $subdir alapértelmezés szerint a sandboxon tárolt értékeket használja. Visszaadja a véglegesítés SHA-azonosítóját, vagy a null értéket, ha nem történt változás.
Automatizálás
- A
Rudel::run_automation(): arraymost futtatja az ütemezett automatizálási feladatokat. - A
Rudel::run_scheduled_cleanup(): arrayugyanezt végzi el.
Lásd: Automatizálás.
Hookok és parancskatalógus
- A
Rudel::hooks(): arrayvisszaadja a dokumentált hookkatalógust, hooknév szerint indexelve. Lásd: Hookok. - A
Rudel::cli_command_map(): arraymindenwp rudelparancs és a mögötte álló PHP metódus szerializálható leírását adja vissza. - A
Rudel::resolve_cli_command( $path, array $args = [], array $assoc_args = [] ): arrayegy feldolgozott parancsból végrehajtási tervet készít, futtatás nélkül.
$plan = Rudel::resolve_cli_command( 'wp rudel destroy', [ 'alpha-3be7' ] );
// $plan['callable'] => 'Rudel\Rudel::destroy'
// $plan['arguments'] => [ 'alpha-3be7' ]
// $plan['needs_confirmation'] => true
A legtöbb terv a php átvitelt használja. A logs --follow egy shell tervet eredményez, amely a tail -f alatt fut.
Önálló inicializálás
Rudel::init( Connection $connection, array $context = [] ): void
A homlokzatot közvetlen MySQL kapcsolatra irányítja, hogy a WordPress rendszeren kívül is használható legyen. A $context a environments_dir értéket fogadja el.
use Rudel\Connection;
use Rudel\Rudel;
Rudel::init(
new Connection( '127.0.0.1', 'wordpress', 'root', 'root', 'wp_' ),
[ 'environments_dir' => '/var/www/html/wp-content/rudel-environments' ]
);
- A
Rudel::ensure_schema(): voidlétrehozza az aktív kapcsolathoz tartozó Rudel táblákat. - A
Rudel::reset(): voidtörli az önálló kapcsolatot és a gyorsítótárazott állapotot.