প্রিয় পাঠক, বাংলায় PHP Laravel Framework শেখার দ্বিতীয় পর্বে আপনাকে স্বাগতম, এই পর্বে আমরা Laravel File এবং Folder Structure এর সাথে পরিচিত হবো।
কেন আপনার জন্য Laravel File এবং Folder Structer জানা দরকার?
ধরুন আপনি কোথাও যাবেন, কিন্তু সেখানে রাস্তা ঘাট কিছুই চেনেন না। তাহলেতো সেই জায়গায় গেলে আপনাকে অনেক সমস্যায় পড়তে হতে পারে। এবং আপনি যেই কাজের জন্য যাবেন সেই কাজটি ও করতে পারবেন না। একইভাবে Laravel সহ যেকোনো Framework নিয়ে কাজ করতে হলে এর file এবং Folder structure আপনার জানা জরুরি। কেননা Laravel File এবং Folder Structure সম্পর্কে আপনার ভালো ধারণা না থাকলে, লারাভেল শিখতে এবং এটি ব্যবহার করে Project Development এ পরবর্তীতে আপনাকে সমস্যায় পড়তে হতে পারে।
Laravel File এবং Folder বিন্যাস
ডিফল্ট Laravel ফাইল এবং ফোল্ডার স্ট্রাকচার টি মূলত ছোট বড় সব ধরণের application development এর জন্য সাজানো হয়েছে, তবে আপনি চাইলে আপনার নিজের ইচ্ছে মতো করে ফাইল এবং ফোল্ডার structure সাজাতে পারেন। এর জন্য লারাভেল আপনাকে কোনো রেস্ট্রিকশন দিবেনা যতক্ষণ কম্পোজার class গুলো autoload করতে পারে। Laravel File এবং folder বিন্যাস টি নিচের ছবির মতো পাবেন:
উপরের ছবিতে আমরা সাধারণ ভাবে ১০ টি Directory ও কিছু File পাই। যেমন:
- app
- bootstrap
- config
- database
- public
- resources
- routes
- storage
- tests
- vendor
এখন চলুন এটির কোনটির কি কাজ সেটা দেখা এবং বুঝা যাক :
- app:
এটি মূলত আপনার জন্য, অর্থাৎ এই ডিরেক্টরিতে আপনার এপ্লিকেশন এর Core কোড গুলো থাকবে , যেগুলো আপনিই বানাবেন । যেমনঃ Controller, Middleware সহ অন্যান্য প্রয়োজনীয় class গুলো।
- bootstrap:
এটির মধ্যে app.php ফাইলটি থাকে, যা দিয়ে Laravel Framework টি কে bootstraps করে। তা ছাড়া এই ফোল্ডার এর মধ্যে একটি cache folder ও থাকে, যার মধ্যে performance optimization এর জন্য Framework Generated file এবং folder গুলো থাকে , যেমন routes এবং services cache files .
- config
এই Folder এর মধ্যে আপনার application এর সব configuration ফাইল গুলো থাকবে। যেমন ডাটাবেস, মেইল, সেশন ইত্যাদি।
- database
এখানে আপনার application এর সব database migration এবং seeds থাকবে । এমনকি SQLite database ফাইলটাও এখানে থাকে। database migration এবং seeds কি? পরে বিস্তারিত আলোচনা করব।
- public
Public Directory তে আপনার index.php file থাকবে, যেটি আপনার application এর সব ধরণের request এর entry point হিসেবে ব্যবহৃত হবে আর সব ধরনের asset যেমন CSS, JS, fonts, image ইত্যাদি থাকবে।
- resources
এই folder এ আপনার ফ্রন্ট এন্ড ফাইল view থাকবে । তা ছাড়া যত রকমের uncompiled যেমন LESS, SASS, JavaScript এবং Language ফাইলগুলাও এখানে থাকবে।
- routes
এই folder এ আপনার application এর সব route definitions গুলা থাকবে। যেমনঃ web.php, api.php, channels.php, এবং console.php. আমরা route নিয়ে পরে বিস্তারিত আলোচনা করব।
- storage
এই folder এ আপনার application এর সব compiled Blade templates, file based sessions, file caches, এবং framework generated অন্যান্য file গুলো থাকবে। এই folder টি তিনটি folder যথাক্রমে app, framework, এবং logs folder এ বিভক্ত। app folder আপনার application generated ফাইল গুলো থাকবে, framework folder আপনার framework generated ফাইল গুলো থাকবে এবং logs folder আপনার application এর লগ ফাইল গুলো থাকবে।
- tests
এই folder এ আপনার application এর test ফাইল গুলা থাকে , যেমনঃ PHPUnit ফাইল।
- vendor
এই folder এ আপনার সব Composer dependency ফাইলগুলা থাকে।
Laravel folder structure নিয়ে আরও জানতে চাইলে এই লিংকে দেখুন।