یکی از امکانات خیلی خوبی که فریم ورک 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 اضافه می شود.
خوب با این کار سیستم به صورت اتومات عملیات کش را انجام میدهد.
برای استفاده از آن شما از هر نوع کشی که استفاده کنین , میتونین از کد های زیر برای 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 کن.
خوب این یه قسمتشه .
تصویر زیرش را ببینید
حالا اگه شما کاربر جدید بسازین
باز هم همین اطلاعاتو نشون میده.چرا؟چون کش شده.تا زمانی که شما دوباره کشتونو با کوئری جدید پر نکنین , همان اطلاعات قبلی رو نمایش میده
کد زیر را من در اکشن 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);