Skip to content

প্যাকেজ ডেভেলপমেন্ট মাস্টারক্লাস (Refactored)

ভূমিকা

এই কোর্সটি আপনাকে একজন দক্ষ লারাভেল প্যাকেজ ডেভেলপার হিসেবে গড়ে তোলার জন্য ডিজাইন করা হয়েছে। আমরা শুধুমাত্র তত্ত্বের মধ্যে সীমাবদ্ধ থাকব না, বরং প্রতিটি অধ্যায়ে ধাপে ধাপে একটি সম্পূর্ণ, বাস্তব-বিশ্বের InvoiceBuilder প্যাকেজ তৈরি করব। আমাদের লক্ষ্য হলো " yaparak śikhā" (learning by doing) - অর্থাৎ, প্রতিটি কনসেপ্ট আমরা তখনই শিখব যখন সেটি আমাদের প্রজেক্টে প্রয়োজন হবে।


পার্ট ১: ফাউন্ডেশন

এই অংশে আমরা একটি প্যাকেজের ফাউন্ডেশন তৈরি করব এবং প্রতিটি অধ্যায় শেষে নতুন জিনিসপত্র যোগ করতে থাকবো।

অধ্যায় ১: প্রথম ইনস্টলযোগ্য প্যাকেজ

  • লক্ষ্য: একটি ন্যূনতম প্যাকেজ তৈরি করা যা লারাভেল অ্যাপ্লিকেশনে ইনস্টল করা যায়।
  • শিখনীয় বিষয়: ফোল্ডার স্ট্রাকচার, composer.json এর বেসিক, সার্ভিস প্রোভাইডার এবং লোকাল path রিপোজিটরি।

অধ্যায় ২: কনফিগারেশন - প্যাকেজকে কাস্টমাইজযোগ্য করা

  • লক্ষ্য: ব্যবহারকারীকে প্যাকেজের বিহাবেয়র পরিবর্তন করার সুযোগ দেওয়া।
  • শিখনীয় বিষয়: কনফিগ ফাইল তৈরি, mergeConfigFrom, এবং vendor:publish কমান্ডের মাধ্যমে কনফিগ পাবলিশ করা।

অধ্যায় ৩: রাউট এবং কন্ট্রোলার

  • লক্ষ্য: প্যাকেজের মাধ্যমে একটি ওয়েব পেজ দেখানো।
  • শিখনীয় বিষয়: প্যাকেজের জন্য রাউট ফাইল লোড করা, কন্ট্রোলার তৈরি এবং কনফিগারেশন-ড্রিভেন রাউটিং (prefix, middleware)।

অধ্যায় ৪: ভিউ - ইন্টারফেস দেখানো

  • লক্ষ্য: প্যাকেজের কন্ট্রোলার থেকে ডাইনামিক HTML কনটেন্ট রেন্ডার করা।
  • শিখনীয় বিষয়: loadViewsFrom এবং ভিউ নেমস্পেস (::), এবং ব্যবহারকারীর জন্য ভিউ ওভাররাইড করার সুযোগ তৈরি করা।

পার্ট ২: প্রাক্টিক্যাল ফিচার তৈরি

এই অংশে আমরা আমাদের প্যাকেজে ডাটাবেস, সার্ভিস ক্লাসসহ আনুসঙ্গিক জিনিসপত্র যোগ করবো।

অধ্যায় ৫: সার্ভিস কন্টেইনার এবং কোর লজিক

  • লক্ষ্য: কন্ট্রোলার থেকে বিজনেস লজিককে আলাদা করে একটি সার্ভিস ক্লাসে নিয়ে আসা।
  • শিখনীয় বিষয়: সার্ভিস কন্টেইনার, bind বনাম singleton, ডিপেন্ডেন্সি ইনজেকশন এবং ট্যাক্স ক্যালকুলেশন লজিক।

অধ্যায় ৬: ডাটাবেস - ইনভয়েস সংরক্ষণ করা

  • লক্ষ্য: প্যাকেজের ডেটা ডাটাবেসে স্থায়ীভাবে সংরক্ষণ করা।
  • শিখনীয় বিষয়: মাইগ্রেশন তৈরি এবং পাবলিশিং, কনফিগারেবল টেবিলসহ মডেল তৈরি, এবং Eloquent রিলেশনশিপ।

অধ্যায় ৭: পিডিএফ ইনভয়েস তৈরি করা

  • লক্ষ্য: ডাটাবেসে সংরক্ষিত ইনভয়েসের একটি ডাউনলোডযোগ্য পিডিএফ সংস্করণ তৈরি করা।
  • শিখনীয় বিষয়: mpdf লাইব্রেরি ইনস্টল করা, পিডিএফের জন্য ভিউ তৈরি, এবং কন্ট্রোলার থেকে পিডিএফ রেসপন্স পাঠানো।

অধ্যায় ৮: কনসোল কমান্ড এবং অটোমেশন

  • লক্ষ্য: প্যাকেজ ম্যানেজমেন্টের জন্য কাস্টম artisan কমান্ড তৈরি করা।
  • শিখনীয় বিষয়: install কমান্ড তৈরি, কমান্ড রেজিস্ট্রেশন এবং টাস্ক শিডিউলিং।

পার্ট ৩: প্যাকেজের সিকিউরিটি এবং পাবলিকেশন

শেষ অংশে আমরা আমাদের প্যাকেজকে সুরক্ষিত, নির্ভরযোগ্য এবং সবার ব্যবহারের জন্য প্রস্তুত করব।

অধ্যায় ৯: নিরাপত্তা - মিডলওয়্যার এবং পলিসি

  • লক্ষ্য: প্যাকেজের রাউট এবং ডেটাকে সুরক্ষিত করা।
  • শিখনীয় বিষয়: কাস্টম মিডলওয়্যার তৈরি ও রেজিস্টার করা, এবং পলিসির মাধ্যমে ব্যবহারকারীর অ্যাক্সেস নিয়ন্ত্রণ করা।

অধ্যায় ১০: প্যাকেজ টেস্টিং

  • লক্ষ্য: প্যাকেজটি নির্ভরযোগ্য এবং বাগ-মুক্ত কিনা তা নিশ্চিত করার জন্য অটোমেটেড টেস্ট লেখা।
  • শিখনীয় বিষয়: Orchestra Testbench সেটআপ, ফিচার এবং ইউনিট টেস্ট লেখা।

অধ্যায় ১১: ডিস্ট্রিবিউশন এবং ভার্সনিং

  • লক্ষ্য: আমাদের প্যাকেজটি Packagist.org-এ প্রকাশ করা যাতে বিশ্বের যে কেউ এটি ব্যবহার করতে পারে।
  • শিখনীয় বিষয়: Semantic Versioning (SemVer), Packagist-এ সাবমিশন এবং ওয়েবহুকের মাধ্যমে অটো-আপডেট।

সৎ ক্রেডিট: লেখক AI, সম্পাদক আবুল হাসান