Treci la conținut

API

Rudel\Rudel este o fațadă statică. Fiecare metodă de pe această pagină este o metodă statică publică a acelei clase.

PHP
use Rudel\Rudel;

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

Metodele ciclului de viață care clonează sau șterg tabele (create(), create_from_git(), destroy(), cleanup(), cleanup_merged()) necesită o cerere WordPress activă cu $wpdb. Dacă sunt apelate după Rudel::init() în afara WordPress, aruncă o RuntimeException. Consultați Utilizare autonomă.

Contextul de execuție

Aceste metode descriu cererea curentă. În afara unui mediu izolat, returnează false sau null.

Metodă Returnează
is_sandbox(): bool true când cererea curentă rulează într-un mediu izolat
id(): ?string ID-ul mediului izolat curent
path(): ?string directorul mediului izolat curent
engine(): ?string overlay într-un mediu izolat
table_prefix(): ?string prefixul tabelelor mediului izolat, de exemplu wp_b65338d_
url(): ?string URL al mediului izolat; mediile suprapuse partajează URL gazdei
exit_url(): string URL gazdei
is_email_disabled(): bool true când trimiterea de e-mailuri externe este blocată pentru cerere
log_path(): ?string {sandbox directory}/debug.log
version(): ?string versiunea Rudel instalată
cli_command(): string comanda rădăcină WP-CLI, rudel dacă nu este setat RUDEL_CLI_COMMAND

Rudel::context(): array

Returnează toate cele de mai sus într-un singur tablou:

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

Returnează același rezumat al execuției ca wp rudel status, sub formă de tablou: starea inițializării, mediul izolat curent, directorul și numărul mediilor izolate, valorile rudel_config și dacă automatizarea este programată.

Înregistrări ale mediilor izolate

Mediile izolate sunt returnate ca obiecte Rudel\Environment. Proprietățile utile, doar pentru citire, includ id, name, path, created_at, status, template, owner, labels, purpose, expires_at, last_used_at, theme_slug, table_prefix și clone_source. Metodele includ is_protected(), get_url(), get_table_prefix(), get_size() și to_array().

Rudel::all(): array

Returnează toate mediile izolate sub forma unui tablou de obiecte Environment. Nu acceptă filtre.

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

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

Încarcă un mediu izolat după ID sau returnează null.

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

Rudel::environments_dir(): string

Returnează directorul care conține directoarele mediilor izolate.

Ciclul de viață

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

Creează un mediu izolat și îl returnează. ID-ul este generat din nume și patru caractere hexazecimale.

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

Opțiuni:

Cheie Semnificație
theme slugul temei de copiat în mediul izolat; implicit, tema activă a gazdei
clone_from ID-ul unui mediu izolat existent de clonat în locul gazdei
owner, purpose metadate în text liber
labels tablou sau șir separat prin virgule
protected true pentru a exclude mediul izolat de la curățare
ttl_days expirare calculată de la momentul creării
expires_at marcaj temporal explicit pentru expirare
template etichetă stocată în înregistrare; nu încarcă un șablon salvat
site_options nume de opțiuni și valori scalare scrise în tabelul de opțiuni al mediului izolat
skip_limits true pentru a omite max_sandboxes și max_disk_mb

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

Creează un mediu izolat, apoi clonează $remote_url în el. Acceptă opțiunile create(), plus name (implicit, numele depozitului) și type (theme sau plugin). Returnează [ 'environment' => Environment, 'git' => [...] ]. Dacă clonarea eșuează, mediul izolat nu este anulat; eroarea este returnată în git.error. Consultați Clonare dintr-un depozitGit.

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

Actualizează metadatele ciclului de viață și returnează mediul izolat reîmprospătat. Printre cheile acceptate se numără owner, labels, purpose, protected, ttl_days (raportată la momentul actual), expires_at, clear_expiry, name și site_options.

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

Rudel::destroy( string $id ): bool

Șterge tabelele mediului izolat, elimină directorul și worktree-urile asociate și șterge înregistrarea acestuia. Returnează false dacă ID-ul nu există. Nu verifică protecția: sunt șterse și mediile izolate protejate.

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

Aplică politicile de expirare, vechime și inactivitate. Opțiuni: dry_run (bool), max_age_days și max_idle_days (suprascriu rudel_config când valoarea este nenulă). Returnează removed, skipped, errors și reasons (ID către expired, age, idle sau protected). Consultați Curățare.

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

Elimină mediile izolate ale căror ramuri worktree Git asociate au fost integrate în ramura implicită a depozitului. Opțiune: dry_run.

Rudel::touch_current_environment(): void

Înregistrează activitatea (last_used_at) pentru mediul izolat curent. Rudel o apelează la fiecare cerere dintr-un mediu izolat.

Jurnale

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

Returnează ultimele rânduri din debug.log mediului izolat sub formă de path, exists, empty, total_lines și lines.

Rudel::clear_log( string $id ): array

Golește debug.log mediului izolat și returnează path, existed și cleared.

Instantanee

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

Creează un instantaneu și îi returnează metadatele (name, created_at, sandbox_id).

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

Restaurează un instantaneu. Cu setarea implicită auto_snapshot_before_restore, Rudel salvează mai întâi un instantaneu pre-restore-....

Rudel::snapshots( string $id ): array

Lista metadatele instantaneelor, începând cu cele mai noi. Consultați Instantanee.

Șabloane

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

Șabloanele salvate sunt doar copii ale fișierelor. Niciun API sau nicio comandă nu creează un mediu izolat dintr-un șablon. Consultați Șabloane.

Git

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

Confirmă și trimite o copie de lucru din directorul mediului izolat în ramura rudel/{id}. $remote_url și $subdir folosesc implicit valorile stocate în mediul izolat. Returnează SHA-ul confirmării sau null dacă nu s-a schimbat nimic.

Automatizare

  • Rudel::run_automation(): array rulează acum sarcinile de automatizare programate.
  • Rudel::run_scheduled_cleanup(): array face același lucru.

Consultați Automatizare.

Catalogul hook-urilor și comenzilor

  • Rudel::hooks(): array returnează catalogul documentat al hook-urilor, indexat după numele hook-ului. Consultați Hook-uri.
  • Rudel::cli_command_map(): array returnează o descriere serializabilă a fiecărei comenzi wp rudel și a metodei PHP aferente.
  • Rudel::resolve_cli_command( $path, array $args = [], array $assoc_args = [] ): array transformă o comandă analizată într-un plan de execuție, fără să o ruleze.
PHP
$plan = Rudel::resolve_cli_command( 'wp rudel destroy', [ 'alpha-3be7' ] );
// $plan['callable']           => 'Rudel\Rudel::destroy'
// $plan['arguments']          => [ 'alpha-3be7' ]
// $plan['needs_confirmation'] => true

Majoritatea planurilor folosesc transportul php. logs --follow se rezolvă într-un plan shell care rulează tail -f.

Inițializare autonomă

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

Direcționează fațada către o conexiune directă MySQL pentru utilizare în afara WordPress. $context acceptă 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 creează tabelele Rudel pentru conexiunea activă.
  • Rudel::reset(): void șterge conexiunea autonomă și starea din cache.