zinnector dev මඟින් ඔබ තෝරාගන්නා PHP අනුවාදයක් සමඟින්, ඔබගේ ව්යාපෘතියේ ඇති ප්ලගීන සහ තේමා සපයමින්, ඔබගේම පරිගණකයේ සැබෑ WordPress ධාවනය කරයි. මෙම ලිපියෙන් එයට භාවිත කළ හැකි ධාවන කාල (runtimes) දෙක, අනුවාද තෝරාගන්නේ කෙසේද, කොතැනින් කුමක් සපයන්නේද, සහ ධාවන කාලය තැටියේ (disk) පිහිටා ඇත්තේ කොතැනද යන්න පැහැදිලි කරයි — එවිට ඔබ ප්රාදේශීයව පරීක්ෂා කරන දේම ඔබ යොදවනු (deploy) ඇත.
ධාවන කාල දෙක, සහ ඒ දෙකම සැබෑ වන්නේ ඇයිද යන්න
Playground යනු පෙරනිමියයි. WordPress Playground මඟින් PHP, WebAssembly බවට සම්පාදනය කර එය Node තුළ ධාවනය කරයි, එබැවින් Node හැර වෙනත් කිසිවක් ස්ථාපනය කර නොමැති ලැප්ටොප් පරිගණකයක වුවද තත්පර කිහිපයකින් WordPress ක්රියාත්මක වේ. 5.2 සිට 8.5 දක්වා ඕනෑම PHP අනුවාදයක් ලබා ගත හැක. එය සුළු PHP දිගු (extensions) ප්රමාණයක් රැගෙන යයි (වත්මන් ගොඩනැගීමේදී මනින ලද පරිදි 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 මඟින් ලියනු ලබන අතර ඔබ ඒවා commit කළ යුතුය, එවිට ව්යාපෘතියේ සිටින සෑම කෙනෙකුම එකම අනුවාද ධාවනය කරයි. එම ධාවනය සඳහා ගොනුවට වඩා විධාන පේළියේ ඇති flag එකක් ප්රමුඛ වේ.
ඔබ ප්රකාශ කරන අනුවාදය සහ ධාවනය වන අනුවාදය වෙනස් කරුණු වේ. zinnector dev --once මඟින් ධාවන කාලය ආරම්භ කර, එය සැබවින්ම වාර්තා කරන දේ — PHP අනුවාදය, WordPress අනුවාදය, පූරණය කළ දිගු — මුද්රණය කර නතර වේ. ඔබගේ ව්යාපෘතිය සත්කාරක ස්ලොට් එකක් (hosting slot) සමඟ සංසන්දනය කිරීමේදී zinnector check --probe එකම මිනුම භාවිත කරයි.
ඔබගේ ව්යාපෘතියෙන් සපයනු ලබන්නේ මොනවාද
ධාවන කාලය ඔබගේ ව්යාපෘතියේ wp-content/plugins, wp-content/themes සහ wp-content/mu-plugins ඩිරෙක්ටරි සෘජුවම සම්බන්ධ (mount) කරයි, එබැවින් ඔබ සුරකින ගොනුවක් මීළඟ නැවත පූරණයේදීම සක්රිය වේ. පවතින නමුත් සැබෑ අන්තර්ගතයක් නොමැති ඩිරෙක්ටරි හිතාමතාම mount කරනු නොලැබේ: ධාවන කාලයේම තේමා මත හිස් themes/ එකක් mount කිරීමෙන් WordPress හි කිසිදු තේමාවක් නොමැති තත්ත්වයක් ඇති වන අතර, එය ඔබගේ වෙබ් අඩවිය වෙනුවට හිස් 500 දෝෂයක් බවට පත්වේ. scaffold මඟින් .gitkeep සහිත හිස් ඩිරෙක්ටරි තබා ගන්නේ ඒ නිසාය, තවද ඔබ ඒවා තුළ තේමාවක් තබන තුරු ඒවා කිසිවක් සඟවන්නේ නැත.
ධාවන කාලය පවතින්නේ කොතැනද
WordPress ධාවන කාලය CLI සමඟ එක්ව ලබා දෙනවාට වඩා පළමු භාවිතයේදීම බාගත කරනු ලැබේ — සෑම PHP ගොඩනැගීමක්ම රැගෙන යන පැකේජය 570 MB පමණ වන අතර, වෙබ් අඩවි ලැයිස්තුගත කිරීම පමණක් කරන සංවර්ධකයෙකු ඒ සඳහා ඉඩ වැය නොකළ යුතුය. එය Zinnector® හිම හැඹිලිය (cache) වන ~/.cache/zinnector/runtimes/playground/<version> හි (හෝ ZINNECTOR_CACHE_DIR යොමු කරන ඕනෑම තැනක) තබා ඇති අතර, කිසිවිටෙකත් ඔබගේ ව්යාපෘතිය තුළ නොතබයි, එබැවින් එය ඔබගේ ගබඩාවේ (repository) හෝ zinnector push මනින ගසෙහි අවසන් විය නොහැක. බාගත කිරීම සිදු කරනු ලබන්නේ ඔබගේම npm මඟින් node npm-cli.js ලෙස ධාවනය කරමිනි — කිසිවිටෙකත් shell එකක් හරහා නොවේ.
ධාවන කාල අනුවාදය CLI අනුවාදයට සම්බන්ධ කර (pinned) ඇත, එබැවින් එක් ව්යාපෘතියක සිටින සංවර්ධකයින් දෙදෙනෙකු එකම PHP ගොඩනැගීම් ධාවනය කරයි. zinnector dev --reset-runtime මඟින් ස්ථාපිත ධාවන කාලය ඉවත් කර එය නැවත ස්ථාපනය කරයි, එය ස්ථාපනය වූ නමුත් ආරම්භ නොවන ධාවන කාලයක් සඳහා වන විසඳුමයි.
Node 26 හෝ ඊට නව අනුවාද මත
CLI මඟින්ම 24 සිට ඉහළ ඕනෑම Node අනුවාදයක ධාවනය වේ. කෙසේ වෙතත්, ධාවන කාලයේ ස්වදේශීය මොඩියුලය පූර්ව-සාදන ලද බයිනරි ලබා දෙන්නේ Node 24 සහ 25 සඳහා පමණි (2026 සැප්තැම්බර් වන විට). කිසිවක් සම්පාදනය කරනවා වෙනුවට — එනම් Windows හි Visual Studio ස්ථාපනය කිරීම වෙනුවට — Zinnector® විසින් nodejs.org ප්රකාශයට පත් කරන checksum වලට එරෙහිව තහවුරු කරන ලද, ධාවන කාලය සඳහා පමණක් වන 30 MB පමණ වූ Node 24 එකක් එම හැඹිලියටම ලබා ගනී. එය අදාළ වන විට ස්ථාපන විමසුම (prompt) මඟින් එය දැනුම් දෙයි. ඔබගේම Node හි කිසිවක් වෙනස් නොවේ.
අදාළ