‎מטמון

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

‎שימוש במטמון ב Yii בדרך כלל דורש הגדרת רכיב מטמון וגישה אליו‫.‬ הגדרות האפליקציה הבאות מגדירות רכיב מטמון המשתמש בשיטת מטמון של memcache עם שני שרתים לאחסון התוכן במטמון‫.‬

array(
    ......
    'components'array(
        ......
        'cache'array(
            'class''system.caching.CMemCache',
            'servers'array(
                array('host''server1', 'port'11211, 'weight'60),
                array('host''server2', 'port'11211, 'weight'40),
            ),
        ),
    ),
);

‎בזמן הרצת האפליקציה‫,‬ ניתן לגשת לרכיב המטמון בעזרת Yii::app()-»cache‫.‬

Yii מספקת רכיבי מטמון שונים אשר מאפשרים שמירה של תוכן במטמון במדיות שונות‫.‬ ‎לדוגמא‫,‬ רכיב ה CMemCache משתמשת בתוסף של PHP בשם memcache כדי להשתמש בזכרון כמדית שמירת המטמון‫; ‬הרכיב CApcCache משתמש בתוסף ה PHP בשם APC‫;‬ ‎ורכיב CDbCache שומר את המטמון במסד הנתונים‫.‬ ‎להלן סיכום של רכיבי המטמון הניתנים לשימוש ב Yii‫:‬

  • CMemCache משתמש בתוסף של PHP בשם memcache.

  • CApcCache משתמש בתוסף של PHP בשם APC.

  • CXCache משתמש בתוסף של PHP בשם XCache. הערה, רכיב זה קיים מגרסאות 1.0.1 ומעלה.

  • CEAcceleratorCache משתמש בתוסף של PHP בשם EAccelerator.

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

  • CZendDataCache משתמש ברכיב של PHP בשם Zend Data Cache בתור המדיה לשמירה. הערה, רכיב זה קיים מגרסא 1.0.4 ומעלה.

  • CFileCache משתמש בקבצים כדי לאחסן את התוכן השמור במטמון. זה מתאים במיוחד כדי לשמור חלקים גדולים של תוכן (כמו לדוגמא עמודים שלמים). הערה, רכיב זה קיים מגרסא 1.0.6 ומעלה.

  • CDummyCache מייצג רכיב מטמון דמה אשר לא מאחסן ולא שומר כלום במטמון. המטרה של רכיב זה היא לפשט את הקוד שדורש לבדוק אם מטמון מסויים קיים. לדוגמא, במהלך פיתוח או במידה והשרת לא תומך באותו רכיב מטמון שרוצים להשתמש, אנו יכולים להשתמש ברכיב מטמון זה. כשרכיב המטמון יהיה קיים ופעיל, ניתן יהיה להחליף לאותו רכיב מטמון בקלות. בשני המקרים, אנו נשתמש באותו הקוד Yii::app()-»cache-»get($key) כדי לנסות ולקבל פיסת מידע מבלי לחשוש במידה ו Yii::app()-»cache הוא null. רכיב זה קיים מגרסא 1.0.5 ומעלה.

» Tip|טיפ: מאחר וכל אותם רכיבי מטמון יורשים מאותה מחלקה בסיסית CCache ‫,‬ ניתן להחליף‫ את סוג רכיב המטמון ללא שום שינוי בקוד היוצר וקורא את המטמון.‬

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

‎בתתי נושאים הבאים‫,‬ אנו נרחיב על אופן השימוש ברכיבי המטמון השונים‫.‬

» Note|הערה: כברירת מחדל‫,‬ מטמון הוא מדיום שמירה לא אמין‫.‬ הוא לא מוודא את קיומו של התוכן במטמון‫ גם אם זמנו לא עבר.‬ ‎‫לכן, רצוי לא להשתמש במטמון כמדיום שמירה קבוע (לדוגמא, לא להשתמש במטמון לשמירת מידע אודות המשתמש המחובר).‬

«div class="revision"»$Id: caching.overview.txt 2005 2010-03-04 22:42:32Z qiang.xue $«/div»

Be the first person to leave a comment

Please to leave your comment.