מודל-תצוגה-קונטרולר (MVC) =========================== Yii מאמצת את השימוש בדפוס של מודל-תצוגה-קונטרולר (MVC) אשר משתמשים בה לרוב בשפות פיתוח. MVC נועד להפרדת הקוד מהעיצוב כדי שלמפתחים יהיה יותר קל לשנות חלק מסויים בקוד מבלי להשפיע על חלק אחר. ב MVC, המודל מייצג את המידע (התוכן) והלוגיקה; התצוגה מכיל אלמנטים של ממשקי המשתמש כמו טקסט, טפסים; והקונטרולר מנהל את התקשורת בין המודל לתצוגה. בנוסף ל MVC, Yii מציגה קונטרולר-ראשי, הנקרא אפליקציה, המייצג את הנתונים בהקשר של עיבוד בקשת המשתמש. אפליקציה מעבדת את בקשת המשתמש ומנתבת אותה לקונטרולר המתאים להמשך הניהול והעיבוד. הדיאגרמה הבאה מציגה את המבנה הסטטי של אפליקציה ב Yii: ![מבנה סטטי של אפליקציה ב Yii](structure.png) רצף עבודה אופייני ------------------ הדיאגרמה הבאה מציגה את רצף העבודה האופייני של אפליקצית Yii כשהיא מנהלת בקשת משתמש: ![רצף עבודה אופייני לאפליקציה ב Yii](flow.png) 1. משתמש מבצע בקשה לקישור `http://www.example.com/index.php?r=post/show&id=1` ושרת הווב מטפל בבקשה ומריץ את קובץ הכניסה הראשי `index.php`. 2. קובץ הכניסה הראשי יוצר אובייקט של [האפליקציה](/doc/guide/basics.application) ומריץ אותו. 3. האפליקציה מקבלת את המידע המפורט אודות בקשת המשתמש [מרכיב האפליקציה](/doc/guide/basics.application#application-component) בשם `request`. 4. האפליקציה מחליטה את [הקונטרולר](/doc/guide/basics.controller) [והפעולה](/doc/guide/basics.controller#action) שצריך להריץ בעזרת רכיב אפליקציה בשם `urlManager`. בדוגמא זו, הקונטרולר הוא `post` אשר מנותב אל המחלקה `PostController`; והפעולה היא `show` אשר פעולתה מוגדרת בקונטרולר. 5. האפליקציה יוצרת אובייקט של אותו קונטרולר להמשך הטיפול בבקשת המשתמש. הקונטרולר מחליט שהפעולה `show` מנותבת למתודה במחלקה בשם `actionShow`. לאחר מכן היא יוצרת ומריצה פילטרים (לדוגמא הרשאות גישה, בדיקות) המצורפים לפעולה זו. הפעולה רצה אם היא עוברת את תהליך הפילטרים. 6. הפעולה קוראת [מודל](/doc/guide/basics.model) של `Post` אשר מספר המזהה היחודי שלו הוא `1` מתוך מסד הנתונים. 7. הפעולה מגישה קובץ [תצוגה](/doc/guide/basics.view) בשם `show` עם המודל `Post`. 8. קובץ התצוגה קורא ומציג את המאפיינים של מודל ה `Post`. 9. קובץ התצוגה מריץ כמה [וידג'טים](/doc/guide/basics.view#widget). 10. התוכן הסופי של קבצי התצוגה נכנס אל תוך [תבנית](/doc/guide/basics.view#layout). 11. הפעולה מסיימת את הגשת קבצי התצוגה ומציגה את התוכן למשתמש. «div class="revision"»$Id: basics.mvc.txt 1622 2009-12-26 20:56:05Z qiang.xue $«/div»