המלצה למימוש VIEW ב MVC - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

המלצה למימוש VIEW ב MVC


MasterDK

Recommended Posts

היי, אני כותב מערכת MVC ודיי תקוע עם מימוש ה view.

אני עובד עם xsl בתור template engine ופרט ל xhtml אני מעוניין גם לפלוט את התוכן כ json וכ xml.

אם חושבים על זה בצורה ישירה, אין לי בעיה ליצור מחלקה של view וממנה להוריש את שלושת המחלקות הנ"ל כאשר כל אחת תביא פונקציונליות שתלויה ב content type שלי. אבל! וזה אבל גדול, נחשוב רגע על שרת REST. אין לי רצון לשכתב את הקוד (כי הוא כבר כתוב ועושה את העבודה) אבל שרת REST יכול לספק את המידע בכל מיני אופנים בניגוד לאפליקצית web שמספקת נניח רק xhtml ו json בקריאות ajax, אפליקצת ה REST תחזיר את התוכן לפי מה שמבקשים ממנה, כלומר:

http://api.example.com/users/13.json

מחזיר את המידע כ json, ולעומתו

http://api.example.com/users/13.xml

מחזיר את המידע כ xml, ויהיה טיפשי לממש שתי מתודות נניח


get_users_as_json($id)
get_users_as_xml($id);

אלה יותר חכם ליצור View factory שמחזיר את ה view הנכון, ואז לעבוד איתו בלי בכלל לדעת באיזה צורה התוכן יצא.

מה שאני מנסה לשאול (ודיי לא מצליח) זה איך לממש view ג'נרי שיוכל לפלוט לי כל סוג של מידע (נסתפק לפחות ב 3 שלמעלה).

כרגע יש לי view עם מתודה abstract אחת שהמטרה שלה היא לייצר את התוכן, וכל view אחר כגון JsonView יורש ממנה וממש את המתודה (במקרה הזה זה פשוט return json_encode($this->data).

המשותף לכולם שהם עובדים עם מערך. כלומר זה נראה ככה:


$view = new Xhtml/Json/XmlView();
$data = array();
$data['lang']='en';
$data['current_user'] = CurrentUser::get();
//get some more info from DB
$view->set_data($data);
echo $view->render();

כאשר מה שקורה בתוך ה render זה או json_encode עבור json, או array to xml אם XML, או array to xml + xslprocessor אם זה XHTML.

ואני לא חושב שלעובד עם מערך זה נוח.

אשמח להצעות.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...