İçeriğe geç

API

Rudel\Rudel statik bir cephedir. Bu sayfadaki her yöntem, bu sınıfın genel statik yöntemidir.

PHP
use Rudel\Rudel;

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

Tabloları kopyalayan veya kaldıran yaşam döngüsü yöntemleri (create(), create_from_git(), destroy(), cleanup(), cleanup_merged()), $wpdb içeren etkin bir WordPress isteği gerektirir. Bu yöntemler, WordPress dışında, Rudel::init() sonrasında çağrılırsa RuntimeException fırlatır. Bkz. Bağımsız Kullanım.

Çalışma zamanı bağlamı

Bu yöntemler mevcut isteği açıklar. Sandbox dışında false veya null döndürürler.

Yöntem Döndürdüğü
is_sandbox(): bool Mevcut istek sandbox içinde çalışıyorsa true
id(): ?string Mevcut sandbox kimliği
path(): ?string Mevcut sandbox dizini
engine(): ?string Sandbox içindeyken overlay
table_prefix(): ?string Sandbox tablo öneki, örneğin wp_b65338d_
url(): ?string Sandbox URL; katmanlı sandbox'lar ana makinenin URL değerini paylaşır
exit_url(): string Ana makinenin URL değeri
is_email_disabled(): bool İstek için dışarı giden posta engellendiğinde true
log_path(): ?string {sandbox directory}/debug.log
version(): ?string Yüklü Rudel sürümü
cli_command(): string WP-CLI kök komutu; RUDEL_CLI_COMMAND ayarlanmadıkça rudel

Rudel::context(): array

Yukarıdakilerin tümünü tek bir dizide döndürür:

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

wp rudel status ile aynı çalışma zamanı özetini dizi olarak döndürür: önyükleme durumu, mevcut sandbox, sandbox dizini ve sayısı, rudel_config değerleri ve otomasyonun planlanıp planlanmadığı.

Sandbox kayıtları

Sandbox'lar Rudel\Environment nesneleri olarak döndürülür. Salt okunur kullanışlı özellikler arasında id, name, path, created_at, status, template, owner, labels, purpose, expires_at, last_used_at, theme_slug, table_prefix ve clone_source bulunur. Yöntemler arasında is_protected(), get_url(), get_table_prefix(), get_size() ve to_array() yer alır.

Rudel::all(): array

Her sandbox'ı Environment nesnelerinden oluşan bir dizi olarak döndürür. Filtre almaz.

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

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

Bir sandbox'ı kimliğine göre yükler veya null döndürür.

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

Rudel::environments_dir(): string

Sandbox dizinlerini barındıran dizini döndürür.

Yaşam döngüsü

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

Bir sandbox oluşturur ve döndürür. Kimlik, addan ve dört onaltılık karakterden oluşturulur.

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

Seçenekler:

Anahtar Anlamı
theme Sandbox'a kopyalanacak tema kısa adı; varsayılan, ana makinenin etkin temasıdır
clone_from Ana makine yerine kopyalanacak mevcut sandbox'ın kimliği
owner, purpose Serbest metinli üst veriler
labels Dizi veya virgülle ayrılmış dize
protected Sandbox'ı temizleme işleminden hariç tutmak için true
ttl_days Oluşturulma zamanına göre sona erme süresi
expires_at Açık sona erme zaman damgası
template Kayıtta saklanan etiket; kaydedilmiş şablonu yüklemez
site_options Sandbox seçenekleri tablosuna yazılan seçenek adları ve skaler değerler
skip_limits max_sandboxes ve max_disk_mb öğelerini atlamak için true

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

Bir sandbox oluşturur, ardından $remote_url öğesini içine kopyalar. create() seçeneklerini ve ayrıca name (varsayılan olarak depo adı) ile type (theme veya plugin) değerlerini kabul eder. [ 'environment' => Environment, 'git' => [...] ] döndürür. Kopyalama başarısız olursa sandbox geri alınmaz; hata git.error içinde döndürülür. Bkz. Git.

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

Yaşam döngüsü üst verilerini günceller ve yenilenmiş sandbox'ı döndürür. Kabul edilen anahtarlar arasında owner, labels, purpose, protected, ttl_days (şimdiki zamana göre), expires_at, clear_expiry, name ve site_options bulunur.

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

Rudel::destroy( string $id ): bool

Sandbox tablolarını kaldırır, dizinini ve bağlantılı çalışma ağaçlarını siler, ardından kaydını siler. Kimlik yoksa false döndürür. Koruma durumunu denetlemez: korunan sandbox'lar da yok edilir.

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

Sona erme, yaş ve etkin olmama politikalarını çalıştırır. Seçenekler: dry_run (bool), max_age_days ve max_idle_days (sıfırdan farklı olduğunda rudel_config değerini geçersiz kılar). removed, skipped, errors ve reasons döndürür (kimlikten expired, age, idle veya protected değerine eşleme). Bkz. Temizleme.

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

Bağlantılı Git çalışma ağacı dalları deponun varsayılan dalıyla birleştirilmiş sandbox'ları kaldırır. Seçenek: dry_run.

Rudel::touch_current_environment(): void

Mevcut sandbox için etkinlik kaydeder (last_used_at). Rudel bunu her sandbox isteğinde çağırır.

Günlükler

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

Sandbox debug.log dosyasının son satırlarını path, exists, empty, total_lines ve lines olarak döndürür.

Rudel::clear_log( string $id ): array

Sandbox debug.log dosyasını boşaltır ve path, existed ve cleared döndürür.

Anlık görüntüler

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

Bir anlık görüntü oluşturur ve üst verilerini (name, created_at, sandbox_id) döndürür.

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

Bir anlık görüntüyü geri yükler. Varsayılan auto_snapshot_before_restore ayarıyla Rudel önce bir pre-restore-... anlık görüntüsü kaydeder.

Rudel::snapshots( string $id ): array

Anlık görüntü üst verilerini en yeniden başlayarak listeler. Bkz. Anlık Görüntüler.

Şablonlar

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

Kaydedilmiş şablonlar yalnızca dosya kopyalarıdır. Hiçbir API veya komut, bir şablondan sandbox oluşturmaz. Bkz. Şablonlar.

Git

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

Sandbox dizini içindeki bir çalışma kopyasını rudel/{id} dalına kaydeder ve gönderir. $remote_url ve $subdir varsayılan olarak sandbox'ta saklanan değerleri kullanır. Değişiklik yoksa commit SHA'sını veya null döndürür.

Otomasyon

  • Rudel::run_automation(): array planlanmış otomasyon görevlerini hemen çalıştırır.
  • Rudel::run_scheduled_cleanup(): array aynı işlemi yapar.

Bkz. Otomasyon.

Kancalar ve komut kataloğu

  • Rudel::hooks(): array, belgelediği kanca kataloğunu kanca adına göre anahtarlanmış olarak döndürür. Bkz. Kancalar.
  • Rudel::cli_command_map(): array, her wp rudel komutunun ve onu çalıştıran PHP yönteminin serileştirilebilir açıklamasını döndürür.
  • Rudel::resolve_cli_command( $path, array $args = [], array $assoc_args = [] ): array, ayrıştırılmış tek bir komutu çalıştırmadan yürütme planına dönüştürür.
PHP
$plan = Rudel::resolve_cli_command( 'wp rudel destroy', [ 'alpha-3be7' ] );
// $plan['callable']           => 'Rudel\Rudel::destroy'
// $plan['arguments']          => [ 'alpha-3be7' ]
// $plan['needs_confirmation'] => true

Planların çoğu php aktarımını kullanır. logs --follow, tail -f çalıştırılan bir shell planına çözülür.

Bağımsız başlatma

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

Cephenin, WordPress dışında kullanmak üzere doğrudan bir MySQL bağlantısına yöneltilmesini sağlar. $context, environments_dir kabul eder.

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, etkin bağlantı için Rudel tablolarını oluşturur.
  • Rudel::reset(): void bağımsız bağlantıyı ve önbelleğe alınmış durumu temizler.