Μετάβαση στο περιεχόμενο

API

Το Rudel\Rudel είναι στατικό facade. Κάθε μέθοδος σε αυτή τη σελίδα είναι δημόσια στατική μέθοδος αυτής της κλάσης.

PHP
use Rudel\Rudel;

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

Οι μέθοδοι κύκλου ζωής που κλωνοποιούν ή διαγράφουν πίνακες (create(), create_from_git(), destroy(), cleanup(), cleanup_merged()) χρειάζονται ενεργό αίτημα WordPress με $wpdb. Προκαλούν ένα RuntimeException όταν καλούνται αφού το Rudel::init() βρίσκεται εκτός του WordPress. Δείτε την ενότητα Αυτόνομη χρήση.

Περιβάλλον εκτέλεσης

Αυτές οι μέθοδοι περιγράφουν το τρέχον αίτημα. Εκτός sandbox επιστρέφουν false ή null.

Μέθοδος Επιστρέφει
is_sandbox(): bool true όταν το τρέχον αίτημα εκτελείται μέσα σε sandbox
id(): ?string το ID του τρέχοντος sandbox
path(): ?string τον τρέχοντα κατάλογο sandbox
engine(): ?string overlay μέσα σε sandbox
table_prefix(): ?string το πρόθεμα πινάκων του sandbox, για παράδειγμα wp_b65338d_
url(): ?string το URL του sandbox· τα overlay sandbox μοιράζονται το URL του host
exit_url(): string το URL του host
is_email_disabled(): bool true όταν η εξερχόμενη αλληλογραφία είναι αποκλεισμένη για το αίτημα
log_path(): ?string {sandbox directory}/debug.log
version(): ?string την εγκατεστημένη έκδοση Rudel
cli_command(): string τη βασική εντολή WP-CLI, rudel εκτός αν έχει οριστεί το RUDEL_CLI_COMMAND

Rudel::context(): array

Επιστρέφει όλα τα παραπάνω σε έναν πίνακα:

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 ως πίνακα: κατάσταση αρχικοποίησης, τρέχον sandbox, κατάλογος και πλήθος sandbox, οι τιμές rudel_config και αν έχει προγραμματιστεί αυτοματοποίηση.

Εγγραφές sandbox

Τα sandbox επιστρέφονται ως αντικείμενα Rudel\Environment. Στις χρήσιμες ιδιότητες μόνο για ανάγνωση περιλαμβάνονται οι id, name, path, created_at, status, template, owner, labels, purpose, expires_at, last_used_at, theme_slug, table_prefix και clone_source. Στις μεθόδους περιλαμβάνονται οι is_protected(), get_url(), get_table_prefix(), get_size() και to_array().

Rudel::all(): array

Επιστρέφει κάθε sandbox ως πίνακα αντικειμένων Environment. Δεν δέχεται φίλτρα.

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

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

Φορτώνει ένα sandbox βάσει ID ή επιστρέφει null.

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

Rudel::environments_dir(): string

Επιστρέφει τον κατάλογο που περιέχει τους καταλόγους sandbox.

Κύκλος ζωής

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

Δημιουργεί ένα sandbox και το επιστρέφει. Το ID δημιουργείται από το όνομα και τέσσερις δεκαεξαδικούς χαρακτήρες.

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

Επιλογές:

Κλειδί Σημασία
theme αναγνωριστικό θέματος προς αντιγραφή στο sandbox· από προεπιλογή, το ενεργό θέμα του host
clone_from ID υπάρχοντος sandbox προς κλωνοποίηση αντί του host
owner, purpose μεταδεδομένα ελεύθερου κειμένου
labels πίνακας ή συμβολοσειρά τιμών χωρισμένων με κόμμα
protected true για εξαίρεση του sandbox από την εκκαθάριση
ttl_days λήξη με βάση τον χρόνο δημιουργίας
expires_at ρητή χρονική σήμανση λήξης
template ετικέτα που αποθηκεύεται στην εγγραφή· δεν φορτώνει αποθηκευμένο πρότυπο
site_options ονόματα επιλογών και βαθμωτές τιμές που εγγράφονται στον πίνακα επιλογών του sandbox
skip_limits true για παράκαμψη των max_sandboxes και max_disk_mb

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

Δημιουργεί ένα sandbox και, στη συνέχεια, κλωνοποιεί μέσα του το $remote_url. Δέχεται τις επιλογές create(), καθώς και το name (από προεπιλογή το όνομα του αποθετηρίου) και το type (theme ή plugin). Επιστρέφει [ 'environment' => Environment, 'git' => [...] ]. Αν η κλωνοποίηση αποτύχει, το sandbox δεν επανέρχεται στην προηγούμενη κατάσταση· το σφάλμα επιστρέφεται στο git.error. Δείτε Git.

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

Ενημερώνει τα μεταδεδομένα κύκλου ζωής και επιστρέφει το ανανεωμένο sandbox. Στα αποδεκτά κλειδιά περιλαμβάνονται τα owner, labels, purpose, protected, ttl_days (σε σχέση με τώρα), expires_at, clear_expiry, name και site_options.

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

Rudel::destroy( string $id ): bool

Διαγράφει τους πίνακες του sandbox, αφαιρεί τον κατάλογό του και τα συνδεδεμένα worktree και διαγράφει την εγγραφή του. Επιστρέφει false αν το ID δεν υπάρχει. Δεν ελέγχει την προστασία: διαγράφονται και τα προστατευμένα sandbox.

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

Εφαρμόζει την πολιτική λήξης, ηλικίας και αδράνειας. Επιλογές: dry_run (bool), max_age_days και max_idle_days (παρακάμπτουν το rudel_config όταν δεν είναι μηδέν). Επιστρέφει τα removed, skipped, errors και reasons (ID προς expired, age, idle ή protected). Δείτε Εκκαθάριση.

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

Αφαιρεί sandbox των οποίων οι κλάδοι worktree του συνδεδεμένου Git έχουν συγχωνευτεί στον προεπιλεγμένο κλάδο του αποθετηρίου. Επιλογή: dry_run.

Rudel::touch_current_environment(): void

Καταγράφει δραστηριότητα (last_used_at) για το τρέχον sandbox. Το Rudel την καλεί σε κάθε αίτημα sandbox.

Αρχεία καταγραφής

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

Επιστρέφει τις τελευταίες γραμμές του debug.log του sandbox ως path, exists, empty, total_lines και lines.

Rudel::clear_log( string $id ): array

Αδειάζει το debug.log του sandbox και επιστρέφει τα path, existed και cleared.

Στιγμιότυπα

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

Δημιουργεί ένα στιγμιότυπο και επιστρέφει τα μεταδεδομένα του (name, created_at, sandbox_id).

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

Επαναφέρει ένα στιγμιότυπο. Με την προεπιλεγμένη ρύθμιση auto_snapshot_before_restore, το Rudel αποθηκεύει πρώτα ένα στιγμιότυπο pre-restore-....

Rudel::snapshots( string $id ): array

Παραθέτει τα μεταδεδομένα των στιγμιότυπων, με τα νεότερα πρώτα. Δείτε Στιγμιότυπα.

Πρότυπα

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

Τα αποθηκευμένα πρότυπα είναι μόνο αντίγραφα αρχείων. Κανένα API ή εντολή δεν δημιουργεί sandbox από πρότυπο. Δείτε Πρότυπα.

Git

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

Υποβάλλει τις αλλαγές και κάνει push ένα checkout μέσα στον κατάλογο sandbox στον κλάδο rudel/{id}. Τα $remote_url και $subdir χρησιμοποιούν από προεπιλογή τις τιμές που είναι αποθηκευμένες στο sandbox. Επιστρέφει το SHA του commit ή null αν δεν υπάρχουν αλλαγές.

Αυτοματοποίηση

  • Το Rudel::run_automation(): array εκτελεί τώρα τις προγραμματισμένες εργασίες αυτοματοποίησης.
  • Το Rudel::run_scheduled_cleanup(): array κάνει το ίδιο.

Δείτε Αυτοματοποίηση.

Άγκιστρα και κατάλογος εντολών

  • Το Rudel::hooks(): array επιστρέφει τον τεκμηριωμένο κατάλογο hook, οργανωμένο ανά όνομα hook. Δείτε Άγκιστρα.
  • Το Rudel::cli_command_map(): array επιστρέφει σειριοποιήσιμη περιγραφή κάθε εντολής wp rudel και της μεθόδου PHP που βρίσκεται από πίσω.
  • Το Rudel::resolve_cli_command( $path, array $args = [], array $assoc_args = [] ): array μετατρέπει μία αναλυμένη εντολή σε σχέδιο εκτέλεσης χωρίς να την εκτελέσει.
PHP
$plan = Rudel::resolve_cli_command( 'wp rudel destroy', [ 'alpha-3be7' ] );
// $plan['callable']           => 'Rudel\Rudel::destroy'
// $plan['arguments']          => [ 'alpha-3be7' ]
// $plan['needs_confirmation'] => true

Τα περισσότερα σχέδια χρησιμοποιούν τη μεταφορά php. Το logs --follow επιλύεται σε σχέδιο shell που εκτελείται tail -f.

Αυτόνομη αρχικοποίηση

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

Συνδέει το facade με απευθείας σύνδεση MySQL για χρήση εκτός του WordPress. Το $context δέχεται 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 δημιουργεί τους πίνακες Rudel για την ενεργή σύνδεση.
  • Το Rudel::reset(): void εκκαθαρίζει την αυτόνομη σύνδεση και την αποθηκευμένη κατάσταση.