API
Rudel\Rudel statik bir cephedir. Bu sayfadaki her yöntem, bu sınıfın genel statik yöntemidir.
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:
[
'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.
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.
$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.
$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.
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 = '' ): arrayRudel::templates(): arrayRudel::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(): arrayplanlanmış otomasyon görevlerini hemen çalıştırır.Rudel::run_scheduled_cleanup(): arrayaynı 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, herwp rudelkomutunun 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.
$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.
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(): voidbağımsız bağlantıyı ve önbelleğe alınmış durumu temizler.