API
Rudel\Rudel to statyczna fasada. Każda metoda na tej stronie jest publiczną metodą statyczną tej klasy.
use Rudel\Rudel;
if ( Rudel::is_sandbox() ) {
error_log( 'Running in sandbox ' . Rudel::id() );
}
Metody cyklu życia, które klonują lub usuwają tabele (create(), create_from_git(), destroy(), cleanup(), cleanup_merged()), wymagają aktywnego żądania WordPress z $wpdb. Wywołanie ich po Rudel::init() poza WordPress spowoduje zgłoszenie RuntimeException. Zobacz Użycie samodzielne.
Kontekst środowiska uruchomieniowego
Te metody opisują bieżące żądanie. Poza piaskownicą zwracają false lub null.
| Metoda | Zwracana wartość |
|---|---|
is_sandbox(): bool |
true, jeśli bieżące żądanie działa w piaskownicy |
id(): ?string |
identyfikator bieżącej piaskownicy |
path(): ?string |
katalog bieżącej piaskownicy |
engine(): ?string |
overlay w piaskownicy |
table_prefix(): ?string |
prefiks tabel piaskownicy, na przykład wp_b65338d_ |
url(): ?string |
URL piaskownicy; piaskownice nakładkowe współdzielą URL hosta |
exit_url(): string |
URL hosta |
is_email_disabled(): bool |
true, gdy poczta wychodząca jest blokowana dla żądania |
log_path(): ?string |
{sandbox directory}/debug.log |
version(): ?string |
zainstalowana wersja Rudel |
cli_command(): string |
główne polecenie WP-CLI, rudel, chyba że ustawiono RUDEL_CLI_COMMAND |
Rudel::context(): array
Zwraca wszystkie powyższe wartości w jednej tablicy:
[
'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
Zwraca w postaci tablicy to samo podsumowanie środowiska uruchomieniowego co wp rudel status: stan inicjalizacji, bieżąca piaskownica, katalog i liczba piaskownic, wartości rudel_config oraz informacja, czy zaplanowano automatyzację.
Rekordy piaskownic
Piaskownice są zwracane jako obiekty Rudel\Environment. Przydatne właściwości tylko do odczytu obejmują id, name, path, created_at, status, template, owner, labels, purpose, expires_at, last_used_at, theme_slug, table_prefix i clone_source. Metody obejmują is_protected(), get_url(), get_table_prefix(), get_size() i to_array().
Rudel::all(): array
Zwraca każdą piaskownicę jako tablicę obiektów Environment. Nie przyjmuje filtrów.
foreach ( Rudel::all() as $sandbox ) {
echo $sandbox->id . ' ' . $sandbox->status . "\n";
}
Rudel::get( string $id ): ?Environment
Wczytuje piaskownicę według identyfikatora lub zwraca null.
$sandbox = Rudel::get( 'alpha-3be7' );
Rudel::environments_dir(): string
Zwraca katalog zawierający katalogi piaskownic.
Cykl życia
Rudel::create( string $name, array $options = [] ): Environment
Tworzy piaskownicę i ją zwraca. Identyfikator jest generowany z nazwy i czterech znaków szesnastkowych.
$sandbox = Rudel::create( 'alpha', [
'theme' => 'twentytwentyfour',
'owner' => 'dennis',
'labels' => [ 'qa', 'agent' ],
'ttl_days' => 7,
] );
Opcje:
| Klucz | Znaczenie |
|---|---|
theme |
identyfikator motywu do skopiowania do piaskownicy; domyślnie aktywny motyw hosta |
clone_from |
identyfikator istniejącej piaskownicy, która zostanie sklonowana zamiast hosta |
owner, purpose |
metadane w postaci dowolnego tekstu |
labels |
tablica lub ciąg znaków rozdzielonych przecinkami |
protected |
true, aby wykluczyć piaskownicę z czyszczenia |
ttl_days |
czas wygaśnięcia liczony od chwili utworzenia |
expires_at |
jawny znacznik czasu wygaśnięcia |
template |
etykieta zapisana w rekordzie; nie wczytuje zapisanego szablonu |
site_options |
nazwy opcji i wartości skalarne zapisywane w tabeli opcji piaskownicy |
skip_limits |
true, aby pominąć max_sandboxes i max_disk_mb |
Rudel::create_from_git( string $remote_url, array $options = [] ): array
Tworzy piaskownicę, a następnie klonuje do niej $remote_url. Przyjmuje opcje create() oraz name (domyślnie nazwę repozytorium) i type (theme lub plugin). Zwraca [ 'environment' => Environment, 'git' => [...] ]. Nieudane klonowanie nie powoduje wycofania utworzenia piaskownicy; błąd jest zwracany w git.error. Zobacz Git.
Rudel::update( string $id, array $changes ): Environment
Aktualizuje metadane cyklu życia i zwraca odświeżoną piaskownicę. Akceptowane klucze obejmują owner, labels, purpose, protected, ttl_days (względem bieżącej chwili), expires_at, clear_expiry, name i site_options.
Rudel::update( 'alpha-3be7', [ 'protected' => true, 'ttl_days' => 3 ] );
Rudel::destroy( string $id ): bool
Usuwa tabele piaskownicy, jej katalog i połączone drzewa robocze, a także kasuje jej rekord. Zwraca false, jeśli identyfikator nie istnieje. Nie sprawdza ochrony: chronione piaskownice również zostaną zniszczone.
Rudel::cleanup( array $options = [] ): array
Uruchamia zasady dotyczące wygaśnięcia, wieku i bezczynności. Opcje: dry_run (bool), max_age_days i max_idle_days (zastępują rudel_config, gdy są różne od zera). Zwraca removed, skipped, errors i reasons (identyfikator do expired, age, idle lub protected). Zobacz Czyszczenie.
Rudel::cleanup_merged( array $options = [] ): array
Usuwa piaskownice, których gałęzie połączonych drzew roboczych Git zostały scalone z domyślną gałęzią repozytorium. Opcja: dry_run.
Rudel::touch_current_environment(): void
Rejestruje aktywność (last_used_at) bieżącej piaskownicy. Rudel wywołuje tę metodę przy każdym żądaniu w piaskownicy.
Dzienniki
Rudel::read_log( string $id, int $lines = 50 ): array
Zwraca ostatnie wiersze dziennika debug.log piaskownicy jako path, exists, empty, total_lines i lines.
Rudel::clear_log( string $id ): array
Opróżnia dziennik debug.log piaskownicy i zwraca path, existed i cleared.
Migawki
Rudel::snapshot( string $id, string $name ): array
Tworzy migawkę i zwraca jej metadane (name, created_at, sandbox_id).
Rudel::restore( string $id, string $name ): void
Przywraca migawkę. Przy domyślnym ustawieniu auto_snapshot_before_restore Rudel najpierw zapisuje migawkę pre-restore-....
Rudel::snapshots( string $id ): array
Wyświetla metadane migawek, zaczynając od najnowszej. Zobacz Migawki.
Szablony
Rudel::save_template( string $id, string $name, string $description = '' ): arrayRudel::templates(): arrayRudel::delete_template( string $name ): bool
Zapisane szablony to wyłącznie kopie plików. Żadna metoda API ani żadne polecenie nie tworzy z nich piaskownicy. Zobacz Szablony.
Git
Rudel::push( string $id, string $remote_url = '', string $message = 'Update from Rudel', string $subdir = '' ): ?string
Zatwierdza zmiany w kopii roboczej w katalogu piaskownicy i wysyła je do gałęzi rudel/{id}. $remote_url i $subdir domyślnie przyjmują wartości zapisane w piaskownicy. Zwraca SHA zatwierdzenia lub null, jeśli nic się nie zmieniło.
Automatyzacja
Rudel::run_automation(): arrayuruchamia teraz zaplanowane zadania automatyzacji.Rudel::run_scheduled_cleanup(): arrayrobi to samo.
Zobacz Automatyzacja.
Katalog haków i poleceń
Rudel::hooks(): arrayzwraca udokumentowany katalog haków z kluczami będącymi nazwami haków. Zobacz Haki.Rudel::cli_command_map(): arrayzwraca możliwy do serializacji opis każdego poleceniawp rudeli metody PHP, która za nim stoi.Rudel::resolve_cli_command( $path, array $args = [], array $assoc_args = [] ): arrayzamienia jedno sparsowane polecenie na plan wykonania, nie uruchamiając go.
$plan = Rudel::resolve_cli_command( 'wp rudel destroy', [ 'alpha-3be7' ] );
// $plan['callable'] => 'Rudel\Rudel::destroy'
// $plan['arguments'] => [ 'alpha-3be7' ]
// $plan['needs_confirmation'] => true
Większość planów korzysta z transportu php. logs --follow jest rozpoznawane jako plan shell wykonywany przez tail -f.
Inicjalizacja samodzielna
Rudel::init( Connection $connection, array $context = [] ): void
Kieruje fasadę do bezpośredniego połączenia MySQL, aby można jej było używać poza WordPress. $context przyjmuje 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(): voidtworzy tabele Rudel dla aktywnego połączenia.Rudel::reset(): voidczyści samodzielne połączenie i stan w pamięci podręcznej.