הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   איך פועלת מערכת טמפלטים (https://hosts.co.il/forums/showthread.php?t=72499)

intercooler3819 09-03-09 14:53

חח לא נפלתי עליך :-)
דווקא בפוסט שלך שקישרת אליו סימנת בסוף שמה שאני מציע יותר יעיל (או שזה בפוסט אחר אצלך באתר חח)

ממ תראה בהנחה שאתה הולך לכתוב למערכת בPHP אז אין סיבה שלא להשתמש בRAW PHP בטמפלטים

אני פשוט מניסון שלי ממש התחרפנתי כשהייתי צריך ללמוד את הסינטקס מערכות טמפלטים מחדש, זה מעיק ולחינם בדרך כלל (פעם אחת זה היה כ'כ קיצוני שהחלטתי להמיר את זה לRAW חח)

daMn 09-03-09 15:14

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

AlmogBaku 11-03-09 20:23

ואדים המערכת שלך מסובכת מידי.

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

dabi 11-03-09 20:28

לא הבנתי חברים
בתור מתכנת מה לעשות
אני משתמש בדבר כזה
http://massassi.com/bTemplate/
להפריד ב PHP ל HTML זה די קליל אני מאמין שכל מתכנת אחרי 5 דקות של לימוד יבין
זה לא טוב? אז מה ההכי טוב לעשות שהיה מסודר
תודה

daMn 11-03-09 20:46

ציטוט:

נכתב במקור על ידי dabi (פרסם 702464)
לא הבנתי חברים
בתור מתכנת מה לעשות
אני משתמש בדבר כזה
http://massassi.com/bTemplate/
להפריד ב PHP ל HTML זה די קליל אני מאמין שכל מתכנת אחרי 5 דקות של לימוד יבין
זה לא טוב? אז מה ההכי טוב לעשות שהיה מסודר
תודה

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

vadimg88 11-03-09 20:46

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

זה פשוט מאוד, קודם כל תשאל לאיזה קהל יעד המערכת הולכת להיות מכוונת אליו.

אם קהל היעד הוא כלל עולמי/ארצי שזה אומר שכל משתמש יוכל להוריד את זה ולהשתמש בזה, התשובה היא חד משמעית! מערכת טמפלייט ללא ספק!
אם קהל היעד הוא אתה או מתכנת אחר או משהו פנימי בחברה או בכלל משתמשים שיש להם ניסיון עבודה עם PHP אז גם כאן התשובה היא חד משמעית! קוד PHP רגיל בתוך קבצי HTML , ללא שום EVAL.

פשוט מאוד תצור קבצי .phtml תגדיר את השרת שיקרא קבצים עם סיומת זו כקבצי PHP רגילים וכל ה HTML יהיה שם ותוך כדי תוכל לעשות

<?php echo $something; ?>

או בשיטה הקצרה:

<?=$something;?>

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

מכאן זה שיקול דעת של כל אחד מה יותר עדיף לו לעשות.

daMn 11-03-09 20:49

ציטוט:

נכתב במקור על ידי vadimg88 (פרסם 702467)
התשובה היא פשוטה. ומה שאני הולך לומר לך זה מניסיון של שנים, הרבה טעויות במהלך הזמן ופתרונם במהלך שנותי בתור מתכנת.

זה פשוט מאוד, קודם כל תשאל לאיזה קהל יעד המערכת הולכת להיות מכוונת אליו.

אם קהל היעד הוא כלל עולמי/ארצי שזה אומר שכל משתמש יוכל להוריד את זה ולהשתמש בזה, התשובה היא חד משמעית! מערכת טמפלייט ללא ספק!
אם קהל היעד הוא אתה או מתכנת אחר או משהו פנימי בחברה או בכלל משתמשים שיש להם ניסיון עבודה עם PHP אז גם כאן התשובה היא חד משמעית! קוד PHP רגיל בתוך קבצי HTML , ללא שום EVAL.

פשוט מאוד תצור קבצי .phtml תגדיר את השרת שיקרא קבצים עם סיומת זו כקבצי PHP רגילים וכל ה HTML יהיה שם ותוך כדי תוכל לעשות

<?php echo $something; ?>

או בשיטה הקצרה:

<?=$something;?>

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

מכאן זה שיקול דעת של כל אחד מה יותר עדיף לו לעשות.

מוסכם, השאלה שנשאלת היא שאם אני מתכנת בתצורת תגי PHP בתוך קוד HTML אני משתמש בEVAL או באיזשהו אינקלוד על מנת להדפיס בסופו של דבר את התבנית?

vadimg88 11-03-09 20:54

כפי שכבר אמרתי. לא. תשמור את הקבצים בסיומת לדוגמא .phtml ואז תגדיר בשרת שקבצים בסיומת .phtml הם בידיוק כמו קבצים בסיומת .php ואז השרת יעבד אותם בצורת קוד PHP.

daMn 11-03-09 20:59

ציטוט:

נכתב במקור על ידי vadimg88 (פרסם 702470)
כפי שכבר אמרתי. לא. תשמור את הקבצים בסיומת לדוגמא .phtml ואז תגדיר בשרת שקבצים בסיומת .phtml הם בידיוק כמו קבצים בסיומת .php ואז השרת יעבד אותם בצורת קוד PHP.

לא הבנת, הכוונה הייתה בעת ההדפסה הסופית של האתר.
ניקח לדוגמא users.phtml , האם אני קורא לו דרך require או שאני עושה לו eval?

vadimg88 11-03-09 21:07

require כמובן. אפשר גם לכתוב פונקציה שתדפיס קובץ תצוגה כלשהו ולהעביר אליה פרמטרים בנוסף. ככה שיהיה ניתן לדוגמא להגדיר פרמטר בקוד ה PHP שלך בשם var$ ואז בקובץ הטמפלייט יהיה ניתן להשתמש בו.


כל הזמנים הם GMT +2. הזמן כעת הוא 18:23.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ