احسان رضایی

یک توسعه دهنده

درس های yii2 شماره 21: Bootstrapping

در yii2 , / تاریخ ارسال 23-05-1396 / 2 نظر / آخرین ویرایش 04-06-1403

Bootstrapping به فرایندی از آماده کردن محیط قبل از شروع application برای مدیریت یک درخواست اشاره میکنه. به عنوان مثال، اگر تصمیم دارید قبل از اجرای application یکسری تنظیمات خاص برای کاربران تعریف بشه Bootstrapping گزینه ی مناسبی برای این کار هست. backend/components/bootstrap محل خوبی برای نوشتن یک کلاس از این نوع میتونه باشه.

namespace backend\components\bootstrap;

use Yii;
use yii\base\Application;
use yii\base\BootstrapInterface;

class Setting implements BootstrapInterface
{
    public function bootstrap($app)
    {
        $settingModel = \dashboard\modules\setting\models\Setting::find()->one();
        Yii::$app->language = $settingModel->language;
        Yii::$app->timeZone = $settingModel->time_zone;
    }
}

کلاس باید از BootstrapInterface مشتق بشه و به دلیل اینکه کلاس پدر interface هست تعریف متد bootstrap اجباریه.

app به Application جاری که در حال اجراست اشاره میکنه و با استفاده از اون به همه چیز دسترسی دارید. مثلا تعریف عنوان Application:

$app->view->title = 'my title';

یا اضافه کردن یک فایل css به صفحه و...

$app->view->registerCssFile(Yii::$app->homeUrl . 'web/css/index.css');

در کلاس Setting که به عنوان نمونه کدش رو دیدیم زبان و منطقه زمانی از دیتابیس دریافت و برای کاربر ست میشه. حالا باید مشخص کنیم که این کلاس در مرحله bootstrap اجرا بشه. این یک مرحله قبل از شروع Application هست و در اون متد bootstrap که در کلاس Setting داریم صدا زده خواهد شد. برای این کار به backend/config/main.php مراجعه کنید. در پیکره بندی Application شما یک کلید به نام bootstrap وجود داره، کلاس Setting رو بهش اضافه کنید تا این کار انجام بشه.

'bootstrap' => ['log', 'backend\components\bootstrap\Setting'],

 

پیشنهاد

کتاب‌ها

کتاب الگوهای طراحی به بیان ساده(design patterns / دیزاین پترن)

در مهندسی نرم افزار، design patterns(الگوهای طراحی) راه حل‌های قابل استفاده برای مشکلاتی هستند که معمولاً در طراحی نرم‌افزار اتفاق می افتند.

طرح های از پیش ساخته شده‌ای که می‌توانید برای حل مشکلات آن‌ها را سفارشی کنید. شما نمی‌توانید یک الگو را با جستجو در stackoverflow پیدا و در برنامه خود کپی کنید. الگو ها یک قطعه کد خاص نیستند، مفاهیم کلی برای حل مشکلات خاص هستند. شما باید با درک این مفاهیم آن‌ها را در برنامه خود پیاده‌سازی کنید.

کتاب refactoring / ریفکتورینگ

Refactoring مجموعه‌ای از تکنیک‌هاست که به منظور اصلاح و بهبود کدهای قبلی بدون تغییر در عملکرد و رفتارشان جهت خوانایی، کارامدی و قابلیت نگهداری بیشتر انجام می‌شود.

در کتاب Refactoring اثر Martin Fowler نوشته شده: refactoring تکنیک مرتب/منظم سازی برای تجدید ساختار کد موجود است. تغییر ساختار داخلی کد بدون تغییر رفتار خارجی آن.

refactoring یک سرمایه‌گذاری و راه حلی برای مقابله با کد کثیف و بدهی فنی است که باعث کاهش هزینه‌های توسعه نرم‌افزار در آینده خواهد شد.

ارسال نظر

farhadfery در تاریخ 1397/12/28 - 12:33 نوشته
با سلام و خدا قوت. برای متغییرهای سراسری مثل همین جدول تنظمات از کامپوننت استفاده کنیم بهتر هست یا بوت استرپت؟
پاسخ احسان:

سلام. میتونی از params استفاده کنی.

Yii::$app->params['url'] = $settingModel->url;
پژمان در تاریخ 1398/04/01 - 02:58 نوشته
سلام . ممنون از اموزش های خوبتون. این دوره آموزش کامل شده؟
پاسخ احسان:

سلام. ممنون.

قرار گذاشتم دو تا دوره 50 تایی باشه. هنوز قسمت اول تموم نشده.