Pāriet uz saturu

API

Rudel\Rudel ir statiska fasāde. Katra šajā lapā aprakstītā metode ir šīs klases publiska statiska metode.

PHP
use Rudel\Rudel;

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

Dzīvescikla metodēm, kas klonē vai dzēš tabulas (create(), create_from_git(), destroy(), cleanup(), cleanup_merged()), nepieciešams aktīvs WordPress pieprasījums ar $wpdb. Ja tās izsauc pēc Rudel::init() ārpus WordPress, tiek izraisīts RuntimeException. Skatiet Patstāvīga lietošana.

Izpildlaika konteksts

Šīs metodes raksturo pašreizējo pieprasījumu. Ārpus smilškastes tās atgriež false vai null.

Metode Atgriež
is_sandbox(): bool true, ja pašreizējais pieprasījums darbojas smilškastē
id(): ?string pašreizējās smilškastes ID
path(): ?string pašreizējās smilškastes direktoriju
engine(): ?string overlay smilškastē
table_prefix(): ?string smilškastes tabulu prefiksu, piemēram, wp_b65338d_
url(): ?string smilškastes URL; pārklājuma smilškastēm ir kopīga saimnieka URL
exit_url(): string saimnieka URL
is_email_disabled(): bool true, ja pieprasījumam ir bloķēta izejošā pasta sūtīšana
log_path(): ?string {sandbox directory}/debug.log
version(): ?string instalēto Rudel versiju
cli_command(): string WP-CLI saknes komandu, rudel, ja vien nav iestatīts RUDEL_CLI_COMMAND

Rudel::context(): array

Atgriež visu iepriekš minēto vienā masīvā:

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

Atgriež tādu pašu izpildlaika kopsavilkumu kā wp rudel status, masīva formā: sākotnējās ielādes stāvokli, pašreizējo smilškasti, smilškastu direktoriju un skaitu, vērtības rudel_config un to, vai ir ieplānota automatizācija.

Smilškastu ieraksti

Smilškastes tiek atgrieztas kā Rudel\Environment objekti. Noderīgas tikai lasāmas īpašības ir id, name, path, created_at, status, template, owner, labels, purpose, expires_at, last_used_at, theme_slug, table_prefix un clone_source. Metodes ir is_protected(), get_url(), get_table_prefix(), get_size() un to_array().

Rudel::all(): array

Atgriež katru smilškasti kā Environment objektu masīvu. Filtrus nevar norādīt.

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

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

Ielādē smilškasti pēc ID vai atgriež null.

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

Rudel::environments_dir(): string

Atgriež direktoriju, kurā atrodas smilškastu direktorijas.

Dzīves cikls

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

Izveido smilškasti un atgriež to. ID tiek ģenerēts no nosaukuma un četrām heksadecimālām rakstzīmēm.

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

Opcijas:

Atslēga Nozīme
theme smilškastē kopējamās tēmas slug; pēc noklusējuma — saimniekdatora aktīvā tēma
clone_from esošas smilškastes ID, ko klonēt saimniekdatora vietā
owner, purpose brīvā teksta metadati
labels masīvs vai ar komatiem atdalīta virkne
protected true, lai izslēgtu smilškasti no tīrīšanas
ttl_days derīguma termiņš no izveides brīža
expires_at skaidri norādīta derīguma termiņa laika atzīme
template ierakstā saglabāta etiķete; tā neielādē saglabātu veidni
site_options opciju nosaukumi un skalārās vērtības, ko ieraksta smilškastes opciju tabulā
skip_limits true, lai apietu max_sandboxes un max_disk_mb

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

Izveido smilškasti un pēc tam tajā klonē $remote_url. Pieņem create() opcijas, kā arī name (pēc noklusējuma — repozitorija nosaukums) un type (theme vai plugin). Atgriež [ 'environment' => Environment, 'git' => [...] ]. Ja klonēšana neizdodas, smilškaste netiek atcelta; kļūda tiek atgriezta laukā git.error. Skatiet Git.

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

Atjaunina dzīvescikla metadatus un atgriež atsvaidzināto smilškasti. Pieņemtās atslēgas: owner, labels, purpose, protected, ttl_days (attiecībā pret pašreizējo brīdi), expires_at, clear_expiry, name un site_options.

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

Rudel::destroy( string $id ): bool

Dzēš smilškastes tabulas, tās direktoriju un saistītos darba kokus, kā arī tās ierakstu. Ja ID neeksistē, atgriež false. Aizsardzība netiek pārbaudīta: tiek iznīcinātas arī aizsargātas smilškastes.

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

Izpilda derīguma termiņa, vecuma un neaktivitātes politiku. Opcijas: dry_run (bool), max_age_days un max_idle_days (ja vērtība nav nulle, ignorē rudel_config). Atgriež removed, skipped, errors un reasons (ID un expired, age, idle vai protected). Skatiet Tīrīšana.

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

Noņem smilškastes, kuru saistīto Git darba koku atzari ir sapludināti repozitorija noklusējuma atzarā. Opcija: dry_run.

Rudel::touch_current_environment(): void

Reģistrē pašreizējās smilškastes darbību (last_used_at). Rudel izsauc šo metodi katrā smilškastes pieprasījumā.

Žurnāli

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

Atgriež pēdējās smilškastes debug.log rindas kā path, exists, empty, total_lines un lines.

Rudel::clear_log( string $id ): array

Iztukšo smilškastes debug.log un atgriež path, existed un cleared.

Momentuzņēmumi

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

Izveido momentuzņēmumu un atgriež tā metadatus (name, created_at, sandbox_id).

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

Atjauno momentuzņēmumu. Ja tiek izmantots noklusējuma iestatījums auto_snapshot_before_restore, Rudel vispirms saglabā pre-restore-... momentuzņēmumu.

Rudel::snapshots( string $id ): array

Uzskaita momentuzņēmumu metadatus, sākot ar jaunākajiem. Skatiet Momentuzņēmumi.

Veidnes

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

Saglabātās veidnes ir tikai failu kopijas. Neviens API vai komanda no tām neizveido smilškasti. Skatiet Veidnes.

Git

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

Apstiprina un nosūta smilškastes direktorijā esošo darba kopiju uz atzaru rudel/{id}. $remote_url un $subdir pēc noklusējuma izmanto smilškastē saglabātās vērtības. Atgriež apstiprinājuma SHA vai null, ja izmaiņu nav.

Automatizācija

  • Rudel::run_automation(): array palaiž ieplānotos automatizācijas uzdevumus tūlīt.
  • Rudel::run_scheduled_cleanup(): array veic to pašu.

Skatiet Automatizācija.

Āķi un komandu katalogs

  • Rudel::hooks(): array atgriež dokumentēto āķu katalogu, kas sakārtots pēc āķa nosaukuma. Skatiet Āķi.
  • Rudel::cli_command_map(): array atgriež serializējamu aprakstu par katru wp rudel komandu un tai atbilstošo metodi PHP.
  • Rudel::resolve_cli_command( $path, array $args = [], array $assoc_args = [] ): array pārvērš vienu parsētu komandu izpildes plānā, to neizpildot.
PHP
$plan = Rudel::resolve_cli_command( 'wp rudel destroy', [ 'alpha-3be7' ] );
// $plan['callable']           => 'Rudel\Rudel::destroy'
// $plan['arguments']          => [ 'alpha-3be7' ]
// $plan['needs_confirmation'] => true

Lielākajā daļā plānu tiek izmantots transports php. logs --follow tiek atrisināts kā shell plāns, kas darbojas ar tail -f.

Patstāvīga inicializācija

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

Norāda fasādei tiešu MySQL savienojumu lietošanai ārpus WordPress. $context pieņem 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 izveido Rudel tabulas aktīvajam savienojumam.
  • Rudel::reset(): void notīra patstāvīgo savienojumu un kešoto stāvokli.