ज्ञान आधार

zinnector dev के साथ स्थानीय डेवलपमेंट

ज़िन्वेक्टर देव (zinnector dev) आपकी अपनी मशीन पर एक वास्तविक WordPress कैसे चलाता है: दो रनटाइम (डॉकर के बिना वेबअसेंबली, या डॉकर में नेटिव PHP), एक PHP और WordPress संस्करण चुनना, आपके प्रोजेक्ट से क्या सर्व किया जाता है, 570 MB रनटाइम कहाँ रहता है, और Node 26 पर क्या होता है।

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    # किसी विशिष्ट जोड़ी के विरुद्ध विकास करें
zinnector dev --port 9401           # जब 9400 व्यस्त हो
zinnector dev --no-login            # wp-admin में अपने आप साइन इन न करें
zinnector dev --verbose             # रनटाइम का अपना आउटपुट दिखाएं

डिफ़ॉल्ट मान प्रोजेक्ट में मौजूद 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 के अनुसार)। कुछ भी कंपाइल करने के बजाय — जिसका विंडोज पर मतलब Visual Studio इंस्टॉल करना है — Zinnector® अकेले रनटाइम के लिए Node 24 लाता है, जो कि लगभग 30 MB है, जिसे nodejs.org द्वारा प्रकाशित चेकमसम के विरुद्ध सत्यापित किया जाता है, और इसे उसी कैश में रखा जाता है। जब इसे लागू किया जाता है तो इंस्टॉल प्रॉम्प्ट ऐसा कहता है। आपके अपने Node के बारे में कुछ भी नहीं बदलता है।

संबंधित

अभी भी परेशान हैं?

हर प्लान में सहायता शामिल है और आपकी अपनी भाषा में उत्तर दिए जाते हैं।

सपोर्ट से संपर्क करें सभी लेख