[Skip Header and Navigation] [Jump to Main Content]
בית
דרופל ישראל
הבית של קהילת מפתחי ומשתמשי דרופל בישראל

Primary Links

  • בית
  • דרופל בעברית
  • חדש באתר
  • מדריכים
  • תמיכה
  • לוח דרושים
  • נותני שירות בדרופל
  • אתרי דרופל ישראליים
  • שאלות נפוצות
  • ארועים והדרכות
בית » פורומים » ישן » פיתוח רכיבים

ירושה בכתיבת מודולים

miriam, ג', 17/05/2011 - 10:59

שלום,

רציתי לשאול- האם יש דרך לכתוב מודול בצורה שתאפשר ירושה שלו? יש בכלל מאפייני OO בדרופל?

וספציפית יותר- האם יש דרך מובנית לרשת סוג תוכן ולהרחיב אותו? ראיתי את http://drupal.org/project/inherit אבל זה לא מספק.. (גרסת DEV בלבד). הצורך בכך נראה לי ברור.

תודה רבה!!

‹ הוספת מנוע טיסות יבוא קובץ CSV עם תוכן בעברית ›
  • חברי האתר יכולים לשלוח תגובה - כניסה , הצטרפות.
תגים:
  • פיתוח רכיבים
  • פיתוח רכיבים
התמונה של yakoub

אין ירושה , אבל יש כל מיני

נכתב ע"י yakoub ביום ג', 17/05/2011 - 12:05.

אין ירושה , אבל יש כל מיני hook_alter
http://drupal.org/node/547518

yakoub abaya

  • חברי האתר יכולים לשלוח תגובה - כניסה , הצטרפות.
התמונה של אמיר סימן טוב

שלום מרים. למרות השם הטוב

נכתב ע"י אמיר סימן טוב ביום ג', 17/05/2011 - 12:32.

שלום מרים.

למרות השם הטוב שיצא לירושה, מדובר באחת הדרכים הגרועות להרחיב תפקוד של מחלקה. למעשה, זה אנטי-אובייקטלי בעליל, הורס את הכימוס (encapsulation) ושובר את ה-OCP.

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

את הרעיון קיבלתי בזמנו מליאור :)

אמיר

| פרקטיקול - בונים לך אתר דרופל | עזרה מידית בקבוצה שלנו בפייסבוק! | שיעורי דרופל דרך האינטרנט

  • חברי האתר יכולים לשלוח תגובה - כניסה , הצטרפות.
התמונה של yakoub

לא מסכים , ירושה זה מנגנון

נכתב ע"י yakoub ביום ג', 17/05/2011 - 20:06.

לא מסכים , ירושה זה מנגנון מצויין וזה הבסיס של תכנות מבוסס אובייקטים ברוב השפות הנפוצות
בנוסף הרבה מודולים כן משתמשים בירושה כמו views ו boxes
בדרופל 7 משתמשים בירושה למודולים של בדיקות ובהגדרת ישויות

מערכות אחרות כמו django ו rails מממשים עקרון module-view-controller , ושיטת המימוש מבוססת מחלקות וירושה
דרופל בעצם ממש רק view ו controller ולא ממש את ה module , לכן מפתח אתרים בדרופל יכול לממש רמת ה module במחלקות וירושה אם ירצה בכך , וזה בדיוק מה שמודול views עושה

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

yakoub abaya

  • חברי האתר יכולים לשלוח תגובה - כניסה , הצטרפות.
התמונה של אמיר סימן טוב

יעקב אני חולק עליך ואפרט

נכתב ע"י אמיר סימן טוב ביום ו', 20/05/2011 - 00:19.

יעקב אני חולק עליך ואפרט להלן.

ראשית, זה model ולא module. המודל הוא הדאטא ובוודאי רכיב views לא יכול לממש אותו.

הקונטרולר תפקידו לפקד על התצוגות ולסנכרן ביניהן אם צריך. זה בדרך כלל נתון לבעיות ולדעתי גם לא מתאים למערכות ניהול תוכן אלא ליישומים - שולחניים או ווביים - שדורשים אינטראקציה בתצוגה אחת ושתסתנכרן עם תצוגה אחרת. איפה בדיוק אתה צריך את זה באתר מבוסס תוכן? אגב, ג'נגו וריילז הם לא CMS לכן כלל אינן שייכות לדיון.

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

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

אמיר

| פרקטיקול - בונים לך אתר דרופל | עזרה מידית בקבוצה שלנו בפייסבוק! | שיעורי דרופל דרך האינטרנט

  • חברי האתר יכולים לשלוח תגובה - כניסה , הצטרפות.
התמונה של yakoub

נכון זה model ולא

נכתב ע"י yakoub ביום ו', 20/05/2011 - 07:18.

נכון זה model ולא module

המודל של views הוא בנית והרצת שאילתות sql , ה"דאטה" של views זה השאילתה וזה מה שנשמר לטבלה views_view ו views_display
המודל של views זה מערכת בניה שמאפשרת מודולים אחרים להרחיב אותה בשביל הטבלאות שהם מגדירים והדרך לעשות את זה בנוסף לשיטת ה hook של דרופל זה גם לכתוב מחלקת handler שיורשת מאחת המחלקות ש views מגדיר או אחרת מגדירה את המתודות ש views דורש

הדוגמה של views גם מראה שאין coupling , כי מודול flag למשל יכול לממש הלוגיקה שלו באופן עצמאי ולבנות טבלאות עם קשרים איך שרוצה בלי שיהיה קשור ל views בכל צורה , אפשר להשתמש ב מודול flag גם בלי שמודול views יהיה מותקן ובעתיד המודול flag יכול לפתח גרסה לדרופל 7 בלי שיהיה תלוי בפיתוח גרסה של views לדרופל 7
אם יופיע מודול חדש שמספק אלטרנתיבה ל views אז flag יוכל להתממשק איתו ואפילו יוותר על views לגמרי

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

אתה לימדתה עשר שנים ירושה , אני קיבלתי 102 ב "תכנות מונחה עצמים"
והשתמשתי במחלקות וירושה במהלך הפרויקטים שלי בהצלחה רבה בלי שום בעיות

השאלה מה מתוכנן לדרופל 8 בהקשר הזה ?
http://www.theexperiencenetwork.com/drupal-8-and-beyond

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

yakoub abaya

  • חברי האתר יכולים לשלוח תגובה - כניסה , הצטרפות.
התמונה של אמיר סימן טוב

יעקב, hook אינו ירושה אלא

נכתב ע"י אמיר סימן טוב ביום א', 22/05/2011 - 08:26.

יעקב, hook אינו ירושה אלא מדמה סוג של callback או delegate והוא מצוין - לא שובר את הכימוס ולכן עונה לדרישות OCP.

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

נקודות התממשקות הנן חובה בקוד מודולרי. בדרופל בחרו בשיטה של hook הנפלאה. אבל זו לא ירושה.

אמיר

| פרקטיקול - בונים לך אתר דרופל | עזרה מידית בקבוצה שלנו בפייסבוק! | שיעורי דרופל דרך האינטרנט

  • חברי האתר יכולים לשלוח תגובה - כניסה , הצטרפות.

איפה מתחילים ולאן ממשיכים?

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

להורדת דרופל בעבריתלשפות וגרסאות אחרות, Drupal.org

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

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

שלום אורח

כניסה|הצטרפות

כעת מחוברים 2 משתמשים מזוהים, ו-4 אורחים:
ami7878, גגה

yanivriv הוא החבר הכי חדש בקהילה!

דרופל ישראל בפייסבוק דרופל ישראל בטוויטר דרופל ישראל ב-LinkedIn

חדש בדיונים בפורום

  • התקנת דרופל מחדש |‏ yanivriv
  • הוספת סרגל פעולות ל-view |‏ til
  • האם דרופל תתאים למשימה? |‏ yanivriv
  • קורס / לימוד דרופל 7 |‏ talidvir
  • לא רואה עמוד ניהול |‏ hodspot
עוד בפורום

חדש בבלוגים

  • מדריך לבנייה ועיצוב של ניוזלטר... |‏ tom
  • ecommerce module |‏ avrilev
  • הסרת שיער בלייזר |‏ Alex Borodach
  • ערכת עיצוב חדשה FontFolio... |‏ ישראל
  • Mobile Drupal - סיכום הדרכה |‏ לבבי
עוד בבלוגים

אירועים והדרכות קרובות

אין פעילויות להצגה. יאללה, מי מארגן משהו?

ללוח האירועים המלא

חדש באתרים ישראלים

  • weisscarpetcleaning |‏ tzur
  • סרוולוג - חלקי מטוסים |‏ tzur
  • בייבי-ביורן ישראל |‏ tzur
  • טבעוני תוספי תזונה |‏ morantivo
  • עוגת הגבינה של ישראל - ישראל ה... |‏ zohar
עוד אתרים ישראלים
Powered by Drupal, an open source content management system
אירוח ופיתוח האתר באדיבות לינווייט - דרופל , אנדרואיד וקוד פתוח
עיצוב, קסמי css וערכת העיצוב טנדו - תום ביגלאייזן
שותף לדרך - אמנון לבב - ייעוץ משולב
דרופל ישראל הינה חלק מרשת הקנטינה
"כללי המשחק" ותנאי השימוש באתר
[Jump to Top] [Jump to Main Content]