Bilgi Bankası

zinnector dev ile yerel geliştirme

zinnector dev'in kendi makinenizde gerçek bir WordPress'i nasıl çalıştırdığı: iki çalışma zamanı (Docker olmadan WebAssembly veya Docker'da yerel PHP), bir PHP ve WordPress sürümü seçme, projenizden neyin sunulduğu, 570 MB'lık çalışma zamanının nerede saklandığı ve Node 26'da ne olduğu.

zinnector dev komutu, projenizdeki eklentileri ve temaları sunarak kendi bilgisayarınızda gerçek bir WordPress çalıştırır; bunu seçtiğiniz bir PHP sürümüyle yapar. Bu makale, kullanabileceği iki çalışma zamanını (runtime), sürümlerin nasıl seçileceğini, neyin nereden sunulduğunu ve çalışma zamanının diskin neresinde yer aldığını açıklar; böylece yerelde test ettiğiniz şey, dağıttığınız şey olur.

İki çalışma zamanı ve ikisinin de neden gerçek olduğu

Playground, varsayılan seçenektir. WordPress Playground, PHP'yi WebAssembly'ye derler ve bunu Node içinde çalıştırır; dolayısıyla, Node dışında hiçbir şeyin kurulu olmadığı bir dizüstü bilgisayar, saniyeler içinde bir WordPress ayağa kaldırır. 5.2 ile 8.5 arasındaki herhangi bir PHP sürümü kullanılabilir. Çoğu eklenti ve tema çalışması için yeterli olan küçük bir PHP uzantısı seti (intl, redis, memcached, mevcut derlemede ölçüldüğü şekliyle) barındırır.

Docker, yerel php-fpm ve MariaDB kapsayıcılarını çalıştırır. Daha yavaştır, bir Docker arka plan programına (daemon) ve yaklaşık 1,2 GB imaja ihtiyaç duyar, ayrıca 7.4 ila 8.5 arasındaki PHP sürümlerini destekler; ancak imagick ve gd dahil olmak üzere tam uzantı setiyle yerel bir PHP çalıştırır. Test etmeniz gereken şey WebAssembly derlemesinde bulunmayan bir uzantı olduğunda dürüst yanıttır.

zinnector dev                       # playground
zinnector dev --runtime docker      # yerel PHP + MariaDB

Docker'a hiçbir zaman sessizce geçilmez. WebAssembly üzerinde olduğunu düşünen ancak aslında Docker üzerinde olan bir geliştiriciye, yardım etmeye çalışan bir araç tarafından yanlış bilgi verilmiş olur, bu nedenle çalışma zamanı adıyla talep edilmelidir.

PHP ve WordPress sürümlerini seçme

zinnector dev --php 8.1 --wp 6.7    # belirli bir çifte karşı geliştirme yapma
zinnector dev --port 9401           # 9400 kullanımda olduğunda
zinnector dev --no-login            # wp-admin oturumunu otomatik olarak açmama
zinnector dev --verbose             # çalışma zamanının kendi çıktısını gösterme

Varsayılan değerler, projede bulunan ve zinnector new komutunun yazdığı zinnector.json dosyasından (php, wordpress, runtime ve port olarak) gelir; projeden herkesin aynı sürümleri çalıştırması için bunu commit etmelisiniz. Komut satırındaki bir bayrak, o çalıştırma için dosyadaki ayarı geçersiz kılar.

Bildirdiğiniz sürüm ile çalışan sürüm farklı olgulardır. zinnector dev --once komutu çalışma zamanını ayağa kaldırır, gerçekte ne bildirdiğini — PHP sürümü, WordPress sürümü, yüklü uzantılar — ekrana yazdırır ve durur. zinnector check --probe komutu, projenizi bir barındırma (hosting) yuvasıyla karşılaştırırken aynı ölçümü kullanır.

Projenizden neyin sunulduğu

Çalışma zamanı, projenizin wp-content/plugins, wp-content/themes ve wp-content/mu-plugins dizinlerini doğrudan bağlar, böylece kaydettiğiniz bir dosya sonraki yeniden yüklemede yayında olur. Varsa da gerçek bir içerik barındırmayan dizinler bilerek bağlanmaz: Çalışma zamanının kendi temaları üzerine bağlanmış boş bir themes/ dizini, WordPress'i temasız bırakır; bu da siteniz yerine boş bir 500 hatası demektir. İskeletin (scaffold) boş dizinleri .gitkeep ile tutmasının ve siz içine bir tema koyana kadar hiçbir şeyi gölgelememesinin nedeni budur.

Çalışma zamanının bulunduğu yer

WordPress çalışma zamanı, CLI ile birlikte gönderilmek yerine ilk kullanımda indirilir — her PHP derlemesini barındıran paket yaklaşık 570 MB'tır ve yalnızca siteleri listeleyen bir geliştirici bunun bedelini ödememelidir. Projenizde asla yer almaz, böylece de deponuzda veya zinnector push komutunun ölçtüğü ağaçta (tree) son bulmaz; Zinnector®'un kendi önbelleğinde, ~/.cache/zinnector/runtimes/playground/<version> konumunda (veya ZINNECTOR_CACHE_DIR değişkeninin işaret ettiği yerde) tutulur. İndirme işlemi, bir kabuk (shell) aracılığıyla asla yapılmaz; node npm-cli.js olarak çalıştırılan kendi npm'iniz tarafından gerçekleştirilir.

Çalışma zamanı sürümü CLI sürümüne sabitlenmiştir (pinned), böylece tek bir projedeki iki geliştirici aynı PHP derlemelerini çalıştırır. zinnector dev --reset-runtime komutu, kurulu çalışma zamanını çöpe atar ve yeniden kurar; bu, yüklenmiş ancak önyükleme yapmayan bir çalışma zamanını düzeltmenin yoldur.

Node 26 veya daha yenisi üzerinde

CLI'ın kendisi 24 ve üzeri herhangi bir Node sürümünde çalışır. Ancak çalışma zamanının yerel modülü, yalnızca Node 24 ve 25 için önceden derlenmiş ikili dosyalar (binaries) barındırır (Eylül 2026 itibarıyla). Windows'ta Visual Studio yüklemek anlamına gelen herhangi bir şey derlemek yerine Zinnector®, nodejs.org tarafından yayınlanan sağlama toplamlarına (checksums) göre doğrulanmış yaklaşık 30 MB boyutundaki bir Node 24'ü yalnızca çalışma zamanı için aynı önbelleğe getirir. Kurulum istemi, uygulandığı sırada bunu belirtir. Kendi Node sürümünüzle ilgili hiçbir şey değişmez.

İlgili

Hâlâ çözemediniz mi?

Her plana destek dahildir ve yanıtlar kendi dilinizdedir.

Destek ile iletişime geçin Tüm makaleler