Gii হল Yii ফ্রেমওয়ার্কের একটি বিল্ট-ই কোড জেনারেটর যা ডেভেলপারদের দ্রুত মডেল, কন্ট্রোলার, ভিউ, মাইগ্রেশন, উইজেট ইত্যাদি তৈরি করতে সহায়তা করে। Gii ব্যবহার করে কোড জেনারেট করা খুবই সহজ এবং এটি অনেক সময় এবং প্রচেষ্টা সাশ্রয় করে, বিশেষ করে যখন আপনি একটি নতুন প্রজেক্ট তৈরি করছেন বা পুনরায় কোড তৈরি করতে চান। Gii এর কাস্টমাইজেশন প্রক্রিয়ায়, আপনি Gii এর জেনারেট করা কোডের আচরণ এবং আউটপুট পরিবর্তন করতে পারেন।
Gii কি?
Gii Yii ফ্রেমওয়ার্কের একটি টুল যা ডেভেলপারদের কোড জেনারেট করতে সাহায্য করে। এটি একটি ওয়েব ইন্টারফেসের মাধ্যমে সহজে ব্যবহার করা যায়, এবং মডেল, কন্ট্রোলার, ফর্ম, উইজেট, মাইগ্রেশন ইত্যাদি তৈরিতে সহায়ক। Gii আপনাকে অটো-জেনারেটেড কোডের একটি বেসিক কাঠামো প্রদান করে, যা পরে আপনি আপনার প্রয়োজন অনুযায়ী কাস্টমাইজ করতে পারেন।
Gii এর কাস্টমাইজেশন
Yii ফ্রেমওয়ার্কে Gii এর কাস্টমাইজেশন করার মাধ্যমে আপনি নিজস্ব কোড জেনারেটর তৈরি করতে পারেন, অথবা Gii এর জেনারেট করা কোডের কিছু নির্দিষ্ট বৈশিষ্ট্য পরিবর্তন করতে পারেন। সাধারণত এটি দুটি ধাপে করা হয়:
- Gii Module Configuration: Gii এর কনফিগারেশন পরিবর্তন করা।
- Custom Gii Generator: নিজের কাস্টম জেনারেটর তৈরি করা।
১. Gii Module Configuration
Gii সক্রিয় করতে বা কনফিগারেশন পরিবর্তন করতে, আপনাকে config/web.php ফাইলের মধ্যে Gii মডিউলটি কনফিগার করতে হবে।
Gii মডিউল সক্রিয় করা
প্রথমে,
config/web.phpফাইলে Gii মডিউল সক্রিয় করুন। সাধারণত Yii প্রজেক্টে Gii ডিফল্টভাবে সক্রিয় থাকে, তবে যদি তা না থাকে, তাহলে এটি এইভাবে কনফিগার করতে হবে:'modules' => [ 'gii' => [ 'class' => 'yii\gii\Module', 'allowedIPs' => ['127.0.0.1', '::1'], // শুধুমাত্র লোকালহোস্ট থেকে অ্যাক্সেস ], ],এখানে,
allowedIPsসেটিংটি ব্যবহার করে আপনি নির্দিষ্ট IP অ্যাড্রেসগুলো থেকে Gii এর অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন।- আপনি যদি Gii ব্যবহার করতে চান শুধু আপনার লোকাল ডেভেলপমেন্ট এনভায়রনমেন্টে, তবে
allowedIPsএর মাধ্যমে শুধুমাত্র নির্দিষ্ট আইপি অ্যাড্রেস অনুমোদন করা যায়। এর মাধ্যমে Gii প্রডাকশন সার্ভারে ব্যবহার করা থেকে রোধ করা যায়।
Gii মডিউলের জন্য কাস্টম কনফিগারেশন
যদি আপনি Gii এর কিছু আচরণ পরিবর্তন করতে চান, তাহলে আপনি তার কনফিগারেশন সেটিংস পরিবর্তন করতে পারেন, যেমন:
- জেনারেটরের পছন্দসই ফাইল স্ট্রাকচার।
- মডেল বা কন্ট্রোলারের জন্য কাস্টম টেমপ্লেট।
- কাস্টমাইজড কোড জেনারেশন ফাংশন।
'modules' => [
'gii' => [
'class' => 'yii\gii\Module',
'generators' => [
'model' => [
'class' => 'app\gii\generators\model\Generator', // কাস্টম মডেল জেনারেটর
'templates' => [
'default' => '@app/gii/templates/default', // কাস্টম টেমপ্লেট
],
],
],
],
],
এই কনফিগারেশনে, আপনি generators এর মাধ্যমে কাস্টম গেনারেটর এবং টেমপ্লেট যুক্ত করতে পারেন।
২. Custom Gii Generator তৈরি করা
Gii-কে কাস্টমাইজ করার আরও একটি শক্তিশালী উপায় হল Custom Gii Generator তৈরি করা। এটি করতে, আপনাকে একটি নতুন জেনারেটর ক্লাস তৈরি করতে হবে যা yii\gii\generators\Generator ক্লাস থেকে উত্তরাধিকারিত হবে। এই কাস্টম জেনারেটরটি কনফিগারেশন ফাইলে যুক্ত করে ব্যবহার করা যায়।
Custom Generator Class তৈরি করা
১. প্রথমে, app/gii/generators/model/Generator.php ফাইলে আপনার কাস্টম জেনারেটর ক্লাসটি তৈরি করুন:
namespace app\gii\generators\model;
use yii\gii\generators\model\Generator as BaseGenerator;
class Generator extends BaseGenerator
{
public $namespace = 'app\\models';
public $tableName = '';
// অন্যান্য কাস্টম প্রোপার্টি এবং পদ্ধতি
}
২. তারপর, কনফিগারেশনে এই কাস্টম জেনারেটরটি যুক্ত করুন:
'modules' => [
'gii' => [
'class' => 'yii\gii\Module',
'generators' => [
'model' => [
'class' => 'app\gii\generators\model\Generator',
],
],
],
],
এখন, Gii UI-তে আপনি আপনার কাস্টম জেনারেটরটি দেখতে পাবেন এবং এটি ব্যবহার করতে পারবেন।
কাস্টম টেমপ্লেট তৈরি করা
Gii-এর টেমপ্লেট কাস্টমাইজ করা একটি সাধারণ প্রক্রিয়া। আপনি চাইলে আপনার মডেল, কন্ট্রোলার, ফর্ম ইত্যাদির জন্য কাস্টম টেমপ্লেট তৈরি করতে পারেন। একটি কাস্টম টেমপ্লেট তৈরি করতে:
১. আপনার কাস্টম টেমপ্লেট ফোল্ডার তৈরি করুন (যেমন: @app/gii/templates/default). ২. তারপর আপনার কোড টেমপ্লেট ফাইলগুলি সেখানে রাখুন।
'templates' => [
'default' => '@app/gii/templates/default',
],
এইভাবে আপনি Gii এর টেমপ্লেট কাস্টমাইজ করতে পারেন।
Gii-তে কাস্টম ফর্ম এবং ইনপুট ফিল্ড যুক্ত করা
Gii জেনারেটর কাস্টমাইজেশনে, আপনি নতুন ইনপুট ফিল্ড বা ফর্ম ফিল্ড যুক্ত করতে পারেন। উদাহরণস্বরূপ, যদি আপনি মডেল তৈরি করার সময় বিশেষ কোনো ইনপুট ফিল্ড চান, তাহলে আপনার জেনারেটর ক্লাসে সেই ফিল্ডগুলি অ্যাড করতে হবে।
public function generateLabels()
{
return [
'title' => 'Post Title',
'content' => 'Post Content',
];
}
এতে, Gii নতুন মডেল জেনারেট করার সময় কাস্টম লেবেল ব্যবহার করবে।
সারাংশ
Gii Yii ফ্রেমওয়ার্কের একটি শক্তিশালী কোড জেনারেটর টুল, যা ডেভেলপারদের দ্রুত মডেল, কন্ট্রোলার, ভিউ, মাইগ্রেশন এবং অন্যান্য কোড জেনারেট করতে সহায়তা করে। Gii কাস্টমাইজেশন আপনাকে কোড জেনারেটরের আচরণ এবং আউটপুট নিয়ন্ত্রণ করার সুযোগ দেয়। আপনি Gii এর কনফিগারেশন পরিবর্তন করে, কাস্টম জেনারেটর এবং টেমপ্লেট তৈরি করে এটি নিজের প্রয়োজন অনুযায়ী কাস্টমাইজ করতে পারেন, যা ডেভেলপমেন্ট প্রক্রিয়াকে আরও সহজ এবং দ্রুত করে তোলে।