হ্যালো লারাভেল ৫ । ৪
- Installation
- লারাভেল আড্ডা
- প্রধান কাঠামো বিন্যাস
- থিম / ফ্রন্ট এণ্ড সেটআপ
- ডাটাবেস আলাপ - (Database)
- রিলেশনশিপ
- কন্ট্রোলার - Controller
- রাউটিং - Routing
- কালেকশনস - Collections
- ইলোকোয়েন্ট ও আর এম (Eloquent ORM)
- Eloquent Model
- ফাইল সিস্টেম / স্টোরেজ
- লারাভেল ডাস্ক - Laravel Dusk
- ভ্যালিডেশনস (Validations)
- নেমস্পেস - Namespace
- MVC
নেমস্পেস - Namespace
নেমস্পেস কি?
নেমস্পেস মুলত ডিরেক্টরি বা ফাইল নির্দেশক ।
নেমস্পেস সম্পর্কে বিস্তারিত
নেমস্পেস সম্পর্কে একটা গল্প - রবি আর সুজা দুই ভাই , তারা দুজনে একই ক্লাসে পরে । তাদের মাঝে খুব ঝগড়া হয় , বিশেষ করে কলম নিয়ে । কারন তারা তাদের পড়ার জিনিস পত্র একই ডেস্কের ড্রয়ারে রাখে । কলম একই কালার এর হওয়ার জন্য কে কার কলম ববহার করছে বুঝতে পারে না । এই সমস্যা সমাধানের জন্য রবির বাবা তাদের কলম এ লাবেল লাগিয়ে দেয় । এতে আর সমস্যা হয় না । বলা যায়
নেমস্পেস এক ধরনের লাবেল বা স্টিকার
।
আপানার লারাভেল প্যাকেজে বা অন্য যেকোনো পি এইচ পি ডেভেলপমেন্ট প্রোজেক্ট এ যদি একই নামে একাধিক function
, class
, interface
, constant
, trait
, abstract
থাকে তখন সমস্যা সৃষ্টি হবে । কোন টা ব্য্যবহার হচ্ছে সেটা ফিক্স করা সম্ভব না । এই সমস্যা সমাধানের জন্য নেমস্পেস ব্যবহার করা হয় ।
নেমস্পেস কে প্রকাশ করা হয় namespace
দিয়ে । পিএইচপি (PHP) / লারাভেল (Laravel) এর সকল ফাইল এর উপরে (top) এ
নেমস্পেস (namespace) ব্যবহার করতে হয় । উদাহরণ namespace App\Http\Controllers;
সাব-নেমস্পেস ব্যাকস্লাশ (\
) দিয়ে পৃথক করা হয় ।
laravel এর একটি ফাইল একটা নেমস্পেস হবে । বাকি গুলা use ব্যবহার করে নেমস্পেশ দেখাতে হবে ।
- নেমস্পেস ব্যবহারের সুবিধা হচ্ছে পুনরায় অন্য ফাইল এ ব্যবহার করা যায় ।
নেমস্পেস ইমপোর্ট (importing/aliasing)
নেমস্পেসের মাধ্যমে ইমপোর্ট করা হয় use
operator দিয়ে । লারাভেল প্যাকেজ এর ডিফল্ট Controller এর কোড ।
|
aliasing / উপনাম/ডাক-নাম
- সবার নাম অনেক বড় হয় , কিন্তু সহজে ডাকার জন্য ছোট একটা নাম থাকে , ডাক নাম । এইছোট বা ডাক নাম
কেalias
বলা হয় ।
|
as
দিয়ে aliasing
নেমস্পেস ইমপোর্ট করা হয় । Illuminate\Routing\Controller
এর ডাক-নাম BaseController
।
তাই Illuminate\Routing\Controller এর পরিবর্তে BaseController
নামে extends(class Controller extends BaseController
) করে Illuminate\Routing\Controller
এর সব কিছু চাইল্ড পেয়েছে ।
extends , implements , traits
অবজেক্ট ওরিয়েন্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ এ extends , implements পড়েছেন । পি এইচ পি তে স্পেশাল traits । এই তিনটা টপিক জানা না থাকলে দেখে নিবেন ।
অন্যান্য ল্যাঙ্গুয়েজে মাল্টিপল ইনহেরিটান্স সম্ভব কিন্তু পি এইচ পি তে মাল্টিপল ইনহেরিটান্স সাপোর্ট করে না । মাল্টিলেভেল ইনহেরিটান্স সাপোর্ট করে । মাল্টিপল ইনহেরিটান্স এর কাজ traits দিয়ে করতে পারবেন ।
|