ABA


"PHP בלי Framework, מה הדרך הנכונה ליצירת MVC?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10829 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10829
sza  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 26.4.02
12357 הודעות, 22 פידבק
   23:10   27.08.12   
אל הפורום  
  PHP בלי Framework, מה הדרך הנכונה ליצירת MVC?  
 
ערכתי לאחרונה בתאריך 27.08.12 בשעה 23:19 בברכה, sza
 

החלטתי שאני בונה את האפליקציה ללא פריימוורק, אני יודע שZendFramework2 לדוגמא, בנוי לגמרי בצורה של MVC. אבל אני מעדיף לעבוד בקוד טהור משלי. (אפילו שרבים מעירים לי שזו טעות שאני אצטער עליה בהמשך..)
בכל מקרה, יצרתי את העיצוב ושמרתי אותו כ showpage.php . במקום שצריך להגיע התוכן יצרתי include לקובץ שמגיע כמשתנה get (אני יודע שיש לזה בעיות אבטחה ואני עובד על זה עם ביטויים רגולריים ע"מ לוודא ששם הקובץ שנכנס הוא באמת הקובץ שאני רוצה לראות..)
בכל מקרה, את העיצוב הפרדתי. עכשיו אני רוצה להפריד את התוכן מה"מנוע" של המערכת.
אז יצרתי תיקיה modules ובתוכה יש קובץ users.php. בתוך הקובץ יש קלאס עם כל הפונקציות שקשורות למשתמשים (הוספת משתמש, מחיקת משתמש, מציאת משתמש ע"פ ID וכו'....) בתיקית הroot הוספתי קובץ שמקבל את המודול המבוקש בinclude ומוציא את הפלט בהתאם, וזה הקובץ שיתקבל בget של showpage.php. בקיצור, אני לא יודע אם הדרך שאני עובד חכמה והייתי מעוניין לשמוע מאנשים בעלי נסיון מה המבנה הנכון והפשוט שיתן לי תחזוקה קלה בעתיד..
מקווה שהבנתם את הבלאגן שעשיתי, ואשמח לעצות, המלצות, או סתם להסבר לביצוע מעשי של מודל MVC ללא פריימוורק.

--
צחי.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תשמע, הרעיון בבסיסו זה מה שדיברת עליו... CaTz 30.08.12 01:17 1
     תודה רבה! sza  30.08.12 01:28 2
         נסה את http://codeigniter.com/ Frozen_Prince  04.09.12 15:52 3
  תראה אני לא ממליץ לכתוב תשתית כזאת לבד, יוחאי 05.09.12 21:06 4

       
CaTz
חבר מתאריך 2.10.04
14537 הודעות
   01:17   30.08.12   
אל הפורום  
  1. תשמע, הרעיון בבסיסו זה מה שדיברת עליו...  
בתגובה להודעה מספר 0
 
   אני פיתחתי לאחרונה גם תשתית MVC, לקחתי איזה מאמר שקראתי וזה שימש אותי כבסיס בסיס...אבל הנחה אותי... מאוד.

זה הקישור:
http://www.phpro.org/tutorials/Model-View-Controller-MVC.html#3

אצלי היו דברים מוכנים שהכנתי ומבנה מאוד מוגדר שהיה מוכן מתשתי אחרת
מה שעשיתי זה שידרגתי את התשתית למודל MVC, (או כמו שהכותב קורא לזה, ואני מתחבר אליו CAV, כי לא באמת רואה למה צריך MODEL...)

מקווה שזה יעזור לך.

ואם יש שאלות ספציפיות יותר אשמח לעזור.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sza  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 26.4.02
12357 הודעות, 22 פידבק
   01:28   30.08.12   
אל הפורום  
  2. תודה רבה!  
בתגובה להודעה מספר 1
 
ניסיתי בהתחלה לעבוד עם ZendSkeleton ולא הבנתי מי נגד מי... אעבור על המדריך שהבאת, מקווה שאצליח להסתדר. בינתיים אני באמצע פרוייקט שבניתי ללא MVC, את הפרוייקט הבא אני כבר רוצה להתחיל בצורה הזו..

תודה רבה!


--
צחי.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Frozen_Prince 
חבר מתאריך 11.5.06
5341 הודעות
   15:52   04.09.12   
אל הפורום  
  3. נסה את http://codeigniter.com/  
בתגובה להודעה מספר 2
 
מומלצת ביותר


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
יוחאי
חבר מתאריך 30.12.15
163 הודעות
   21:06   05.09.12   
אל הפורום  
  4. תראה אני לא ממליץ לכתוב תשתית כזאת לבד,  
בתגובה להודעה מספר 0
 
   במיוחד בגלל שכבר קיימות המון תשתיות מעולות, שעוברות QA מקצועי, וכתובות לתפארת, כן זה דורש להתרגל למשהו חדש, אבל ברגע שמבינים את הקונספט, לא יודעים איפה לקבור את הראש שעבדנו בצורה כל כך פרימיטיבית לפני....

אבל בכו"א אם אתה רוצה לנסות לבנות בשביל הניסיון האישי שלך, אני אעזור בכיף.

קודם כל הייתי ממליץ לך להשתמש ב2 ספריות מצויינות בתוך התשתית שלך:

1.Doctrine - יש המון ספריות לעבודה מול הDB זאת פשוט עושה עבודה מצויינת, באמת הORM הכי טוב שעבדתי איתו, אין שום בעיה לבצע מעבר ממנוע DB אחד לאחר, כמובן שמלבד שינוי פרטי ההתחברות לDB אין צורך לשנות שום דבר, התשתית נותנת עטיפה אחידה לכל המנועים הנתמכים בה.

2.Smarty - מנוע לרנדור תבניות, פשוט, מוכר, מהיר, אין יותר מדי מה להוסיף לגביו.


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

קודם כל אתה צריך להבין את התקשורת הבסיסית בין model,controller,view

המודל והתבנית שלך לעולם לא ייתקשרו בניהם באופן ישיר.
הקונטרולר מעביר/מייבא מידע מהmodel ובמידת הצורך מעביר חלק או את כל המידע אל הview

עכשיו לmodel תמיד נוח לייצר איזה base class עם פונקציות בסיסיות של חיפוש נתונים, אתה תמצא את זה ברוב התשתיות המוכרות (שאגב לא יזיק להסתכל על הקוד שלהם קצת)

גם לקונטרולר שלך מומלץ לייצר Base Class שתכיל בתוכה כל מיני routing configuration או כל פונקציה/מידע שכל הקונטרולרים יכולים להשתמש בו.


אני מניח שבמקום לחפור לך אתה יכול להתחיל להתקדם, ואם יש לך שאלות אז אנחנו כאן.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net