امروز:شنبه ,۱۳۹۸/۰۱/۳۱
Download http://bigtheme.net/joomla Free Templates Joomla! 3
Home / Yii1 / مدریت کش(cache) در Yii (قسمت اول)
آموزش فریمورک یی, آموزش فریم ورک یی, فریمورک یی, فریم ورک یی, فریمورکyii, فریم ورک yii, yiiframework, yii framework,

مدریت کش(cache) در Yii (قسمت اول)

یکی از امکانات خیلی خوبی که فریم ورک Yii در اختیار برنامه نویسان قرار داده Ccacheمی باشد
برای اطلاعات بیشتر ازین ویژگی میتونین از رفنس سایت yii استفاده کنین : لینک زیر
CCache

بحث کش در فریم ورک yii انواع مختلفی داره : از قبیل : , CDbCache, CFileCache, CMemCache CWinCache,CXCache, CZendDataCache

به دلیل گسترش این مبحث در این آموزش فقط CFileCache را توضیح میدهیم.
برای فعال سازی کش cache ابتدا باید در main.php آن را فعال کنیم
پس به main.php رفته و در قسمت components کد زیر را وارد میکنیم:

'cache' => array(
            'class' => 'system.caching.CFileCache',
        ),

پس فعال کردن کش و با رفرش سایت , در فولدر runtime فولدری با اسم cache اضافه می شود.
آموزش yiiframework-کش-ccache

خوب با این کار سیستم به صورت اتومات عملیات کش را انجام میدهد.

برای استفاده از آن شما از هر نوع کشی که استفاده کنین , میتونین از کد های زیر برای set , get کردن کش مورد نظرتون استفاده کنین.

برای set کردن:

 Yii::app()->cache->set($id, $value);

برای get کردن:

Yii::app()->cache->get($id);

در اینجا id نامی است که شما برای کشتون استفاده میکنین.
value هم مقدار اونه
مثال زیر رو نگاه کنین.

$id = "users";
$cach = Yii::app()->cache->get($id);
if (!empty($cach)) {
    print_r($cach);
} else {
    $sql = "select first_name , last_name from user";
    $value = Yii::app()->db->CreateCommand($sql)->queryAll();
    Yii::app()->cache->set($id, $value);
}

خوب ما ابتدا یه نام برای کشمون انتخاب کردیم
بعدش اونو get کردیم
کفتیم اگه خالی نبود اونو واسمون نمایش بده
در غیر این صورت اونو با کوئری ای که نوشتیم set کن.
خوب این یه قسمتشه .
تصویر زیرش را ببینید
آموزش yiiframework-کش-ccache
حالا اگه شما کاربر جدید بسازین
باز هم همین اطلاعاتو نشون میده.چرا؟چون کش شده.تا زمانی که شما دوباره کشتونو با کوئری جدید پر نکنین , همان اطلاعات قبلی رو نمایش میده

کد زیر را من در اکشن actionCreate نوشتم. که با هر بار ثبت , کش رو دوباره set میکنه
فقط این که حتما باید id شما با کشتون برابر باشه

$id = "users";
                $sql = "select first_name , last_name from user";
                $value = Yii::app()->db->CreateCommand($sql)->queryAll();
                Yii::app()->cache->set($id, $value);

Check Also

متد findByAttributes

استفاده از متد findByAttributes() در yii1 یکی از متد های CActiveRecord متد findByAttributes می باشد …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *