0 follower

שימוש בתחביר תצוגה נוסף

Yii מאפשרת למפתחים להשתמש בתחביר התצוגה המועדף עליהם (לדוגמא Prado, Smarty וכדומה) בכדי לכתוב את קבצי התצוגה של הקונטרולר או הוידג'ט. זה נעשה על ידי כתיבת והתקנת רכיב אפליקציה viewRenderer. מעבד התצוגה (הרנדרר) מיירט את הקריאות של CBaseController::renderFile, מקמפל את קובץ התצוגה עם תחביר תצוגה מותאם אישית, ומציג (מרנדרר) את התוצאה המקומפלת.

» Info|מידע: מומלץ להשתמש בתחביר תצוגה מותאם אישית רק כאשר כותבים קבצי תצוגה שסביר להניח שלא יעשה בהם שימוש חוזר. אחרת, משתמשים אשר משתמשים בקבצי התצוגה יהיו מוכרחים לעבוד עם אותו תחביר תצוגה באפליקציות שלהם.

בחלק הבא, אנו מציגים כיצד להשתמש CPradoViewRenderer, מעבד תצוגה (רנדרר) אשר מאפשר למפתחים להשתמש בתחביר תצוגה הדומה לזה שנמצא ב ‎Prado. עבור מפתחים הרוצים לכתוב את מעבד התצוגה שלהם, ניתן להשתמש ב CPradoViewRenderer כמחלקת עזר.

1. שימש ב CPradoViewRenderer

בכדי להשתמש ב CPradoViewRenderer, אנו צריכים להגדיר את האפליקציה בצורה הבאה:

return array(
    'components'=»array(
        ......,
        'viewRenderer'=»array(
            'class'=»'CPradoViewRenderer',
        ),
    ),
);

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

» Tip|טיפ: למרות ש CPradoViewRenderer מציג בעיקר תגיות תחביר חדשות עבור קבצי התצוגה בכדי לפשט ולזרז את כתיבתם, ניתן עדיין להשתמש בקוד PHP בתוך קבצי התצוגה כפי שבדרך כלל נעשה.

בחלק הבא, אנו נציג את התגיות החדשות הנתמכות על ידי CPradoViewRenderer.

תגיות PHP קצרות

תגיות PHP קצרות הם קיצורי דרך לכתיבת ביטויים ב PHP בתוך קבצי התצוגה. התגית

«%= expression %»

מתורגמת ל

«?php echo expression ?»

בזמן שהתגית

«% statement %»

מתורגמת ל

«?php statement ?»

לדוגמא,

«%= CHtml::textField($name,'value'); %»
«% foreach($models as $model): %»

מתורגם לקוד ה PHP הבא

«?php echo CHtml::textField($name,'value'); ?»
«?php foreach($models as $model): ?»

תגיות רכיבים

תגיות רכיבים נועדו לשימוש בעיקר בכדי להכניס וידג'ט לקובץ התצוגה. תגית זו משתמשת בתחביר הבא:

«com:WidgetClass property1=value1 property2=value2 ...»
    // תוכן עבור הוידג'ט
«/com:WidgetClass»
 
// וידג'ט ללא תוכן
«com:WidgetClass property1=value1 property2=value2 .../»

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

«com:CCaptcha captchaAction="captcha" showRefreshButton={false} /»

יתורגם לקוד ה PHP הבא

«?php $this-»widget('CCaptcha', array(
    'captchaAction'=»'captcha',
    'showRefreshButton'=»false)); ?»

» Note|הערה: הערך עבור ה מוגדר כ {false} במקום "false" מאחר והשני מעיד על סטרינג במקום ערך בוליאני.

תגיות מטמון

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

«cache:fragmentID property1=value1 property2=value2 ...»
    // content being cached
«/cache:fragmentID »

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

«cache:profile duration={3600}»
    // פרופיל משתמש כאן
«/cache:profile »

יתורגם לקוד ה PHP הבא

«?php if($this-»cache('profile', array('duration'=»3600))): ?»
    // פרופיל משתמש כאן
«?php $this-»endCache(); endif; ?»

תגיות קליפ

כמו בתגיות המטמון, תגיות קליפ הינם קיצור דרך לקריאה של CBaseController::beginClip ו CBaseController::endClip בקובץ תצוגה. התחביר שלהם הוא כפי שמוצג בדוגמא הבאה,

«clip:clipID»
    // תוכן הקליפ
«/clip:clipID »

כש clipID הוא מזהה יחודי עבור תוכן הקליפ. תגיות הקליפ יתורגמו לקוד ה PHP הבא

«?php $this-»beginClip('clipID'); ?»
    // תוכן הקליפ
«?php $this-»endClip(); ?»

תגיות הערות

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

«!---
הערות שלא יוצגו למשתמשי הקצה
---»

2. ערבוב פורמט תבניות

החל מגרסא 1.1.2, ניתן לערבב שימוש של כמה תחבירי תבניות עם תחביר PHP רגיל. בכדי לעשות זאת, המאפיין CViewRenderer::fileExtension של מעבד התבניות המותקן כרגע צריך להיות מוגדר עם ערך השונה מ php.. לדוגמא, אם המאפיין מוגדר לערך tpl., אז כל קובץ תצוגה המסתיים ב tpl. יועבד ויוצג בעזרת מעבד התבניות המותקן, בזמן שכל שאר קבצי התצוגה המסתיימים עם php. יקבלו יחס של קבצי PHP רגילים.

Found a typo or you think this page needs improvement?
Edit it on github !