שמירת עמוד במטמון
============

שמירת עמוד במטמון מתייחס לשמירת כל התוכן של עמוד שלם במטמון. שמירת עמוד יכולה להתבצע במקומות שונים. לדוגמא, על ידי בחירת כותרת עמוד מתאימה, הדפדפן של הלקוח יכול לשמור את העמוד הנצפה כרגע לפרק זמן מוגבל. האפליקציה עצמה יכולה לשמור את תוכן העמוד במטמון גם כן. בתת נושא זה, אנו נתמקד על האפשרות השנייה שכרגע הצגנו.

שמירת עמוד במטמון יכולה להחשב כמצב מיוחד של [שמירת חלק מהתצוגה במטמון](/doc/guide/caching.fragment)‫.‬
מאחר ותוכן העמוד בדרך כלל נוצר על ידי צירוף תבנית לתצוגה, זה לא יעבוד פשוט על ידי קריאה ל [beginCache|CBaseController::beginCache] ו [endCache|CBaseController::endCache] בתוך קובץ התבנית.
הסיבה היא שהתבנית מצורפת בתוך מתודת [CController::render] **אחרי** שתוכן התצוגה כבר הוערך והורץ.

כדי לשמור עמוד שלם במטמון, אנו צריכים לדלג על ההרצה של הפעולה היוצרת את התוכן של העמוד. אנו יכולים להשתמש ב [COutputCache] כ [פילטר](/doc/guide/basics.controller#filter) כדי להשיג מטרה זו.
הקוד הבא מציג כיצג ניתן להגדיר את הפילטר של המטמון:

~~~
[php]
public function filters()
{
    return array(
        array(
            'COutputCache',
            'duration'=»100,
            'varyByParam'=»array('id'),
        ),
    );
}
~~~

הגדרות הפילטר למעלה יצרפו את הפילטר לכל הפעולות בקונטרולר. ניתן להגביל אותו לשימוש על פעולות מסויימות על ידי שמוש באופרטור של פלוס ( + ). מידע נוסף ניתן לקרוא על [פילטר](/doc/guide/basics.controller#filter).

» Tip|טיפ: אנו יכולים להשתמש ב [COutputCache] כפילטר מכיוון שהוא יורש מהמחלקה [CFilterWidget], וזה אומר שזהו גם פילטר וגם וידג'ט. למעשה, הדרך בה עובד וידג'ט דומה מאוד לפילטר: וידג'ט (פילטר) מתחיל לפני שתוכן של פעולה רץ, והוידג'ט (פילטר) מסתיים אחרי שתוכן הפעולה הורץ.

«div class="revision"»$Id: caching.page.txt 1014 2009-05-10 12:25:55Z qiang.xue $«/div»