zinnector dev як WordPress-и воқеиро дар компютери худи шумо иҷро мекунад, ки плагинҳо ва мавзӯъҳои лоиҳаи шуморо бо версияи интихобкардаи PHP-и шумо пешниҳод менамояд. Ин мақола ду муҳити иҷроиш (runtime)-ро, ки он метавонад истифода барад, тарзи интихоби версияҳо, чӣ аз куҷо пешниҳод мешавад ва муҳити иҷроиш дар куҷои диск қарор дорад, шарҳ медиҳад — то он чизе, ки шумо дар маҳаллӣ санҷиш мекунед, ҳамон чизе бошад, ки шумо ҷорӣ менамоед.
Ду муҳити иҷроиш, ва чаро ҳарду воқеӣ ҳастанд
Playground ҳолати пешфарз аст. WordPress Playground PHP-ро ба WebAssembly таҳия (compile) мекунад ва онро дар дохили Node иҷро менамояд, бинобар ин ноутбуке, ки ҷуз Node чизе дар он насб нашудааст, WordPress-ро дар чанд сония ба кор медарорад. Ҳама гуна PHP аз 5.2 то 8.5 дастрас аст. Он маҷмӯи хурди васеъшавиҳои PHP-ро дар бар мегирад (intl, redis, memcached, чуноне ки дар сохти кунунӣ чен карда шудааст), ки барои аксари корҳои марбут ба плагинҳо ва мавзӯъҳо кофӣ мебошад.
Docker контейнерҳои аслии php-fpm ва MariaDB-ро иҷро мекунад. Он сусттар аст, ба як daemon-и Docker ва тақрибан 1.2 ГБ тасвирҳо ниёз дорад ва аз PHP-и 7.4 то 8.5 пуштибонӣ мекунад — аммо он PHP-и аслиро бо маҷмӯи пурраи васеъшавиҳо, аз ҷумла imagick ва gd, иҷро менамояд. Вақте ки ба шумо барои озмоиш васеъшавие лозим аст, ки сохти WebAssembly онро надорад, он посухи дақиқ аст.
zinnector dev # playground
zinnector dev --runtime docker # 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 менависад ва шумо бояд онҳоро сабт (commit) кунед, то ҳама дар лоиҳа як хел версияҳоро иҷро кунанд. Парчам дар сатри фармон нисбат ба файл барои он иҷро афзалият дорад.
Версияе, ки шумо эълон мекунед ва версияе, ки иҷро мешавад, далелҳои гуногунанд. 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 МБ аст ва таҳиягаре, ки танҳо рӯйхати сайтҳоро мебинад, набояд барои он пардохт кунад. Он дар кэши худи Zinnector® нигоҳ дошта мешавад, ~/.cache/zinnector/runtimes/playground/<version> (ё ба ҳар куҷое, ки ZINNECTOR_CACHE_DIR ишора мекунад), ҳеҷ гоҳ дар лоиҳаи шумо нест, аз ин рӯ он наметавонад дар анбори шумо ё дар шохае, ки zinnector push чен мекунад, қарор гирад. Зеркашӣ тавассути худи npm-и шумо анҷом дода мешавад, ки ҳамчун node npm-cli.js иҷро мегардад — ҳеҷ гоҳ тавассути як shell не.
Версияи муҳити иҷроиш ба версияи CLI пайваст карда шудааст, то ду таҳиягар дар як лоиҳа як хел сохтҳои PHP-ро иҷро кунанд. zinnector dev --reset-runtime муҳити иҷроиши насбшударо нест карда, онро аз нав насб мекунад, ки ин роҳи ҳал барои муҳити иҷроише мебошад, ки насб шудааст, аммо ба кор намедарояд.
Дар Node 26 ё навтар
Худи CLI дар ҳама гуна Node аз 24 боло кор мекунад. Аммо модули аслии муҳити иҷроиш танҳо барои Node 24 ва 25 (то моҳи сентябри соли 2026) файлҳои дурақамаи пешакӣ омодашударо пешниҳод мекунад. Ба ҷойи таҳияи чизе — ки дар Windows маънои насб кардани Visual Studio-ро дорад — Zinnector® танҳо барои муҳити иҷроиш як Node 24-ро (тақрибан 30 МБ) мутобиқи маблағҳои санҷишие, ки nodejs.org нашр мекунад, ба ҳамон кэш зеркашӣ мекунад. Паёми насбкунӣ ҳангоми татбиқ шудан инро огоҳ мекунад. Дар худи Node-и шумо чизе тағйир намеёбад.
Алоқаманд