কনফিগারেশন ম্যানেজমেন্ট

ডেপ্লয়মেন্ট এবং প্রোডাকশন রেডিনেস - জী ফ্রেমওয়ার্ক (Yii Framework) - Web Development

258

Yii ফ্রেমওয়ার্কে কনফিগারেশন ম্যানেজমেন্ট হল অ্যাপ্লিকেশনের কনফিগ ফাইলগুলোর মাধ্যমে অ্যাপ্লিকেশন এর ভিন্ন ভিন্ন অংশের আচরণ কাস্টমাইজ করা। Yii এর কনফিগারেশন সিস্টেম সহজ, নমনীয়, এবং স্কেলেবল, যা ডেভেলপারদের অ্যাপ্লিকেশন সেটআপ এবং কাস্টমাইজেশন করতে সহায়তা করে। Yii ফ্রেমওয়ার্কে কনফিগারেশন ফাইলগুলো অ্যাপ্লিকেশনের পুরো আচরণ এবং সেটিংস নির্ধারণ করে, যেমন ডেটাবেস কানেকশন, ক্যাশিং, ইউজার অথেন্টিকেশন, লগিং ইত্যাদি।


Yii কনফিগারেশন ফাইল

Yii অ্যাপ্লিকেশনটি সাধারণত দুটি প্রধান কনফিগারেশন ফাইল ব্যবহার করে:

  1. web.php: এটি প্রধান কনফিগারেশন ফাইল যেটি ওয়েব অ্যাপ্লিকেশন এর কনফিগারেশন সংরক্ষণ করে।
  2. console.php: এটি কনসোল অ্যাপ্লিকেশন সম্পর্কিত কনফিগারেশন ফাইল।

এছাড়া, আরও কাস্টম কনফিগ ফাইল তৈরি করা সম্ভব যা অ্যাপ্লিকেশনটির বিভিন্ন অংশ কনফিগার করতে ব্যবহৃত হয়।


Yii কনফিগারেশন ফাইল স্ট্রাকচার

Yii 2-এ কনফিগারেশন ফাইল সাধারণত config ডিরেক্টরির মধ্যে থাকে। কিছু প্রধান কনফিগ ফাইল হল:

config/
    web.php               # ওয়েব অ্যাপ্লিকেশনের কনফিগারেশন
    console.php           # কনসোল অ্যাপ্লিকেশনের কনফিগারেশন
    db.php                # ডেটাবেস কনফিগারেশন
    params.php            # জেনারেল প্যারামিটারস

১. web.php

এটি একটি প্রধান কনফিগ ফাইল যা ওয়েব অ্যাপ্লিকেশন সংক্রান্ত সমস্ত সেটিংস কনফিগার করে। এর মধ্যে অ্যাপ্লিকেশনের সমস্ত মডিউল, কম্পোনেন্টস এবং বিভিন্ন সেটিংস সংজ্ঞায়িত থাকে।

উদাহরণ: config/web.php

<?php
return [
    'id' => 'app-frontend',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
        'request' => [
            'cookieValidationKey' => 'random-key',
        ],
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=database_name',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ],
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
        ],
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\DbTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
    ],
    'params' => require(__DIR__ . '/params.php'),
];

এই কনফিগ ফাইলের মাধ্যমে:

  • Request কম্পোনেন্টের কুকি ভ্যালিডেশন কনফিগার করা হয়েছে।
  • DB (ডেটাবেস) কম্পোনেন্টের কনফিগারেশন।
  • URL Manager দ্বারা প্রিটি URL ব্যবহার সক্ষম করা হয়েছে।
  • Log কম্পোনেন্টে লগিং সিস্টেম কনফিগার করা হয়েছে।

২. console.php

কনসোল অ্যাপ্লিকেশনের কনফিগ ফাইল। এর মধ্যে কনসোল অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় সেটিংস কনফিগার করা হয়।

উদাহরণ: config/console.php

<?php
return [
    'id' => 'app-console',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=console_db',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ],
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                    'logFile' => '@runtime/logs/console.log',
                ],
            ],
        ],
    ],
];

৩. db.php

ডেটাবেস সংযোগের কনফিগারেশন। ডেটাবেসের ডিএসএন, ইউজারনেম, পাসওয়ার্ড ইত্যাদি কনফিগার করা হয়।

উদাহরণ: config/db.php

<?php
return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=my_database',
    'username' => 'root',
    'password' => 'secret',
    'charset' => 'utf8',
];

৪. params.php

এই ফাইলে অ্যাপ্লিকেশনের জন্য সাধারণ প্যারামিটারস যেমন, API কী, সিস্টেম কনফিগারেশন ইত্যাদি সংরক্ষিত হয়।

উদাহরণ: config/params.php

<?php
return [
    'adminEmail' => 'admin@example.com',
    'supportEmail' => 'support@example.com',
    'user.passwordResetTokenExpire' => 3600,
];

কনফিগারেশন ম্যানেজমেন্টের প্রধান বৈশিষ্ট্য

  1. নমনীয়তা: Yii ফ্রেমওয়ার্কের কনফিগারেশন সিস্টেম অত্যন্ত নমনীয়। আপনি সহজেই আপনার অ্যাপ্লিকেশনের প্রাসঙ্গিক অংশের কনফিগ পরিবর্তন করতে পারবেন।
  2. কনফিগ ফাইলের এক্সটেনশন: Yii কনফিগারেশন ফাইলগুলি PHP অ্যারে হিসেবে লেখা হয়, তবে আপনি এটি YAML, XML বা JSON ফরম্যাটেও কনফিগার করতে পারেন যদি প্রয়োজন হয়।
  3. বিভিন্ন এনভায়রনমেন্টে কনফিগ: Yii ফ্রেমওয়ার্কে বিভিন্ন পরিবেশ (development, production, staging) এর জন্য আলাদা আলাদা কনফিগারেশন ব্যবহার করা যায়। উদাহরণস্বরূপ, আপনি config/web-local.php ফাইলটি ডেভেলপমেন্ট পরিবেশে ব্যবহার করতে পারেন এবং প্রোডাকশন পরিবেশে ভিন্ন কনফিগ।

    উদাহরণ:

    if (YII_ENV_DEV) {
        // Development environment
        $config = yii\helpers\ArrayHelper::merge($config, require(__DIR__ . '/web-local.php'));
    }
    
  4. কাস্টম কনফিগারেশন ফাইল: আপনি চাইলে কাস্টম কনফিগারেশন ফাইল তৈরি করে অ্যাপ্লিকেশনের অন্যান্য সেটিংস ম্যানেজ করতে পারেন, যেমন থার্ড-পার্টি লাইব্রেরি বা API কনফিগ।

সারাংশ

Yii ফ্রেমওয়ার্কের কনফিগারেশন ম্যানেজমেন্ট সিস্টেম একটি অত্যন্ত শক্তিশালী এবং নমনীয় সিস্টেম, যা অ্যাপ্লিকেশনের সেটিংস সহজে কাস্টমাইজ এবং মেইনটেন করতে সহায়তা করে। Yii এর কনফিগারেশন ফাইলগুলো অ্যাপ্লিকেশনের বিভিন্ন অংশের জন্য আলাদা আলাদা সেটিংস প্রদান করে, যেমন ডেটাবেস কানেকশন, ইউজার অথেন্টিকেশন, লগিং, ক্যাশিং ইত্যাদি। এছাড়া, পরিবেশভিত্তিক কনফিগারেশন ম্যানেজমেন্ট এবং কাস্টম কনফিগারেশন ফাইল তৈরি করার মাধ্যমে অ্যাপ্লিকেশন আরও নমনীয় এবং স্কেলেবল হয়।

Content added By
Promotion

Are you sure to start over?

Loading...