zinnector dev ले तपाईंको आफ्नै मेसिनमा वास्तविक WordPress चलाउँछ, जसले तपाईंको परियोजनामा रहेका प्लगइनहरू र थिमहरूलाई तपाईंले छान्नुभएको PHP संस्करणसँग प्रस्तुत गर्दछ। यस लेखले यसले प्रयोग गर्न सक्ने दुई रनटाइमहरू, संस्करणहरू कसरी छनौट गर्ने, कहाँबाट के प्रस्तुत गरिन्छ, र डिस्कमा रनटाइम कहाँ रहन्छ भन्ने बारे व्याख्या गर्दछ — ताकि तपाईंले स्थानीय रूपमा जे परीक्षण गर्नुहुन्छ, त्यही नै डिप्लोय होस्।
दुई रनटाइमहरू, र किन दुवै वास्तविक हुन्
Playground पूर्वनिर्धारित हो। WordPress Playground ले PHP लाई WebAssembly मा कम्पाइल गर्छ र यसलाई Node भित्र चलाउँछ, जसले गर्दा Node बाहेक अरू केही इन्स्टल नभएको ल्यापटपले पनि केही सेकेन्डमै WordPress बुट गर्छ। 5.2 देखि 8.5 सम्मको कुनै पनि PHP उपलब्ध छ। यसमा PHP विस्तारहरूको सानो सेट समावेश छ (हालको निर्माणमा मापन गरिए अनुसार intl, redis, memcached), जुन धेरैजसो प्लगइन र थिमको कामका लागि पर्याप्त छ।
Docker ले नेटिभ php-fpm र MariaDB कन्टेनरहरू चलाउँछ। यो ढिलो छ, यसका लागि Docker डेमन र करिब 1.2 GB का छविहरू चाहिन्छ, र यसले PHP 7.4 देखि 8.5 सम्म समर्थन गर्छ — तर यसले imagick र gd सहितको पूर्ण विस्तार सेटसँग नेटिभ PHP चलाउँछ। WebAssembly निर्माणमा नभएको कुनै विस्तार परीक्षण गर्न आवश्यक हुँदा यो इमानदार समाधान हो।
zinnector dev # playground
zinnector dev --runtime docker # native PHP + MariaDB
Docker मा कहिल्यै पनि चुपचाप फर्कइँदैन। आफू WebAssembly मा छु भन्ने सोच्ने तर वास्तवमा Docker मा रहेको विकासकर्तालाई मद्दत गर्न खोज्ने उपकरणले गलत जवाफ दिएको ठहरिन्छ, त्यसैले यसलाई नामै तोकेर माग्नुपर्छ।
PHP र WordPress संस्करणहरू छनौट गर्दै
zinnector dev --php 8.1 --wp 6.7 # develop against a specific pair
zinnector dev --port 9401 # when 9400 is taken
zinnector dev --no-login # do not sign in to wp-admin automatically
zinnector dev --verbose # show the runtime's own output
पूर्वनिर्धारितहरू परियोजनाको zinnector.json बाट आउँछन् — php, wordpress, runtime र port — जुन zinnector new ले लेख्छ र तपाईंले कमिट गर्नुपर्छ, ताकि परियोजनामा काम गर्ने सबैले एउटै संस्करणहरू चलाऊन्। कमान्ड लाइनको फ्ल्यागले त्यस पटकको रनका लागि फाइललाई विस्थापित गर्छ।
तपाईंले घोषणा गर्नुभएको संस्करण र चल्ने संस्करण फरक तथ्यहरू हुन्। zinnector dev --once ले रनटाइम बुट गर्छ, यसले वास्तवमा रिपोर्ट गर्ने कुराहरू — PHP संस्करण, WordPress संस्करण, लोड गरिएका विस्तारहरू — छाप्छ र रोकिन्छ। zinnector check --probe ले तपाईंको परियोजनालाई होस्टिङ स्लटसँग तुलना गर्दा यही मापन प्रयोग गर्दछ।
तपाईंको परियोजनाबाट के प्रस्तुत गरिन्छ
रनटाइमले तपाईंको परियोजनाका wp-content/plugins, wp-content/themes र wp-content/mu-plugins डाइरेक्टरीहरूलाई सिधै माउन्ट गर्दछ, जसले गर्दा तपाईंले सेभ गर्नुभएको फाइल अर्को रिलोडमै प्रत्यक्ष देखिन्छ। अवस्थित तर कुनै वास्तविक सामग्री नभएका डाइरेक्टरीहरू जानाजानी माउन्ट गरिँदैनन्: रनटाइमका आफ्नै थिमहरूमाथि खाली themes/ माउन्ट गर्दा WordPress मा कुनै पनि थिम रहने छैन, जुन तपाईंको साइट हुनुको सट्टा खाली 500 त्रुटि हुनेछ। त्यसैले ढाँचाले खाली डाइरेक्टरीहरूलाई .gitkeep सँग राख्छ र तपाईंले तिनमा थिम नराखेसम्म तिनीहरूले केही पनि ओझेल पार्दैनन्।
रनटाइम कहाँ रहन्छ
WordPress रनटाइम CLI सँगै पठाइनुको सट्टा पहिलो प्रयोगमा डाउनलोड गरिन्छ — प्रत्येक PHP निर्माण बोक्ने प्याकेज करिब 570 MB को हुन्छ, र केवल साइटहरू सूचीकृत गर्ने विकासकर्ताले यसको भार बेहोर्नु हुँदैन। यो Zinnector® को आफ्नै क्यास, ~/.cache/zinnector/runtimes/playground/<version> (वा ZINNECTOR_CACHE_DIR ले जहाँ संकेत गर्छ) मा राखिन्छ, तपाईंको परियोजनामा कहिल्यै होइन, त्यसैले यो तपाईंको भण्डारमा वा zinnector push ले मापन गर्ने ट्रीमा पर्न सक्दैन। डाउनलोड तपाईंको आफ्नै npm द्वारा गरिन्छ, जुन node npm-cli.js को रूपमा चलाइन्छ — शेल मार्फत कहिल्यै होइन।
रनटाइम संस्करण CLI संस्करणसँग जोडिएको हुन्छ, ताकि एउटा परियोजनाका दुई विकासकर्ताहरूले एउटै PHP निर्माणहरू चलाऊन्। zinnector dev --reset-runtime ले इन्स्टल गरिएको रनटाइमलाई हटाएर फेरि इन्स्टल गर्छ, जुन इन्स्टल भएको तर बुट नहुने रनटाइमको लागि समाधान हो।
Node 26 वा नयाँ संस्करणमा
CLI आफैं 24 वा माथिका जुनसुकै Node मा चल्छ। यद्यपि, रनटाइमको नेटिभ मोड्युलले Node 24 र 25 का लागि मात्र पूर्व-निर्मित बाइनरीहरू प्रदान गर्दछ (सेप्टेम्बर 2026 सम्म)। केही पनि कम्पाइल गर्नु भन्दा — जसको अर्थ Windows मा Visual Studio इन्स्टल गर्नु हो — Zinnector® ले nodejs.org ले प्रकाशित गर्ने चेकसमहरू विरुद्ध प्रमाणित गरी, रनटाइमका लागि मात्र करिब 30 MB को Node 24 सोही क्यासमा ल्याउँछ। यो लागू हुँदा इन्स्टल प्रम्प्टले त्यसो भन्छ। तपाईंको आफ्नै Node मा केही पनि परिवर्तन हुँदैन।
सम्बन्धित