zinnector dev-ը գործարկում է իրական WordPress Ձեր իսկ սարքում՝ մատուցելով Ձեր նախագծի փլագիններն ու թեմաները Ձեր ընտրած PHP տարբերակով: Այս հոդվածը բացատրում է երկու աշխատաժամանակային միջավայրերը (runtimes), որոնք այն կարող է օգտագործել, ինչպես ընտրել տարբերակները, ինչն որտեղից է մատուցվում, և որտեղ է գտնվում runtime-ը սկավառակի վրա, որպեսզի այն, ինչ փորձարկում եք տեղում, լինի հենց այն, ինչ տեղակայում եք:
Երկու runtime-ները, և ինչու են երկուսն էլ իրական
Playground-ը լռելյայն տարբերակն է: WordPress Playground-ը կոմպիլացնում է PHP-ն WebAssembly-ի և գործարկում այն Node-ի ներսում, այնպես որ նոութբուքը, որտեղ տեղադրված է միայն Node, վայրկյանների ընթացքում բեռնում է WordPress-ը: Հասանելի է ցանկացած PHP՝ 5.2-ից մինչև 8.5: Այն պարունակում է PHP ընդլայնումների փոքր փաթեթ (intl, redis, memcached, ինչպես չափվել է ընթացիկ կառուցվածքում), ինչը բավարար է փլագինների և թեմաների հետ աշխատանքի մեծ մասի համար:
Docker-ը գործարկում է բնիկ php-fpm և MariaDB կոնտեյներներ: Այն ավելի դանդաղ է, պահանջում է Docker daemon և մոտ 1.2 ԳԲ պատկերներ, և աջակցում է PHP 7.4-ից մինչև 8.5 տարբերակները, սակայն այն գործարկում է բնիկ PHP՝ ընդլայնումների ամբողջական փաթեթով, ներառյալ imagick-ը և gd-ն: Դա ազնիվ պատասխանն է, երբ այն, ինչ Ձեզ անհրաժեշտ է փորձարկել, մի ընդլայնում է, որը 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-ը բեռնում է runtime-ը, տպում այն, ինչ այն իրականում հաղորդում է՝ PHP-ի տարբերակը, WordPress-ի տարբերակը, բեռնված ընդլայնումները, և կանգ է առնում: zinnector check --probe-ն օգտագործում է նույն չափումը, երբ համեմատում է Ձեր նախագիծը հոսթինգի սլոթի հետ:
Ինչն է մատուցվում Ձեր նախագծից
Runtime-ն անմիջապես կցում (mount) է Ձեր նախագծի wp-content/plugins, wp-content/themes և wp-content/mu-plugins պանակները, այնպես որ Ձեր պահպանած ֆայլը հասանելի է հաջորդ վերաբեռնման ժամանակ: Պանակները, որոնք գոյություն ունեն, բայց իրական բովանդակություն չունեն, միտումնավոր չեն կցվում. runtime-ի սեփական թեմաների վրա կցված դատարկ themes/-ը WordPress-ը կթողներ ընդհանրապես առանց որևէ թեմայի, ինչը Ձեր կայքի փոխարեն դատարկ 500 սխալ է: Ահա թե ինչու scaffold-ը պահպանում է դատարկ պանակները .gitkeep-ով, և ինչու դրանք ոչինչ չեն ստվերում, քանի դեռ Դուք դրանցում թեմա չեք տեղադրել:
Որտեղ է գտնվում runtime-ը
WordPress runtime-ը ներբեռնվում է առաջին իսկ օգտագործման ժամանակ, այլ ոչ թե առաքվում CLI-ի հետ միասին. յուրաքանչյուր PHP կառուցվածք պարունակող փաթեթը մոտ 570 ՄԲ է, իսկ ծրագրավորողը, ով միայն կայքերն է ցուցակագրում, չպետք է վճարի դրա համար: Այն պահվում է Zinnector®-ի սեփական քեշում՝ ~/.cache/zinnector/runtimes/playground/<version> (կամ որտեղ որ ցույց է տալիս ZINNECTOR_CACHE_DIR-ը), երբեք ոչ Ձեր նախագծում, այնպես որ այն չի կարող հայտնվել Ձեր ռեպոզիտորիայում կամ այն ծառում, որը չափում է zinnector push-ը: Ներբեռնումը կատարվում է Ձեր իսկ npm-ի միջոցով՝ գործարկվելով որպես node npm-cli.js, երբեք ոչ shell-ի միջոցով:
Runtime-ի տարբերակը կապված է CLI-ի տարբերակի հետ, այնպես որ մեկ նախագծի վրա աշխատող երկու ծրագրավորողներ գործարկում են նույն PHP կառուցվածքները: zinnector dev --reset-runtime-ը ջնջում է տեղադրված runtime-ը և նորից տեղադրում այն, ինչը լուծում է այն runtime-ի համար, որը տեղադրվել է, բայց չի բեռնվում:
Node 26-ում կամ ավելի նոր տարբերակներում
CLI-ն ինքնին աշխատում է Node-ի ցանկացած տարբերակի վրա՝ 24-ից սկսած: Սակայն runtime-ի native մոդուլը նախապես կառուցված բինար ֆայլեր է տրամադրում միայն Node 24-ի և 25-ի համար (2026 թվականի սեպտեմբերի դրությամբ): Որևէ բան կոմպիլացնելու փոխարեն (ինչը Windows-ում նշանակում է Visual Studio-ի տեղադրում), Zinnector®-ը նույն քեշի մեջ ներբեռնում է միայն runtime-ի համար նախատեսված Node 24 (մոտ 30 ՄԲ), որը ստուգված է nodejs.org-ի կողմից հրապարակված ստուգիչ գումարների (checksums) համեմատ: Տեղադրման հաղորդագրությունը տեղեկացնում է այդ մասին, երբ այն կիրառվում է: Ձեր սեփական Node-ի հետ կապված ոչինչ չի փոխվում:
Առնչվող