API
Rudel\Rudel is een statische facade. Elke methode op deze pagina is een publieke statische methode van die klasse.
use Rudel\Rudel;
if ( Rudel::is_sandbox() ) {
error_log( 'Running in sandbox ' . Rudel::id() );
}
Levenscyclusmethoden die tabellen klonen of verwijderen (create(), create_from_git(), destroy(), cleanup(), cleanup_merged()) vereisen een actief WordPress-verzoek met $wpdb. Als ze worden aangeroepen nadat Rudel::init() buiten WordPress is uitgevoerd, genereren ze een RuntimeException. Zie Zelfstandig gebruik.
Runtimecontext
Deze methoden beschrijven het huidige verzoek. Buiten een sandbox retourneren ze false of null.
| Methode | Geeft terug |
|---|---|
is_sandbox(): bool |
true wanneer het huidige verzoek binnen een sandbox wordt uitgevoerd |
id(): ?string |
de huidige sandbox-ID |
path(): ?string |
de huidige sandboxmap |
engine(): ?string |
overlay binnen een sandbox |
table_prefix(): ?string |
het tabelvoorvoegsel van de sandbox, bijvoorbeeld wp_b65338d_ |
url(): ?string |
de sandbox URL; overlay-sandboxes delen de host-URL |
exit_url(): string |
de host-URL |
is_email_disabled(): bool |
true wanneer uitgaande e-mail voor het verzoek is geblokkeerd |
log_path(): ?string |
{sandbox directory}/debug.log |
version(): ?string |
de geïnstalleerde versie van Rudel |
cli_command(): string |
de rootopdracht van WP-CLI, rudel tenzij RUDEL_CLI_COMMAND is ingesteld |
Rudel::context(): array
Geeft al het bovenstaande terug in één array:
[
'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
Geeft hetzelfde runtime-overzicht terug als wp rudel status, als array: bootstrapstatus, huidige sandbox, sandboxmap en aantal sandboxes, de waarden van rudel_config en of automatisering is ingepland.
Sandboxrecords
Sandboxes worden teruggegeven als Rudel\Environment-objecten. Handige alleen-lezen eigenschappen zijn onder meer id, name, path, created_at, status, template, owner, labels, purpose, expires_at, last_used_at, theme_slug, table_prefix en clone_source. Methoden zijn onder meer is_protected(), get_url(), get_table_prefix(), get_size() en to_array().
Rudel::all(): array
Geeft elke sandbox terug als een array van Environment-objecten. Accepteert geen filters.
foreach ( Rudel::all() as $sandbox ) {
echo $sandbox->id . ' ' . $sandbox->status . "\n";
}
Rudel::get( string $id ): ?Environment
Laadt één sandbox op basis van ID, of geeft null terug.
$sandbox = Rudel::get( 'alpha-3be7' );
Rudel::environments_dir(): string
Geeft de map terug waarin de sandboxmappen staan.
Levenscyclus
Rudel::create( string $name, array $options = [] ): Environment
Maakt een sandbox aan en geeft deze terug. De ID wordt gegenereerd op basis van de naam plus vier hexadecimale tekens.
$sandbox = Rudel::create( 'alpha', [
'theme' => 'twentytwentyfour',
'owner' => 'dennis',
'labels' => [ 'qa', 'agent' ],
'ttl_days' => 7,
] );
Opties:
| Sleutel | Betekenis |
|---|---|
theme |
themaslug die naar de sandbox wordt gekopieerd; standaard het actieve thema van de host |
clone_from |
ID van een bestaande sandbox om te klonen in plaats van de host |
owner, purpose |
vrije metadata |
labels |
array of kommagescheiden tekenreeks |
protected |
true om de sandbox uit te sluiten van opruiming |
ttl_days |
vervaldatum ten opzichte van het aanmaaktijdstip |
expires_at |
expliciet tijdstip van verval |
template |
een label dat in het record wordt opgeslagen; hiermee wordt geen opgeslagen sjabloon geladen |
site_options |
optienamen en scalaire waarden die naar de optietabel van de sandbox worden geschreven |
skip_limits |
true om max_sandboxes en max_disk_mb te omzeilen |
Rudel::create_from_git( string $remote_url, array $options = [] ): array
Maakt een sandbox aan en kloont vervolgens $remote_url daarin. Accepteert de opties create() plus name (standaard de repositorynaam) en type (theme of plugin). Geeft [ 'environment' => Environment, 'git' => [...] ] terug. Een mislukte kloonactie draait het aanmaken van de sandbox niet terug; de fout wordt teruggegeven in git.error. Zie Git.
Rudel::update( string $id, array $changes ): Environment
Werkt de levenscyclusmetadata bij en geeft de vernieuwde sandbox terug. Geaccepteerde sleutels zijn onder meer owner, labels, purpose, protected, ttl_days (relatief ten opzichte van nu), expires_at, clear_expiry, name en site_options.
Rudel::update( 'alpha-3be7', [ 'protected' => true, 'ttl_days' => 3 ] );
Rudel::destroy( string $id ): bool
Verwijdert de sandboxtabellen, de sandboxmap en gekoppelde worktrees, en verwijdert het record. Geeft false terug als de ID niet bestaat. Er wordt niet gecontroleerd op bescherming: ook beschermde sandboxes worden vernietigd.
Rudel::cleanup( array $options = [] ): array
Past het beleid voor verval, leeftijd en inactiviteit toe. Opties: dry_run (bool), max_age_days en max_idle_days (overschrijven rudel_config wanneer deze niet nul is). Geeft removed, skipped, errors en reasons terug (ID naar expired, age, idle of protected). Zie Opruiming.
Rudel::cleanup_merged( array $options = [] ): array
Verwijdert sandboxes waarvan de gekoppelde Git-worktreebranches zijn samengevoegd met de standaardbranch van de repository. Optie: dry_run.
Rudel::touch_current_environment(): void
Registreert activiteit (last_used_at) voor de huidige sandbox. Rudel roept dit aan bij elk sandboxverzoek.
Logboeken
Rudel::read_log( string $id, int $lines = 50 ): array
Geeft de laatste regels van het sandbox-debug.log terug als path, exists, empty, total_lines en lines.
Rudel::clear_log( string $id ): array
Leegt het sandbox-debug.log en geeft path, existed en cleared terug.
Momentopnamen
Rudel::snapshot( string $id, string $name ): array
Maakt een momentopname en geeft de metadata terug (name, created_at, sandbox_id).
Rudel::restore( string $id, string $name ): void
Zet een momentopname terug. Met de standaardinstelling auto_snapshot_before_restore slaat Rudel eerst een pre-restore-...-momentopname op.
Rudel::snapshots( string $id ): array
Geeft metadata van momentopnamen weer, nieuwste eerst. Zie Momentopnamen.
Sjablonen
Rudel::save_template( string $id, string $name, string $description = '' ): arrayRudel::templates(): arrayRudel::delete_template( string $name ): bool
Opgeslagen sjablonen zijn uitsluitend bestandskopieën. Geen API of opdracht maakt een sandbox op basis daarvan aan. Zie Sjablonen.
Git
Rudel::push( string $id, string $remote_url = '', string $message = 'Update from Rudel', string $subdir = '' ): ?string
Commit en pusht een checkout in de sandboxmap naar de branch rudel/{id}. $remote_url en $subdir gebruiken standaard de waarden die in de sandbox zijn opgeslagen. Geeft de commit-SHA terug, of null als er niets is gewijzigd.
Automatisering
Rudel::run_automation(): arrayvoert de ingeplande automatiseringstaken nu uit.Rudel::run_scheduled_cleanup(): arraydoet hetzelfde.
Zie Automatisering.
Hooks en opdrachtencatalogus
Rudel::hooks(): arraygeeft de gedocumenteerde hookcatalogus terug, gerangschikt op hooknaam. Zie Hooks.Rudel::cli_command_map(): arraygeeft een serialiseerbare beschrijving terug van elkewp rudel-opdracht en de PHP-methode erachter.Rudel::resolve_cli_command( $path, array $args = [], array $assoc_args = [] ): arrayzet één geparseerde opdracht om in een uitvoeringsplan zonder deze uit te voeren.
$plan = Rudel::resolve_cli_command( 'wp rudel destroy', [ 'alpha-3be7' ] );
// $plan['callable'] => 'Rudel\Rudel::destroy'
// $plan['arguments'] => [ 'alpha-3be7' ]
// $plan['needs_confirmation'] => true
De meeste plannen gebruiken het transport php. logs --follow wordt omgezet in een shell-plan dat tail -f uitvoert.
Zelfstandige initialisatie
Rudel::init( Connection $connection, array $context = [] ): void
Richt de facade op een directe MySQL-verbinding voor gebruik buiten WordPress. $context accepteert 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(): voidmaakt de Rudel-tabellen aan voor de actieve verbinding.Rudel::reset(): voidwist de zelfstandige verbinding en de gecachte status.