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® માત્ર રનટાઇમ માટે જ એક Node 24 મેળવે છે, લગભગ 30 MB, જે nodejs.org પ્રકાશિત કરે છે તે ચેકસમ સામે ચકાસાયેલ છે, તે જ કેશમાં. જ્યારે તે લાગુ પડે ત્યારે ઇન્સ્ટોલ પ્રોમ્પ્ટ તેમ જણાવે છે. તમારા પોતાના Node માં કશું જ બદલાતું નથી.
સંબંધિત