
# Αυτόνομη χρήση

Η αυτόνομη λειτουργία επιτρέπει σε εξωτερικό κώδικα PHP να επιθεωρεί το μητρώο του Rudel μέσω απευθείας σύνδεσης MySQL, χωρίς να φορτώνει το WordPress.

Προορίζεται για:

- εμφάνιση λίστας sandbox
- φόρτωση ενός sandbox με βάση το ID του
- ανάγνωση μεταδεδομένων κύκλου ζωής, μεταδεδομένων κλωνοποίησης και προθεμάτων πινάκων

Δεν προορίζεται για:

- δημιουργία sandbox
- καταστροφή sandbox
- εκτέλεση εκκαθάρισης
- κλωνοποίηση πινάκων WordPress
- δρομολόγηση ζωντανών αιτημάτων

Τα `Rudel::create()`, `create_from_git()`, `destroy()`, `cleanup()` και `cleanup_merged()` προκαλούν `RuntimeException` στην αυτόνομη λειτουργία, επειδή χρειάζονται υπηρεσίες χρόνου εκτέλεσης WordPress.

## Αρχικοποίηση

Φορτώστε τον autoloader του Composer και, στη συνέχεια, περάστε ένα `Rudel\Connection` στο `Rudel::init()`:

```php
use Rudel\Connection;
use Rudel\Rudel;

require __DIR__ . '/vendor/autoload.php';

Rudel::init(
    new Connection(
        '127.0.0.1',  // host, in DB_HOST format (host, host:port or a socket path)
        'wordpress',  // database
        'root',       // user
        'root',       // password
        'wp_'         // WordPress table prefix
    ),
    [ 'environments_dir' => '/var/www/html/wp-content/rudel-environments' ]
);
```

Το `Connection` δέχεται δύο ακόμη προαιρετικά ορίσματα: μια παράκαμψη προθέματος πίνακα Rudel και ένα πρόγραμμα οδήγησης (`auto`, `mysqli` ή `pdo`). Χωρίς όρισμα προγράμματος οδήγησης, χρησιμοποιεί τη σταθερά `RUDEL_DB_DRIVER` και έπειτα το `auto`, το οποίο προτιμά το `pdo_mysql` εκτός του WordPress και χρησιμοποιεί ως εφεδρική επιλογή το `mysqli`.

## Ανάγνωση εγγραφών

```php
foreach ( Rudel::all() as $environment ) {
    echo $environment->id . ' ' . $environment->get_table_prefix() . "\n";
}

$environment = Rudel::get( 'alpha-3be7' );
```

Οι αυτόνομες αναγνώσεις χρησιμοποιούν το ίδιο επίπεδο αποθετηρίου με τις αναγνώσεις χρόνου εκτέλεσης του WordPress. Το `Rudel::reset()` εκκαθαρίζει τη αυτόνομη σύνδεση.
