টেকটিউনসের সবাইক শুভেচ্ছা । আশা করি সবাই ভাল আছেন । আজ আমি এমন একটা বিষয় নিয়ে আলোচনা করব যেটা সম্পর্কে হয়ত অনেকেই জানেন না বা খুব একটা ভালভাবে জানেন না । আমার আজকের বিষয় হল পিএইচপির একটা নতুন মাইক্রো ফ্রেমওয়ার্ক , যেটার নাম হল LUMEN । আসলে এটা মাত্র কিছুদিন আগে রিলিজ হয়েছে তাই হয়ত বা অনেকের চোখে ধরা পড়েনি । কিন্তু , যাদের চোখে বিষয়টা ধরা পড়েনি তারা যে অনেক বড় একটা মিস করেছেন সেটা আজ বুঝতে পারবেন । আজ আমরা এই ফ্রেমওয়ার্ক সম্পর্কে খুব ভালভাবে জানব এবং এটার কী কী ফিচার রয়েছে বা কোন ধরণের কাজে এটা ইউজ করা যায় সেটার উপরও আলোকপাত করব ।
LUMEN হল একটা পিএইচপির ফ্রেমওয়ার্ক । কিন্তুএটা অন্যান্য পিএইচপি ফ্রেমওয়ার্ক থেকে সম্পূর্ণ আলাদা । কেন আলাদা , কীভাবে আলাদা সেটা একটু পরে আলোচনা করছি । আপাতত এর ইতিবৃত্ত একটু জেনে নিই । আমরা সবাই নিশ্চই পিএইচপির ফ্রেমওয়ার্ক ল্যারাভেল সম্পর্কে ভালভাবে জানি । হ্যা , তাহলেই বিষয়টা অনেকটা সহজ হয়ে গেল । আসলে ল্যারাভেলের ডেভলপার যিনি , অর্থাৎ ল্যারাভেল ফ্রেমওয়ার্কটা যে ব্যাক্তি লিখেছেন, যার নাম হল টেইলর অটওয়েল তিনিই এই LUMEN এর আবিষ্কারক । আর এজন্যই এই নতুন ফ্রেমওয়ার্কটা অনেক জনপ্রিয়তা পাচ্ছে । এটাকে ল্যারাভেলের ছোট ভাই হিসেবেও বলা চলে বিভিন্ন কারণে । কারণ , এটা আসলে ল্যারাভেলের অনেকটা ছোটখাট একটা ভার্সন হিসেবেও চালিয়ে দেওয়া যায় । কিন্তু , ল্যারাভেলের সাথে কিন্তু এই লুমেন এর কাজের বা সবকিছুর চরম পার্থক্য রয়েছে । তাই , ভাই ভাই বলা গেলেও ২ টা এক বস্তু নয় সেটা মাথায় রাখবেন ।
আসলে এক্ষেত্রে LUMEN এর ডেভলপার টেইলর অটওয়েল এর চিন্তাধারাটাই তুলে ধরা হচ্ছে । তিনিই এই ফ্রেমওয়ার্কের আবিষ্কারক এবং কীভাবে তিনি এই ফ্রেমওয়ার্ক তৈরী করার প্লান পেলেন বা অনুপ্রেরণা পেলেন সেই বিষয়টা হবহু এখানে তুলে ধরছি ।
Envoyer নামের একটা এ্যাপ ডেভলপ করার সময় তাকে ২ টা মাইক্রো সার্ভিস ইউজ করতে হয়েছিল ।
তাদের মধ্যে একটা ছিল পোষ্ট ডিপ্লয়মেন্ট হেলথ চেক । তিনি এই কাজের জন্য Silex নামের একটা সার্ভিস ইউজ করেছিলেন । তারপরও তাকে এপ্লিকেশনটা আরও সুন্দর করে তোলার জন্য PDO ডাটাবেস কানেকশন নিয়ে যথেষ্ট গবেষণা করতে হয়েছিল ।
এর আরেকটা সার্ভিস ছিল যেটার কাজ ছিল হার্টবিট মনিটরিং । আর এর জন্য ওয়েব সার্ভারকে প্রতি মিনিটে ১০০ বা হাজার বার খুব দ্রুততার সাথে রেসপন্স করতে হত । এটার জন্য তিনি স্লিম ৩ নামের একটা সার্ভিস ইউজ করেন । স্লিম বা সাইলেক্স হল পিএইচপি র একটা অন্যতম ফাস্ট মাইক্রোফ্রেমওয়ার্ক । কিন্তু এই ক্ষেত্রেও ডাটাবেস কানেকশনের কিছু ঝামেলা থেকে যায় । তাই তিনি তখন ল্যারাভেলের কিছু অংশ বাদ দিয়ে ল্যারাভেলের একটা লাইট ইনস্টলেশনের কথা চিন্তা করেন । আর এভাবেই লুমেন এর আইডিয়াটা তার মাথায় আসে ।
মূলত এটা প্রথমত ডেভলপ করা হয় প্রচন্ড দ্রুততার সাথে সব রিকুয়েস্টে রেসপন্স করার জন্য । আর এই বিষয়ে তিনি বলেন যে এটা যদি সাইলেক্স ও স্লিম এর থেকে ফাস্ট না হত তাহলে তিনি এটা রিলিজ করতেন না । কারণ , তার কাজের জন্য খুব বেশী ফাস্ট কোন ফ্রেমওয়ার্র্কের দরকারর ছিল ।
লুমেন নামটি এসেছে মূলত Luminary বা Illuminate নাম থেকে । এটার অর্থ হল আলোকিত করা বা জ্যোতিষ্ক্য । এটামূলত ল্যারাভেলের একটা হালকা বা লাইটওয়েট ভার্সন । ল্যারাভেলের কিছু খুবই ভাল বা যেটাকে আক্ষরিক অর্থে উজ্জ্বল বলা যায় এমন কমপোনেন্ট নিয়েই লুমেন তৈরী হয়েছে । যেমন ডাটাবেস , কেস , কুউই প্রভৃতি । এই ফ্রেমওয়য়ার্কটার মুলত ২ টা সিলেবাস রয়েছে যেখানে ল্যারাভেলের রয়েছে তিনটি । তাই এটা ল্যারাভেল থেকে কিছু অংশ বাদ দিয়ে ডেভলপ করা হলেও ল্যারাভেল থেকে অনেক ফাস্ট । অনেক লাইট হবার কারণে এটা অনেক দ্রুততার সাথে কাজ করতে পারে ।
এটা হয়ত আপনাদের কাছে একটা বিরাট প্রশ্ন যে একটা ফ্রেমওয়ার্ক কীভাবে এতটা ফাস্ট হতে পারে । হ্যা , হতে পারে । এর পেছনে যুক্তিযুক্ত কারণ ও রয়েছে । এটা সম্ভব হয়েছে ল্যারাভেরের সেই সব ইলুইমিনেটেড কমপোনেন্ট থেকে । ল্যারাবেলের কিছু অংশ একসাথে খুবই প্লানড ভাবে এবং ভিন্ন ও সম্পূর্ণ কাষ্টমাইজড ভাবে একসাথে সমন্বয় করে এটা তৈরী করা হয়েছে । এখানে বুটস্ট্রাপিং এ ম্যাক্সিমাম ফ্লেক্সিবেলিটির বদলে ফ্রেমওয়ার্কটিতে ম্যাক্সিমাম স্পীডের দিকে নজর দেওয়া হয়েছে ।মেইন লুমেন ফ্রেমওয়ার্ক রিপোজিটরী মূলত ডজনখানেক ফাইল দিয়ে তৈরী । আর বাদাবাকী অংশ ওই ইলুউমিনেটেড কমপোনেন্ট দিয়ে পূরণ করা হয়েছে । যেটার কারণে এটার প্রধান বৈশিষ্ঠ হয়ে গেছে এর প্রচন্ড গতি এবং ফ্লেক্সিবিলিটি । নীচে লুমেন বাদে পিএইচপির অন্যান্য যেসব প্যেমওয়ার্ক আছে সেগুলোর একটা বেঞ্চমার্ক দেওয়া হল :
LUMEN এর মেইন বৈশিষ্ঠ হল এর প্রচন্ড স্পীড ও ফ্লেক্সিবেলিটি । LUMEN হল ল্যারাভেল বেসড মাইক্রো এপ্লিকেশন তৈরীর জন্য একটা পারফেক্ট ফ্রেমওয়ার্ক । এটার স্পীড ও অন্যান্য সব ফ্রেমওয়ার্কের থেকে অনেক বেশী । এর ধারে কাছে আছে এমন ফ্রেমওয়ার্ক হল স্লিম ও সাইলেক্স । লুমেন না আসলে আপনার ছোটখাট ল্যারাভেল বেসড এ্যাপ্লিকেশনগুলো এত সহজে লেখা সম্ভ হত না এবং এটা হল এখন পর্যন্ত সবথেকে দ্রুত রেসপন্সিভ সুপার ফাস্ট ফ্রেমওয়ার্ক ।
তবে আপনি যদি বড় কোন এপ্লিকেশনের দিকে যেতে চান তাহলে আপনাকে LUMEN চয়েজ না করাই ভাল । কারণ ,এটা মুলত ছোটখাট লাইটওয়েট এপ্লিকেশন ডেভলপ এর জন্য তৈরী করা হয়েছে । আপনার বড় কোন প্রোজেক্ট থাকলে সেটা ল্যারাভেল এ করাই সবথেকে ভাল ।
লুমেন এর নিজস্ব ফিচার তো রয়েছেই । সেটা আপনাদের অলরেডি বলে ফেলেছি । এখন সবথেকে মজার জিনিস হল আপনি লুমেন এ আরও অনেক ফিচার ইউজ করতে পারবেন । যেহেতু এটা ল্যারাভেল এর একটা মিনিফাইড ভার্সন , তাই ল্যারাভেল এর ইলোকোয়েন্ট , কেসিং , ভ্যালিডেশন , রাউটিং , মিডলওয়্যার এবং ল্যারাভেলের পাওয়ারফুল ল্যারাভেল সার্ভিস কনটেইনার আপনি লুমেন এ ব্যাবহার করতে পারবেন । এর জন্য আপনাকে লুমেন এর কোন এক্সট্রা কনফিগার এর প্রয়োজন নেই । আপনি লুমেন এর ডিফল্ট কনফিগারেশনেই এসব সুবিধাগুলো পাবেন ।
<?php   $app->get('user/{id}', function($id) { return User::findOrFail($id); });
হ্যা , এটাও সম্ভব । আপনার হয়ত একটা LUMEN প্রোজেক্ট করা আছে । এখন আপনি কোন না কোন কারণে এটাকে ল্যারাভেল প্রোজেক্ট এর মাইগ্রেট করতে চাইছেন । আপনাকে এর জন্য কোন আলাদা ঝামেলা করতে হবে না । কারণ , আগেই বলেছি লুমেন ল ল্যারাভেল এর একটা মিনিফাইড ভার্সন । তাই জাস্ট আপনার লুমেন এর কোডটা ল্যারাভেল ইনস্টলেশনে ড্রপ করলেই আপনার প্রোজেক্টটা ল্যারাভেল এ মাইগ্রেট হয়ে যাবে ।
লুমেন কোড :
$app->get('{path:.*}', function($path) { echo 'You just visited my site dot com slash ' . $path;});
ল্যারাভেল কোড:
$router->get('{path?}',function($path) { echo'You just visited my site dot com slash '.$path;})->where('path','.*');
তো সবাই নতুন এই ফ্রেমওয়ার্কটির সাথে পরিচিত হলেন । এখন আপনাদের সুবিধামত অনেক কাজই এই ফ্রেমওয়ার্কে করতে পারবেন । এই বিষয়ে যদি আপনাদের কোন মতামত থাকে তাহলে কমেন্টে জানাতে ভুলবেন না ।
আমি অরিন্দম পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 81 টি টিউন ও 316 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 20 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের...
tnx.. 🙂