Rudel
İstekle seçilen WordPress kaplama ortamları.
composer require rudel/rudelEn son sürüm v0.10.0 GPL-2.0-or-later WordPress 6.4+, PHP 8.2+
wp rudel create \
--name=feature-a \
--owner=dennis \
--labels=agent,qa \
--purpose="Test checkout changes" \
--ttl-days=7Uygulamada
Ana siteden bir sandbox oluşturun, ardından WP-CLI veya bir HTTP isteğini ona yönlendirin.
Bir sandbox oluşturun ve istekleri ona yönlendirin
wp rudel create, ana sitenin tablolarını yeni bir önek altında klonlar, temayı sandbox dizinine kopyalar ve sandbox kimliğini yazdırır.
Bu kimliği RUDEL_ENVIRONMENT içine WP-CLI için veya HTTP için X-Rudel-Environment başlığına ya da rudel_environment çerezine ekleyin. PHP API, yaşam döngüsü meta verileriyle aynı sandbox'ı oluşturur.
wp rudel create --name=alpha --theme=twentytwentyfour
RUDEL_ENVIRONMENT=alpha-1234 wp option get siteurl
curl -H 'X-Rudel-Environment: alpha-1234' http://localhost:8000/$sandbox = Rudel::create( 'alpha', [
'theme' => 'twentytwentyfour',
'owner' => 'dennis',
'labels' => [ 'qa', 'agent' ],
'ttl_days' => 7,
] );Korumalı Alanlar
Geliştirme, test ve yapay zekâ aracıları için geçici kaplama ortamları.
İstek Seçimi
X-Rudel-Environment üstbilgisi, rudel_environment çerezi veya WP-CLI içindeki RUDEL_ENVIRONMENT ile bir isteği korumalı alana yönlendirin. Seçim yalnızca korumalı alan kimliğine göre, kimlik doğrulaması olmadan yapılır.
Kaplama Çalışma Zamanı
Etkinleştirme, wp-config.php içine bir bootstrap satırı ekler. Ardından her korumalı alan, kendi öneki altında klonlanmış tabloları ve etkin temanın bir kopyasını alır; WordPress çekirdek dosyaları, eklenti dosyaları ve yüklemeler paylaşımlı kalır.
Git Çalışma Ağaçları
Ana makinede git ikilisi gerektirmeyen, PHP yerel Git klonlama, push ve çalışma ağacı akışları.
Anlık Görüntüler
Bir sandbox'ın tablolarını ve yönetilen tema dosyalarını kopyalayan adlandırılmış kurtarma noktaları. Bunları WP-CLI veya PHP üzerinden oluşturup geri yükleyin.
İstek Yalıtımı
İstek başına tablo önekleri, tema kökleri, geçici dizin, nesne önbelleği anahtar tuzu ve e-posta engelleme.
WP-CLI & PHP API
wp rudel komutları ve Rudel\Rudel statik yöntemleri sandbox'ları oluşturur, listeler, günceller, anlık görüntüsünü alır, geri yükler ve siler.
Ajanlarla Çalışmaya Hazır
Kodlama ajanlarına tek kullanımlık bir WordPress kopyası sunar; WP-CLI, RUDEL_ENVIRONMENT ile sınırlandırılır ve giden e-posta engellenir.
Rudel neden tercih edilmeli
Tek kurulum, birçok sandbox
Rudel, çoklu site kullanmadan ve ikinci bir WordPress kurulumu gerektirmeden, normal bir WordPress kurulumunda çalışır. Ana site, sandbox belirtmeyen tüm isteklere kendi verilerini sunmaya devam eder.
Tabloları ve bir temayı kopyalar
Sandbox, ana sitenin tablolarının kullanıcılar dâhil bir kopyasını kendi öneki altında ve etkin temanın bir kopyasını alır; alt tema varsa üst teması da kopyalanır. WordPress çekirdek dosyaları, eklentiler ve yüklemeler ana sitede kalır.
Süresi dolan sandbox'lar
Sandbox'a bir sahip, etiketler, amaç ve gün cinsinden TTL atayın. Saatlik WP-Cron işi, süresi dolan sandbox'ları siler ve korumalı olarak işaretlenenleri atlar.
Önizleme için güvenli
Sandbox istekleri giden e-postaları engeller ve engellenen her iletiyi kaydeder. wp-config.php kendi tuzunu ayarlamadıkça, nesne önbelleği anahtar tuzu sandbox kimliğinden türetilir; böylece kalıcı önbelleklerde ana site ve sandbox anahtarları ayrı tutulur.
Karşılaştırma
Rudel, hâlihazırda çalıştırdığınız sitenin içinde çalışır. Bu araçlar yakın ihtiyaçlara yönelik çözümler sunar.
| Araç | Şu konularda başarılı | Rudel ile farkı |
|---|---|---|
| WordPress Multisite | Şu konularda başarılıOrtak eklenti ve temalarla, her site için ayrı veritabanı tabloları ve yükleme dizinleri kullanarak, tek bir çekirdek dosya kümesi üzerinde sanal sitelerden oluşan bir ağ çalıştırır. | Rudel ile farkıRudel çoklu site gerektirmez. Sandbox, mevcut sitenin tablolarının ve etkin temasının bir kopyasıdır; her istek için bir başlık, çerez veya WP-CLI ortam değişkeniyle seçilir. |
| wp-env | Şu konularda başarılıEk yapılandırma gerektirmeden, eklenti ve tema geliştirme ve test etme için Docker ile yerel bir WordPress sitesi kurar. | Rudel ile farkıRudel için ikinci bir WordPress kurulumu gerekmez. Hâlihazırda çalıştırdığınız sitenin içeriğinden sandbox'lar oluşturur; bunların tabloları ana siteyle aynı MySQL veritabanında bulunur. Sandbox'a kendine ait bir PHP çalışma zamanı veya veritabanı sunucusu sağlamaz. |
| WordPress Playground | Şu konularda başarılıWordPress uygulamasını arka uç olmadan, tarayıcıda yalıtılmış ve tarayıcı dışında kalıcı yan etkiler oluşturmadan WebAssembly ile istemci tarafında çalıştırır. | Rudel ile farkıRudel, gerçek bir sitenin ve onun MySQL veritabanının yanında sunucuda çalışır. Sandbox, bu sitenin güncel içeriğiyle başlar ve WP-CLI ile her HTTP istemcisinden erişilebilir. |
Sorular ve yanıtlar
Rudel dokümantasyonundan kısa yanıtlar.
WordPress çekirdek dosyaları, eklenti dosyaları ve yüklenen medya. Her sandbox, oluşturulan bir önek altında kendi veritabanı tablolarının (kullanıcılar dâhil) ve etkin temanın bir kopyasını alır.
Bir HTTP isteğiyle X-Rudel-Environment başlığını veya rudel_environment çerezini gönderin ya da WP-CLI için RUDEL_ENVIRONMENT ayarını yapın. Rudel, kimliği her istemciden kabul eder; dolayısıyla seçim bir erişim denetimi değildir.
Hayır. Sandbox içindeki istekler, pre_wp_mail filtresi üzerinden giden postaları durdurur ve engellenen her iletinin alıcısını ve konusunu kaydeder.
Ana veritabanında, varsayılan önekle oluşturulan wp_rudel_environments ve wp_rudel_worktrees adlı iki tabloda. Çalışma zamanı JSON yapılandırması ve SQLite deposu yoktur.
Etkinleştirme, çalışma zamanı tablolarını oluşturur, wp-config.php dosyasına bir başlangıç satırı ekler ve temizleme olayını zamanlar; bu nedenle WordPress, o sırada wp-config.php için yazma erişimine ihtiyaç duyar. Devre dışı bırakma işlemi satırı kaldırır.
Evet. wp rudel snapshot, sandbox tablolarını ve tema dosyalarını bir adla kaydeder; wp rudel restore --snapshot ile bunları geri yükler.
Eklentiyi kurun, kendi sitenizden bir sandbox oluşturun ve başlangıç kılavuzuyla ilk isteğinizi ona gönderin.