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

הוסטס - פורום אחסון האתרים הגדול בישראל (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)

possible 08-03-09 09:46

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

תודה לעוזרים.

vadimg88 08-03-09 11:54

http://www.vadimg.co.il/2009/02/08/%...B%D7%95%D7%9C/

possible 08-03-09 12:02

אחלה תודה הבנתי :P
עכשיו צריך להכין לעצמי CLASS כזה :P

נ.ב אחלה בלוג

intercooler3819 08-03-09 16:37

בזבוז זמן לכתוב מערכת טמפלטים

אקסטרה זמני עיבוד וטרנזלציה של הקוד

עדיף לבצע דבר כזה

בהנחה שיש לך את הקוד של הטמפלט במשתנה כלשהו לבצע
PHP קוד:

eval("?>" . $string . "<?php");

הקוד יורץ כמו שצריך בין הקוד PHP שלך
וגם תוכל לשלב PHP לכל דבר בתור הקוד שלך

הייתי ממליץ לעשות OUTPUT BUFFERING בנוסף ולהדפיס בסוף

בהצלחה

אדיר 08-03-09 21:48

ציטוט:

נכתב במקור על ידי nitsanbn (פרסם 701865)
בזבוז זמן לכתוב מערכת טמפלטים

אקסטרה זמני עיבוד וטרנזלציה של הקוד

עדיף לבצע דבר כזה

בהנחה שיש לך את הקוד של הטמפלט במשתנה כלשהו לבצע
PHP קוד:

eval("?>" . $string . "<?php");

הקוד יורץ כמו שצריך בין הקוד PHP שלך
וגם תוכל לשלב PHP לכל דבר בתור הקוד שלך

הייתי ממליץ לעשות OUTPUT BUFFERING בנוסף ולהדפיס בסוף

בהצלחה

אתה טוען ששימוש ב eval כמו שאתה מציע, עדיף של שימוש בתבניות?

מה גם שהפונקצייה eval חסומה בהרבה שרתים מטעמי אבטחה, חשבת על זה?

daMn 08-03-09 22:01

ציטוט:

נכתב במקור על ידי xPerfection (פרסם 701909)
אתה טוען ששימוש ב eval כמו שאתה מציע, עדיף של שימוש בתבניות?

מה גם שהפונקצייה eval חסומה בהרבה שרתים מטעמי אבטחה, חשבת על זה?

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

אדיר 08-03-09 22:27

ציטוט:

נכתב במקור על ידי daMn (פרסם 701914)
זה שהיא חסומה לא אמור להיות אישיו, זה שיש בעיות אבטחה רציניות ועוד בדרך שאתה עשית את זה, מילא הייתה עובד בהכנסה למשתנה כמו MYBB, אז כן עדיף לבצע בדרכים שואדים דיבר עליהם מאשר הדרך שאתה הצעת.

שנסכם את זה במילה אחת?

-!- לא -!-

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

intercooler3819 09-03-09 14:09

אתם כולכם קופצים בלי לחשוב אחרי ואדים

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

בשיטה שלי יש לבצע:
* טעינה
* שמירה בבאפר או הדפסה

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

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

ואין כאן שום פגם באבטחה
הקוד PHP שמורץ עם הEVAL זה קוד שאתם כתבתם
אם הוא לא מאובטח זה בעיה שלכם וזה לא שום חור אבטחה

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

dabi 09-03-09 14:37

ניצן לא הבנתי אותך
אתה מעודד שימוש בהפרדת הקוד PHP מ HTML אם לא תתן דוגמא בבקשה לדף עם שילוב של PHP ו HTML

vadimg88 09-03-09 14:49

ציטוט:

אתם כולכם קופצים בלי לחשוב אחרי ואדים
אני מבין שנפלת עליי ואתה לא מרפה... ;)

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

<if>
</if>

מאשר

<?php if(): ?>

<?php endif;?

זה גם מקצר לו את הקוד וגם יותר קריא.

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


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

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