স্মার্টি পিএইচপি’র একটি জনপ্রিয় টেমপ্লেটিং ইঞ্জিন যা ব্যবহার করে এপ্লিকেশন বা ওয়েবসাইটের বিজনেস লজিক লেয়ার ও প্রেজেন্টশন লেয়ারকে আলাদ করা যায়। স্মার্টি কি এবং এর সুবিধা নিয়ে লেখা স্মার্টি কি, কেন এবং কিভাবে?
আমরা পিএইচপি দিয়ে যেসব ওয়েবপেজ তৈরি করি সেগুলোতে সাধারণত এইচটিএমএল এবং পিএইচপি (PHP) কোড মেশানো থাকে। অথ্যাত্ এইচটিএমএল এর মাঝেও পিএইচপি ল্যাঙ্গুয়েজ ব্যবহার করা যায়। আর তাই পিএইচপিকে এমবেডিং ল্যাঙ্গুয়েজও বলা যায়। সাধারণভাবে পিএইচপি কোডযুক্ত কোন ওয়েবপেজকে .php এক্সটেনশনসহ সেভ করতে হয় যাতে ওয়েবসার্ভার বুঝতে পারে এই ফাইলে পিএইচ কোড রয়েছে যা পৃথক পিএইচ পার্সার দ্বারা রান করানো হয়।
একই পেজে একই সাথে পিএইচ এবং এইচটিএমএল ব্যবহার করা যায় যা অত্যন্ত সুবিধাজনক। আর এটিও পিএইচপি এর তুমুল জনপ্রিয়তার একটি কারন। কিন্তু অনেক ক্ষেত্রেই এটি সুবিধার চেয়ে অসুবিধা করে বেশি। কিভাবে??
ধরুন, একটি প্রজেক্টে একজন ওয়েবপেজ ডিজাইনার রয়েছে যে প্রোগ্রামিং (পিএইচ) কিছুই জানেনা আবার একজন পিএইচ প্রোগ্রামার রয়েছে যে ডিজাইনার হিসেবেও ভাল নয়। অথচ দুজনেই স্ব স্ব ক্ষেত্রে দক্ষ। এই রকম অবস্থায় যদি পেজের পিএইচপি কোড (বিজনেস লজিক লেয়ার) পরিবর্তন বা পরিবর্ধন করার দরকার হয় তবে সেক্ষেত্রে ডেভেলপারকে এইচটিএমএল এর মাঝে মাঝে পিএইচ কোডব্লক খুঁজে খুঁজে এডিট করতে হবে। আবার হয়ত ডিজাইনার চাচ্ছেন পেজের আউটলুকটা (প্রেজেন্টেশন লেয়ার) পরিবর্তন করতে। সবচেয়ে বেশি সমস্যা হল এখানে। কারণ ডিজাইনার যেহেতু প্রোগ্রামিং জানে না তাই সে ভুল করে হোক আর না বুঝে হোক পিএইচপি কোড নষ্ট করে ফেলাতে পারে। কারণ ধরুন, আগের পেজের মেনুবার ছিল বামদিকে। কিন্তু ডিজাইনার এটিকে ডানদিকে নিতে চাচ্ছেন। আর এই মেনুর কোডটি যদি তৈরি হয় পিএইচ দিয়ে তাহলে তা ডিজাইনার এর পক্ষে কখনই বোঝা সম্ভব না যে কোন কোডটুকুডানদিকে সরালে মেনুটি ডানদিকে আসব।
এ সমস্যাগুলো বাস্তব ক্ষেত্রে প্রায়শই ঘটতে পারে। আর এ সমস্যাগুলো থেকে মুক্তির বাণী নিয়ে উদ্ভব হয়েছে স্মার্টি ইঞ্জিন এর যেখানে ডিজাইনার এবং ডেভেলপার নিজ নিজ কাজ করতে পারবে অপরের কাজে ব্যাঘাত না ঘটিয়েই।
স্মার্টিSmarty কিঃ স্মার্টি হল php এর সবচাইতে জনপ্রিয় এবং শক্তিশালী টেমপ্লেটিং ইঞ্জিন। এর মাধ্যমে আলোচিত সমস্যা সমূহ অতি সহজেই এবং সুন্দরভাবে সমাধান সম্ভব। অথ্যাত্ এর মাধ্যমে এপ্লিকেশনের বিজনেস লজিক লেয়ারকে (php কোড) সহজেই এইচটিএমএল/ডিজাইন ( প্রেজেন্টেশন লজিক) থেকে আলাদা করা যায়। ফলে টিম ওয়ার্কের মাধ্যমে কাজ করলে প্রত্যেক মেম্বার তার নিজস্ব কাজ সুচারুরূপে সম্পাদন করতে পারে অন্যের কাজে ব্যাঘাত ঘটায় না।
এটা হল স্মার্টি এর প্রধান ফিচার। তবে এর মাধ্যমে আরও অনেক চমকপ্রদ কাজ করা যায় ।
একটি উদাহরণ দেই, ধরুন আপনি চাচ্ছেন আপনার ওয়েবপেজে যে টেবিলটি রয়েছে যার 1, 3, 5, 7 …… রো গুলোর ব্যাকগ্রাউন্ড কালার হবে একরকম আবার 2,4,6,8…… ইত্যাদি রো গুলোর ব্যাকগ্রাউন্ড কালার হবে আরেক রকম। এটি এইচটিএমএল এবং সিএসএস দিয়ে করা খুব সহজ হলেও সময় সাপেক্ষ। আর যদি টেবিলটি হয় ডাইনামিক, তাহলেও তো সমস্যার অন্তই নেই। কিন্তু স্মার্টির মাধ্যমে এ কাজটি করা যাবে কয়েক লাইনেই।
আবার ধরুন, আপনি চাচ্ছেন পেজের কিছু অংশ এনক্রিপ্ট করে দিবেন অথচ যা এনক্রিপ্ট করবেন তা ডাইনামিক (বিভিন্ন কারণে যা পরিবর্তিত হয়)। এক্ষেত্রেও স্মার্টি বেশ কাজে আসতে পারে ত্রানকর্তা। এরকম আরও অনেক সুবিধা আছে স্মার্টিতে।
আপনি কি কখনও বিভিন্ন ওপেন সোর্স এপ্লিকেশন যেমন পিএইচপিবিবি দেখেছেন?? দেখলে হয়তো লক্ষ্য করেছেন এর শত শত টেমপ্লেট পাওয়া যায়; অথচ এই টেমপ্লেটসমূহ ব্যবহারের জন্য মূল এপ্লিকেশনে কোন পরিবর্তন করার প্রয়োজন হয় না। শুধু মাত্র টেমপ্লেটের নাম বলে দিলেই যথেষ্ট। এটিও সম্ভব হয়েছে টেমপ্লেটিং ইঞ্জিন ব্যবহারের কারনে যা বিজনেস লজিক লেয়ারকে প্রেজেন্টেশন লেয়ার থেকে আলাদা করেছে।
সংক্ষিপ্ত এই আলোচনায় স্মার্টির কাজ ও সুবিধা সম্পর্কে একটা মোটামুটি ধারনা তৈরি হয়েছে বলেই বিশ্বাস। যদি তাই হয় এবং আপনি যদি আপনার এপ্লিকেশন বা ওয়েবসাইটে স্মার্টি ব্যবহার করতে চান তাহলে প্রশ্ন আসে কিভাবে তা করা যাবে। প্রথমেই আপনাকে স্মার্টি ডাউনলোড করতে হবে http://smarty.php.net/download.php থেকে। তারপর তা আনজিপ করে ইনস্টল করতে হবে। ইনস্টলেশনের বিস্তারিত পাবেন http://smarty.php.net/quick_start.php/ এই ঠিকানায়। স্মার্টির অত্যন্ত সুন্দর একটি ম্যানুয়েল রয়েছে যেখানে এর প্রতিটি বিষয়ের বিস্তারিত রয়েছে। ম্যানুয়ালটি ডাউনলোড করা যাবে http://smarty.php.net/distributions/manual/en/Smarty-2.6.7-docs.chm এখানে । আর স্মার্টির উপর আমাদের দেশের প্রোগ্রামারের লেখা বইটি অসাধারন। এটি সম্পর্কে জানা যাবে http://www.packtpub.com/book/smarty । আমার মনে হয় এই দুটি ম্যানুয়াল থাকলে কারও স্মার্টি ব্যবহারে আর কোন সমস্যা হওয়ার কথা নয়। তারপরেও যদি সমস্যা তৈরি হয় তার জন্য স্মার্টি ফোরাম তো রয়েছেই। এর ঠিকানা হল http://www.phpinsider.com/smarty-forum । তো! তাহলে এখনই শুরু করুন স্মার্টি দিয়ে আপনার স্মার্ট ওয়েবসাইট।
————–
দ্যা হাঙ্গরিকোডার
http://www.hungrycoder.xenexbd.com/
আপনাকে অনেক ধন্যবাদ এত দারুন এক্তা বেপার শেয়ার করার জন্য।