Ugrás a tartalomhoz

API

A Rudel\Rudel statikus homlokzat. Ezen az oldalon minden metódus az osztály nyilvános statikus metódusa.

PHP
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:

PHP
[
    '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.

PHP
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.

PHP
$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.

PHP
$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.

PHP
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 = '' ): array
  • Rudel::templates(): array
  • Rudel::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(): array most futtatja az ütemezett automatizálási feladatokat.
  • A Rudel::run_scheduled_cleanup(): array ugyanezt végzi el.

Lásd: Automatizálás.

Hookok és parancskatalógus

  • A Rudel::hooks(): array visszaadja a dokumentált hookkatalógust, hooknév szerint indexelve. Lásd: Hookok.
  • A Rudel::cli_command_map(): array minden wp rudel parancs é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 = [] ): array egy feldolgozott parancsból végrehajtási tervet készít, futtatás nélkül.
PHP
$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.

PHP
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(): void létrehozza az aktív kapcsolathoz tartozó Rudel táblákat.
  • A Rudel::reset(): void törli az önálló kapcsolatot és a gyorsítótárazott állapotot.