API
Rudel\Rudel är en statisk fasad. Varje metod på den här sidan är en offentlig statisk metod i klassen.
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:
[
'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.
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.
$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.
$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.
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 = '' ): arrayRudel::templates(): arrayRudel::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(): arraykör de schemalagda automatiseringsuppgifterna nu.Rudel::run_scheduled_cleanup(): arraygör samma sak.
Se Automatisering.
Hookar och kommandoöversikt
Rudel::hooks(): arrayreturnerar den dokumenterade hookkatalogen, grupperad efter hooknamn. Se Hookar.Rudel::cli_command_map(): arrayreturnerar en serialiserbar beskrivning av varjewp rudel-kommando och metoden PHP bakom det.Rudel::resolve_cli_command( $path, array $args = [], array $assoc_args = [] ): arrayomvandlar ett parsad kommando till en körningsplan utan att köra det.
$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.
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(): voidskapar Rudel-tabellerna för den aktiva anslutningen.Rudel::reset(): voidrensar den fristående anslutningen och det cachade tillståndet.