নলেজ বেস

zinnector dev এর সাথে লোকাল ডেভেলপমেন্ট

কিভাবে zinnector dev আপনার নিজের মেশিনে একটি আসল WordPress চালায়: দুটি রানটাইম (ডকার ছাড়া WebAssembly, অথবা ডকারে নেটিভ PHP), একটি PHP এবং WordPress সংস্করণ নির্বাচন করা, আপনার প্রজেক্ট থেকে কী পরিবেশন করা হয়, ৫৭০ মোবাইট রানটাইম কোথায় থাকে এবং Node 26-এ কী ঘটে।

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 ডেমন এবং প্রায় ১.২ জিবি ইমেজের প্রয়োজন হয় এবং PHP 7.4 থেকে 8.5 সমর্থন করে — কিন্তু এটি imagick এবং gd সহ সম্পূর্ণ এক্সটেনশন সেট সহ একটি নেটিভ PHP চালায়। আপনার যখন পরীক্ষা করার প্রয়োজন হয় তা হলো এমন একটি এক্সটেনশন যা WebAssembly বিল্ড বহন করে না, তখন এটি হলো সঠিক উত্তর।

zinnector dev                       # playground
zinnector dev --runtime docker      # native PHP + MariaDB

ডকারকে কখনই নীরবে ফলব্যাক করা হয় না। যে ডেভেলপার মনে করেন যে তারা WebAssembly-তে আছেন এবং আসলে ডকারে আছেন তাদের একটি টুল দ্বারা ভুল উত্তর দেওয়া হয়েছে যা সাহায্য করার চেষ্টা করছে, তাই এটি নাম ধরে জিজ্ঞাসা করতে হবে।

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 লেখে এবং যা আপনার কমিট করা উচিত, যাতে প্রজেক্টের সবাই একই সংস্করণ চালায়। কমান্ড লাইনের একটি ফ্ল্যাগ সেই চালানোর জন্য ফাইলের চেয়ে জয়ী হয়।

যে সংস্করণটি আপনি ঘোষণা করেন এবং যে সংস্করণটি চালে তা দুটি ভিন্ন তথ্য। zinnector dev --once রানটাইম বুট করে, এটি আসলে যা রিপোর্ট করে তা প্রিন্ট করে — PHP সংস্করণ, WordPress সংস্করণ, লোড করা এক্সটেনশন — এবং বন্ধ হয়ে যায়। zinnector check --probe একই পরিমাপ ব্যবহার করে যখন এটি একটি হোস্টিং স্লটের বিপরীতে আপনার প্রজেক্টের তুলনা করে।

আপনার প্রজেক্ট থেকে যা পরিবেশন করা হয়

রানটাইম সরাসরি আপনার প্রজেক্টের wp-content/plugins, wp-content/themes এবং wp-content/mu-plugins ডিরেক্টরিগুলি মাউন্ট করে, তাই আপনার সংরক্ষণ করা একটি ফাইল পরবর্তী রিলোডে লাইভ থাকে। ডিরেক্টরিগুলি যেগুলি বিদ্যমান কিন্তু কোনো আসল কন্টেন্ট ধারণ করে না সেগুলিকে উদ্দেশ্যমূলকভাবে মাউন্ট করা হয় না: রানটাইমের নিজস্ব থিমগুলির উপর মাউন্ট করা একটি খালি themes/ WordPress-কে কোনো থিম ছাড়াই রেখে দেবে, যা আপনার সাইটের পরিবর্তে একটি ফাঁকা 500। এই কারণেই স্ক্যাফোল্ড একটি .gitkeep দিয়ে খালি ডিরেক্টরিগুলি রাখে এবং কেন তারা আপনার থিমে না রাখা পর্যন্ত কোনো কিছুকে ছায়া দেয় না।

রানটাইম যেখানে থাকে

CLI-এর সাথে শিপিং করার পরিবর্তে প্রথম ব্যবহারের সময় WordPress রানটাইম ডাউনলোড করা হয় — যে প্যাকেজটি প্রতিটি 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 নিজেই যেকোনো Node 24 থেকে উপরে চলে। তবে রানটাইমের নেটিভ মডিউলটি শুধুমাত্র Node 24 এবং 25-এর জন্য প্রিবিল্ট বাইনারি সরবরাহ করে (সেপ্টেম্বর 2026 অনুযায়ী)। কোনো কিছু কম্পাইল করার পরিবর্তে — যার অর্থ উইন্ডোজে ভিজ্যুয়াল স্টুডিও ইনস্টল করা — Zinnector® একা রানটাইমের জন্য একটি Node 24 আনে, প্রায় 30 MB, nodejs.org দ্বারা প্রকাশিত চেকসামগুলির বিরুদ্ধে যাচাই করা হয়েছে, একই ক্যাশের মধ্যে। ইনস্টল প্রম্পট এটি প্রয়োগ করার সময় এটি বলে। আপনার নিজের Node সম্পর্কে কিছুই পরিবর্তন হয় না।

সম্পর্কিত

এখনও আটকে আছেন?

প্রতিটি প্ল্যানেই সহায়তা অন্তর্ভুক্ত রয়েছে এবং আপনার নিজের ভাষাতেই উত্তর দেওয়া হয়।

সহায়তার জন্য যোগাযোগ করুন সব নিবন্ধ