Hoppa till innehåll

API

Rudel\Rudel är en statisk fasad. Varje metod på den här sidan är en offentlig statisk metod i klassen.

PHP
use Rudel\Rudel;

if ( Rudel::is_sandbox() ) {
    error_log( 'Running in sandbox ' . Rudel::id() );
}

Livscykelmetoder som klonar eller tar bort tabeller (create(), create_from_git(), destroy(), cleanup(), cleanup_merged()) kräver en aktiv WordPress-begäran med $wpdb. De utlöser ett RuntimeException om de anropas efter Rudel::init() utanför WordPress. Se Fristående användning.

Körningskontext

De här metoderna beskriver den aktuella begäran. Utanför en sandlåda returnerar de false eller null.

Metod Returnerar
is_sandbox(): bool true när den aktuella begäran körs i en sandlåda
id(): ?string det aktuella sandlåde-ID:t
path(): ?string den aktuella sandlådekatalogen
engine(): ?string overlay i en sandlåda
table_prefix(): ?string sandlådans tabellprefix, till exempel wp_b65338d_
url(): ?string sandlådans URL; överlagringssandlådor delar värdens URL
exit_url(): string värdens URL
is_email_disabled(): bool true när utgående e-post blockeras för begäran
log_path(): ?string {sandbox directory}/debug.log
version(): ?string den installerade versionen av Rudel
cli_command(): string rotkommandot WP-CLI, rudel om inte RUDEL_CLI_COMMAND har angetts

Rudel::context(): array

Returnerar allt ovan i en array:

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

Returnerar samma körningssammanfattning som wp rudel status i en array: bootstrap-status, aktuell sandlåda, sandlådekatalog och antal, värdena för rudel_config samt om automatisering är schemalagd.

Sandlådereposter

Sandlådor returneras som objekt av typen Rudel\Environment. Bland användbara skrivskyddade egenskaper finns id, name, path, created_at, status, template, owner, labels, purpose, expires_at, last_used_at, theme_slug, table_prefix och clone_source. Metoderna omfattar is_protected(), get_url(), get_table_prefix(), get_size() och to_array().

Rudel::all(): array

Returnerar alla sandlådor som en array med objekt av typen Environment. Inga filter kan anges.

PHP
foreach ( Rudel::all() as $sandbox ) {
    echo $sandbox->id . ' ' . $sandbox->status . "\n";
}

Rudel::get( string $id ): ?Environment

Laddar en sandlåda med angivet ID eller returnerar null.

PHP
$sandbox = Rudel::get( 'alpha-3be7' );

Rudel::environments_dir(): string

Returnerar katalogen som innehåller sandlådekatalogerna.

Livscykel

Rudel::create( string $name, array $options = [] ): Environment

Skapar en sandlåda och returnerar den. ID:t genereras från namnet plus fyra hexadecimala tecken.

PHP
$sandbox = Rudel::create( 'alpha', [
    'theme'    => 'twentytwentyfour',
    'owner'    => 'dennis',
    'labels'   => [ 'qa', 'agent' ],
    'ttl_days' => 7,
] );

Alternativ:

Nyckel Betydelse
theme temats slug att kopiera till sandlådan; standardvärdet är värdsystemets aktiva tema
clone_from ID för en befintlig sandlåda att klona i stället för värdsystemet
owner, purpose metadata i fritextformat
labels array eller kommaseparerad sträng
protected true för att undanta sandlådan från rensning
ttl_days förfallotid räknad från skapandet
expires_at uttrycklig tidsstämpel för förfallotid
template en etikett som lagras i posten; den läser inte in en sparad mall
site_options alternativnamn och skalärvärden som skrivs till sandlådans alternativtabell
skip_limits true för att kringgå max_sandboxes och max_disk_mb

Rudel::create_from_git( string $remote_url, array $options = [] ): array

Skapar en sandlåda och klonar sedan $remote_url till den. Godtar alternativen create() samt name (standardvärdet är arkivets namn) och type (theme eller plugin). Returnerar [ 'environment' => Environment, 'git' => [...] ]. En misslyckad kloning återställer inte sandlådan; felet returneras i git.error. Se Git.

Rudel::update( string $id, array $changes ): Environment

Uppdaterar livscykelmetadata och returnerar den uppdaterade sandlådan. Godtagna nycklar omfattar owner, labels, purpose, protected, ttl_days (relativt till nu), expires_at, clear_expiry, name och site_options.

PHP
Rudel::update( 'alpha-3be7', [ 'protected' => true, 'ttl_days' => 3 ] );

Rudel::destroy( string $id ): bool

Tar bort sandlådetabellerna, katalogen och länkade arbetsträd och raderar posten. Returnerar false om ID:t inte finns. Skyddet kontrolleras inte: även skyddade sandlådor förstörs.

Rudel::cleanup( array $options = [] ): array

Kör reglerna för förfallotid, ålder och inaktivitet. Alternativ: dry_run (bool), max_age_days och max_idle_days (åsidosätter rudel_config när värdet inte är noll). Returnerar removed, skipped, errors och reasons (ID till expired, age, idle eller protected). Se Rensning.

Rudel::cleanup_merged( array $options = [] ): array

Tar bort sandlådor vars länkade Git-arbetsträdsgrenar har slagits samman till arkivets standardgren. Alternativ: dry_run.

Rudel::touch_current_environment(): void

Registrerar aktivitet (last_used_at) för den aktuella sandlådan. Rudel anropar detta vid varje sandlådeförfrågan.

Loggar

Rudel::read_log( string $id, int $lines = 50 ): array

Returnerar de sista raderna i sandlådans debug.log som path, exists, empty, total_lines och lines.

Rudel::clear_log( string $id ): array

Tömmer sandlådans debug.log och returnerar path, existed och cleared.

Ögonblicksbilder

Rudel::snapshot( string $id, string $name ): array

Skapar en ögonblicksbild och returnerar dess metadata (name, created_at, sandbox_id).

Rudel::restore( string $id, string $name ): void

Återställer en ögonblicksbild. Med standardinställningen auto_snapshot_before_restore sparar Rudel först en pre-restore-...-ögonblicksbild.

Rudel::snapshots( string $id ): array

Listar metadata för ögonblicksbilder, med den senaste först. Se Ögonblicksbilder.

Mallar

  • Rudel::save_template( string $id, string $name, string $description = '' ): array
  • Rudel::templates(): array
  • Rudel::delete_template( string $name ): bool

Sparade mallar är endast filkopior. Inget API eller kommando skapar en sandlåda från en mall. Se Mallar.

Git

Rudel::push( string $id, string $remote_url = '', string $message = 'Update from Rudel', string $subdir = '' ): ?string

Bekräftar ändringar i en checkout i sandlådans katalog och skickar dem till grenen rudel/{id}. $remote_url och $subdir använder som standard värdena som lagras i sandlådan. Returnerar commitens SHA, eller null om inget har ändrats.

Automatisering

  • Rudel::run_automation(): array kör de schemalagda automatiseringsuppgifterna nu.
  • Rudel::run_scheduled_cleanup(): array gör samma sak.

Se Automatisering.

Hookar och kommandoöversikt

  • Rudel::hooks(): array returnerar den dokumenterade hookkatalogen, grupperad efter hooknamn. Se Hookar.
  • Rudel::cli_command_map(): array returnerar en serialiserbar beskrivning av varje wp rudel-kommando och metoden PHP bakom det.
  • Rudel::resolve_cli_command( $path, array $args = [], array $assoc_args = [] ): array omvandlar ett parsad kommando till en körningsplan utan att köra det.
PHP
$plan = Rudel::resolve_cli_command( 'wp rudel destroy', [ 'alpha-3be7' ] );
// $plan['callable']           => 'Rudel\Rudel::destroy'
// $plan['arguments']          => [ 'alpha-3be7' ]
// $plan['needs_confirmation'] => true

De flesta planer använder transporten php. logs --follow löses till en shell-plan som kör tail -f.

Fristående initiering

Rudel::init( Connection $connection, array $context = [] ): void

Riktar fasaden mot en direkt MySQL-anslutning för användning utanför WordPress. $context godtar environments_dir.

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' ]
);
  • Rudel::ensure_schema(): void skapar Rudel-tabellerna för den aktiva anslutningen.
  • Rudel::reset(): void rensar den fristående anslutningen och det cachade tillståndet.