1. העיצוב לא מופרד מהתכנות, וזה אחד מהדברים הכי חשובים בMVC.
2. עם templates אין לי שום אילוץ לגבי התכנות שלי. אצלך אני חייב לדאוג שכל עמוד יכיל את כל המשתנים המתאימים או הפונקציות המתאימות.
3. אין לי שליטה על הHTML - מה שאני כותב יוצא, בעוד שעם Template מתאפשרת הרבה יותר שליטה. למשל שדות אופציונליים, שדות שחוזרים על עצמם, אזורים, ועוד. ואם אני רוצה להחליף במהלך התוכנית את כל הHTML לדף אחר לגמרי? כמובן שאפשר לעשות את זה גם בדרך שלך, אבל עם כל אפשרות נוספת דולף יותר ויותר קוד php לעיצוב.
ציטוט:
אני רוצה לבנות את המערכת לפי הרעיון של MVC, למערכת הולכים להיות המון המון מודולים..
אני פשוט לא מבין, איך איך אני מיישים את זה?
|
המון המון מודולים נשמע מגניב, אבל בטח כמו ששמת לב, זה יותר מסובך ממה שזה נשמע.
כדי לתכנן את המערכת נכון, את חייב קודם כל לדעת מה המערכת שלך עושה, וזה אחד מהדברים שנראה לי שחסר אצלך, כי חוץ מזה שהיא לפי MVC ושהיא מודולרית לא שמעתי עליה כלום.
אחרי שיש לך מטרה, אתה חייב להחליט איזה חלק בה הוא מודולרי, ואיזה חלק נשאר קבוע. זה טבעי לרצות שהכל יהיה מודולרי, אבל אי אפשר לעשות הכל מודולרי, כי חייב להיות חלק "מעוגן" במערכת. בנוסף זה לא תמיד נכון, כי הרבה פעמים מודולריות באה על חשבון המשתמש מבחינת יעילות, שגיאות וכך הלאה. לא צריך לרצות שהכל יהיה מודולרי. צריך לקבוע מראש מה יהיה מודול ועד איזה רמה בתוכנית שלך יש מודולים כדי שיהיה איזון בין יעילות למודולריות.
בקשר לשלבים שאתה מציע:
אין דרך נכונה ודרך לא נכונה. זה תלוי במבנה המערכת שלך. אבל כמה דברים שכדאי שתזכור בזמן שאתה מתכנן/בונה את המערכת זה שלא באמת צריכה להיות מחלקה בשם Model, או מחלקה בשם Controller, אלא רק מישהו שימלא את התפקיד הזה.
עוד דבר - מה שיותר חשוב במודולים זה האי-תלות שלהם אחד ביחס לשני, אבל לא ביחס למערכת, ככה שמודולים צריכים להשתמש כמה שפחות אחד בשני, ולחלוק כמה שיותר דברים משותפים, למשל מחלקת template אחת או מחלקת db אחת.
זאת לא המלצה, זו רק דוגמא, והמבנה הזה לא בהכרח מתאים לך.
לפני שאתה מתחיל לתכנן, מומלץ שגם תחליט על טיב הקשר בין המודולים. אם אתה רוצה שיהיה ביניהם קשר כלשהו, אתה יכול לחפש בגוגל על Mediator pattern או observer pattern - אלה design patterns שמשתמשות בדרכים שונות ליצור קשרים עקיפים בין חלקים שונים בתוכנה כדי למנוע coupling (תלות בין החלקים השונים).