Laravel-এর অ্যাডভান্সড ফিচারগুলো ডেভেলপারদের ওয়েব অ্যাপ্লিকেশনকে আরও কার্যকর, সুরক্ষিত এবং স্কেলেবল করতে সহায়তা করে। এই অংশে Laravel-এর কয়েকটি অ্যাডভান্সড ফিচার নিয়ে আলোচনা করা হবে যা ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টকে আরও শক্তিশালী করে।
Events এবং Listeners ডেভেলপারদের অ্যাপ্লিকেশনের মধ্যে নির্দিষ্ট ইভেন্ট ঘটার পর বিশেষ ফাংশন চালানোর সুযোগ দেয়। এটি Observer Pattern অনুসরণ করে এবং অ্যাপ্লিকেশনকে আরও ডিকাপল করতে সহায়ক।
php artisan make:event UserRegistered
php artisan make:listener SendWelcomeEmail --event=UserRegistered
event(new UserRegistered($user));
Laravel-এর Queue System অ্যাসিঙ্ক্রোনাস টাস্ক চালানোর সুযোগ দেয়, যেমন ইমেইল পাঠানো, রিপোর্ট জেনারেট করা ইত্যাদি। এটি অ্যাপ্লিকেশনকে আরও দ্রুতগতিসম্পন্ন করে এবং সিস্টেমের লোড হ্রাস করে।
php artisan make:job ProcessPodcast
dispatch(new ProcessPodcast($podcast));
Laravel বিভিন্ন কিউ ড্রাইভার সমর্থন করে যেমন database
, redis
, sqs
। আপনি .env
ফাইলে ড্রাইভার কনফিগার করতে পারেন।
QUEUE_CONNECTION=database
Laravel এর Task Scheduling ফিচার ডেভেলপারদের ক্রনজব ব্যবহারের পরিবর্তে Laravel এর schedule()
মেথড ব্যবহার করে টাস্ক শিডিউল করতে দেয়।
protected function schedule(Schedule $schedule)
{
$schedule->command('emails:send')->daily();
}
এখানে emails:send
কমান্ডটি প্রতিদিন চালানো হবে।
Laravel-এর Broadcasting ফিচার রিয়েল-টাইম ডেটা আপডেটের জন্য ব্যবহৃত হয়। এটি ওয়েবসকেট প্রোটোকলের মাধ্যমে কাজ করে এবং ক্লায়েন্টদের কাছে ইভেন্ট প্রচার করে।
.env
ফাইলে ব্রডকাস্টার নির্ধারণ করা যায়:
BROADCAST_DRIVER=pusher
php artisan make:event OrderShipped
class OrderShipped implements ShouldBroadcast
{
public function broadcastOn()
{
return new Channel('orders');
}
}
Laravel-এর সাথে API তৈরি করা সহজ এবং কার্যকর। Resource Controllers, Eloquent API Resources, এবং Laravel Passport এর মাধ্যমে API authentication এবং authorization সহজ হয়।
Laravel এ API রাউটগুলোর জন্য আলাদা রাউট ফাইল থাকে, routes/api.php
।
php artisan make:resource UserResource
return new UserResource(User::find(1));
Laravel Passport API-এর জন্য OAuth2 authentication সিস্টেম সরবরাহ করে।
composer require laravel/passport
php artisan passport:install
Laravel এর Service Container Dependency Injection এর মাধ্যমে ক্লাসগুলোর নির্ভরতা সমাধান করতে ব্যবহার করা হয়। আপনি সার্ভিস কন্টেইনারে ক্লাস বা ইন্টারফেস রেজিস্টার করতে পারেন।
$this->app->bind('SomeService', function ($app) {
return new SomeService();
});
class SomeController extends Controller
{
public function index(SomeService $service)
{
return $service->performAction();
}
}
Middleware হলো Laravel-এর মাধ্যমে ইনকামিং HTTP রিকোয়েস্টকে ফিল্টার করার একটি উপায়। উদাহরণস্বরূপ, অথেনটিকেশন, CORS হেডার চেক ইত্যাদি করতে Middleware ব্যবহার করা হয়।
php artisan make:middleware EnsureUserIsAuthenticated
app/Http/Kernel.php
এ মিডলওয়্যার নিবন্ধন করতে পারেন:
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\EnsureUserIsAuthenticated::class,
];
Repository প্যাটার্ন ডেটা অ্যাকসেস লেয়ারকে সার্ভিস লেয়ার থেকে পৃথক করে। এটি বড় অ্যাপ্লিকেশনের জন্য একটি স্ট্রাকচার্ড পদ্ধতি।
interface UserRepositoryInterface
{
public function getAllUsers();
}
class UserRepository implements UserRepositoryInterface
{
public function getAllUsers()
{
return User::all();
}
}
$this->app->bind(UserRepositoryInterface::class, UserRepository::class);
Laravel Octane হলো Laravel অ্যাপ্লিকেশনের পারফরম্যান্স বাড়ানোর জন্য ব্যবহৃত একটি প্যাকেজ। এটি Swoole বা RoadRunner ব্যবহার করে অ্যাপ্লিকেশনকে ফাস্ট এবং এফিশিয়েন্ট করে তোলে।
composer require laravel/octane
php artisan octane:install
php artisan octane:start
Laravel Horizon হলো Redis Queue ব্যবস্থাপনার জন্য একটি ড্যাশবোর্ড এবং মনিটরিং টুল। এটি আপনার কিউ এবং জবের পারফরম্যান্স ট্র্যাক করতে সাহায্য করে।
composer require laravel/horizon
php artisan horizon:install
php artisan horizon
Laravel-এর অ্যাডভান্সড ফিচারগুলো ওয়েব অ্যাপ্লিকেশনকে আরও শক্তিশালী, স্কেলেবল এবং পারফরম্যান্ট করতে সহায়তা করে। Events, Queues, Broadcasting, এবং API Development সহ বিভিন্ন টুল Laravel কে একটি পূর্ণাঙ্গ এবং ফিচার সমৃদ্ধ ফ্রেমওয়ার্ক হিসেবে গড়ে তুলেছে।
আরও দেখুন...