The Patterns That Power the Framework
লারাভেলের ভেতরে বারবার ফিরে আসা প্যাটার্নগুলো — খুব সহজে বাংলায়
লারাভেলের ডকুমেন্টেশন ফিচার কীভাবে ব্যবহার করতে হয় তা শেখায়। কিন্তু একই আইডিয়া কেন বিভিন্ন জায়গায় বারবার আসে, আর সেটা চিনলে কীভাবে ভালো ডেভেলপার হওয়া যায় — তা বলে না। এই বই সেই ফাঁক পূরণ করে।
যারা আগেই লারাভেল জানেন — অ্যাপ বানিয়েছেন, queue ও cache ব্যবহার করেছেন, HTTP client নিয়ে কাজ করেছেন, প্রোডাকশন ইস্যু ডিবাগ করেছেন। Routing, Eloquent, Blade এখনো শিখছেন? কিছু রিয়েল প্রজেক্ট বানিয়ে তারপর পড়ুন।
এক বসায় পড়ার দরকার নেই। প্রতিটি অধ্যায় স্বয়ংসম্পূর্ণ, তবে ক্রমানুসারে পড়লে বেশি লাভ — অনেক কনসেপ্ট একে অপরের উপর দাঁড়িয়ে।
পড়ার সময় ভাবুন: আমার প্রজেক্টে এই প্যাটার্ন কোথায় দেখেছি?
একই আইডিয়া লারাভেলের কতগুলো সাবসিস্টেমে আছে — এক নজরে।
| প্যাটার্ন | কোথায় কোথায় দেখা যায় | মূল API |
|---|---|---|
| Retry | DB Transaction · HTTP Client · Queue Job · Artisan · Helper | Http::retry() $tries retry() |
| Failover | Queue · Cache · Mail | 'driver' => 'failover' |
| Atomic Lock | Cache · Queue · Unique Jobs · Scheduler · Artisan · Migration · Session | Cache::lock() WithoutOverlapping |
| Rate Limit | HTTP Route · Exception Reporting · Queue Job · যেকোনো কোড | RateLimiter::for() throttle |
| Pipeline | HTTP Middleware · Job Middleware · HTTP Client · Process · Pipeline Class | Pipeline::send()->through() |
| Events | Model · Queue · Auth · Broadcasting · Notification · Scheduler · HTTP Client · Context | Event::listen() ShouldQueue |
| Driver | Cache · Queue · Filesystem · Mail · Session · Notification · Logging · Database | Manager extend() |
| Deferring | Middleware · Helper · Job/Event Dispatch · HTTP Batch · Service Provider | defer() terminate() |
← → দিয়ে স্লাইড বদলান, Home/End দিয়ে শুরু/শেষ।
বাঁয়ে-ডানে সোয়াইপ করুন। কোড ব্লক আলাদাভাবে স্ক্রল হয়।
উপরের মেনু বাটনে যেকোনো স্লাইড বা অধ্যায়ে সরাসরি যান।
উপরের বাটনে ছোট/মাঝারি/বড় বদলান। অগ্রগতি ব্রাউজারে সেভ থাকে।