දැණුම් මූලාශ්‍රය

zinnector dev සමඟ දේශීය සංවර්ධනය

zinnector dev ඔබේම යන්ත්‍රයක් මත සැබෑ WordPress ධාවනය කරන්නේ කෙසේද: ධාවන කාලයන් දෙක (Docker නොමැතිව WebAssembly, හෝ Docker හි ස්වදේශීය PHP), PHP සහ WordPress අනුවාදයක් තේරීම, ඔබේ ව්‍යාපෘතියෙන් සපයනු ලබන්නේ කුමක්ද, 570 MB ධාවන කාලය පිහිටා ඇත්තේ කොතැනද, සහ Node 26 මත සිදුවන්නේ කුමක්ද.

zinnector dev මගින් ඔබ තෝරාගන්නා PHP සංස්කරණයක් සහිතව, ඔබගේ ව්‍යාපෘතියේ ඇති ප්ලගීන (plugins) සහ තේමා (themes) සපයමින්, ඔබගේම පරිගණකය තුළ සැබෑ WordPress එකක් ක්‍රියාත්මක කරයි. මෙම ලිපිය මගින් එයට භාවිතා කළ හැකි runtime දෙක, සංස්කරණ තෝරාගන්නා ආකාරය, කුමන ස්ථානයකින් කුමක් සපයන්නේද යන්න, සහ runtime එක තැන්පත් වී ඇත්තේ තැටියේ (disk) කුමන ස්ථානයේද යන්න පැහැදිලි කරයි — එමගින් ඔබ ප්‍රදේශීයව (locally) පරීක්ෂා කරන දෙයම ඔබ යොදවනු ලබයි (deploy).

runtime දෙක සහ ඒ දෙකම සැබෑ ඒවා වන්නේ ඇයි

Playground යනු පෙරනිමියයි (default). WordPress Playground මගින් PHP යන්න WebAssembly වෙත compile කර Node තුළ ක්‍රියාත්මක කරයි, එමගින් Node පමණක් ස්ථාපනය කර ඇති පරිගණකයක පවා තත්පර කිහිපයකින් WordPress එකක් පණගන්වයි. 5.2 සිට 8.5 දක්වා වන ඕනෑම PHP සංස්කරණයක් ලබාගත හැක. දැනට පවතින build එකෙහි මැන ඇති පරිදි, එය කුඩා PHP extensions ප්‍රමාණයක් (intl, redis, memcached) දරයි, එය බොහොමයක් ප්ලගීන සහ තේමා කටයුතු සඳහා ප්‍රමාණවත් වේ.

Docker මගින් native php-fpm සහ MariaDB containers ක්‍රියාත්මක කරයි. එය මන්දගාමී වේ, Docker daemon එකක් සහ 1.2 GB පමණ වන images ප්‍රමාණයක් අවශ්‍ය වේ, තවද PHP 7.4 සිට 8.5 දක්වා සහාය දක්වයි — නමුත් එය imagick සහ gd ඇතුළුව සම්පූර්ණ extension කට්ටලයම සහිත native PHP එකක් ක්‍රියාත්මක කරයි. ඔබට පරීක්ෂා කිරීමට අවශ්‍ය වන්නේ WebAssembly build එකෙහි අඩංගු නොවන extension එකක් නම්, එයට සැබෑ විසඳුම මෙයයි.

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 කළ යුතුය, එවිට ව්‍යාපෘතියේ සිටින සැමදෙනාම එකම සංස්කරණයන් ක්‍රියාත්මක කරයි. Command line එකෙහි ඇති flag එකක් එම ක්‍රියාත්මක කිරීම සඳහා ගොනුවට වඩා ඉහළ ප්‍රමුඛතාවයක් ගනී.

ඔබ ප්‍රකාශ කරන (declare) සංස්කරණය සහ ක්‍රියාත්මක වන සංස්කරණය එකිනෙකට වෙනස් වේ. zinnector dev --once මගින් runtime එක පණගන්වා, එය සැබවින්ම වාර්තා කරන දේ — PHP සංස්කරණය, WordPress සංස්කරණය, load වූ extensions — මුද්‍රණය කර නතර වේ. ඔබගේ ව්‍යාපෘතිය hosting slot එකක් සමග සංසන්දනය කිරීමේදී zinnector check --probe මගින්ද භාවිතා කරන්නේ මෙම මැනීමමය.

ඔබගේ ව්‍යාපෘතියෙන් සපයනු ලබන දෑ

runtime එක මගින් ඔබගේ ව්‍යාපෘතියේ wp-content/plugins, wp-content/themes සහ wp-content/mu-plugins කෝෂයන් (directories) ඍජුවම mount කරයි, එබැවින් ඔබ සුරකින ගොනුව ඊළඟ reload එකේදීම සක්‍රිය වේ. පවතින නමුත් සැබෑ අන්තර්ගතයක් නොමැති කෝෂයන් සිතාමතාම mount කරනු ලබන්නේ නැත: runtime එකේ තේමා මත හිස් themes/ එකක් mount කිරීමෙන් WordPress හි කිසිදු තේමාවක් නොමැති තත්වයට පත්වේ, එය ඔබගේ වෙබ් අඩවිය වෙනුවට හිස් 500 දෝෂයක් (blank 500) ලබා දෙයි. scaffold එක මගින් .gitkeep එකක් සහිතව හිස් කෝෂ පවත්වා ගැනීමටත්, ඔබ ඒවා තුළට තේමාවක් ඇතුළත් කරන තෙක් ඒවා කිසිවක් ආවරණය (shadow) නොකිරීමටත් හේතුව එයයි.

runtime එක පිහිටා ඇති ස්ථානය

WordPress runtime එක CLI එක සමග ලබා දෙනවාට වඩා, ප්‍රථම භාවිතයේදීම බාගත කරනු ලබයි — සෑම PHP build එකක්ම දරන පැකේජය 570 MB පමණ වේ, තවද වෙබ් අඩවි ලැයිස්තුගත කිරීම පමණක් සිදුකරන සංවර්ධකයෙකු ඒ සඳහා ඉඩ වැය නොකළ යුතුය. එය Zinnector® හි තමන්ගේම cache එකෙහි පවත්වාගෙන යනු ලබයි, ~/.cache/zinnector/runtimes/playground/<version> (හෝ ZINNECTOR_CACHE_DIR මගින් යොමුකරන ඕනෑම ස්ථානයක), කිසිවිටෙකත් ඔබගේ ව්‍යාපෘතිය තුළ තැන්පත් නොවේ, එබැවින් එය ඔබගේ repository එකෙහි හෝ zinnector push මගින් මනින ලද tree එකෙහි අවසන් විය නොහැක. බාගත කිරීම සිදුකරනු ලබන්නේ node npm-cli.js ලෙස ක්‍රියාත්මක වන ඔබගේම npm මගිනි — කිසිවිටෙකත් shell එකක් හරහා සිදු නොවේ.

runtime සංස්කරණය CLI සංස්කරණයට සම්බන්ධ කර (pinned) ඇත, එබැවින් එකම ව්‍යාපෘතියක සිටින සංවර්ධකයින් දෙදෙනෙකු එකම PHP builds ක්‍රියාත්මක කරයි. zinnector dev --reset-runtime මගින් ස්ථාපනය කර ඇති runtime එක ඉවත් කර නැවත ස්ථාපනය කරයි, ස්ථාපනය වූ නමුත් පණනැංවිය නොහැකි runtime එකක් සඳහා විසඳුම මෙයයි.

Node 26 හෝ ඊට අලුත් සංස්කරණ මත

CLI එකම 24 සිට ඉහළ ඕනෑම Node සංස්කරණයක ක්‍රියාත්මක වේ. කෙසේ වෙතත්, runtime එකෙහි native module එක prebuilt binaries ලබා දෙන්නේ Node 24 සහ 25 සඳහා පමණි (2026 සැප්තැම්බර් වන විට). කිසිවක් compile කිරීමට වඩා — Windows හිදී එහි තේරුම Visual Studio ස්ථාපනය කිරීමයි — Zinnector® මගින් runtime එක සඳහා පමණක් 30 MB පමණ වන Node 24 එකක්, nodejs.org මගින් ප්‍රකාශයට පත් කරන checksums වලට එරෙහිව තහවුරු කර, එම cache එකටම ලබා ගනී. එය අදාළ වන විට ස්ථාපන විමසුම (install prompt) මගින් එය පවසනු ඇත. ඔබගේම Node හි කිසිදු වෙනසක් සිදු නොවේ.

සබඳිත

තවමත් සිරවී සිටිනවාද?

සෑම සැලසුමකටම සහය ඇතුළත් වන අතර ඔබේම භාෂාවෙන් පිළිතුරු ලැබේ.

සහාය අමතන්න සියලුම ලිපි
zinnector dev සමඟ දේශීය සංවර්ධනය