Smarty

צילום מסך תוכנה:
Smarty
פרטי תוכנה:
גרסה: 3.1.5
טען תאריך: 11 May 15
רשיון: ללא תשלום
פופולריות: 1

Rating: nan/5 (Total Votes: 0)

החכם הוא לא ממש "מנוע תבנית", זה יהיה מתואר בצורה מדויקת יותר כ" תבנית / מצגת מסגרת. " כלומר, זה מספק את מעצב מתכנת ותבנית עם שפע של כלים לאוטומציה של משימות עסקו בדרך כלל עם בשכבת המצגת של יישום. אני מדגיש את מילת המסגרת כי החכם הוא לא מנוע תבנית החלפת תג פשוט. למרות שניתן להשתמש בו למטרה כל כך פשוט, המיקוד שלה הוא בפיתוח ופריסה של היישומים שלך מהירים ונטול כאבים, תוך שמירה על ביצועים גבוהים, יכולת הרחבה, אבטחה וצמיחה עתידית.
אז נכון החכם בשבילך? מה זה מסתכם הוא שימוש בכלי הנכון למשימה. אם אתה רוצה החלפה משתנה פשוטה, ייתכן שתרצה להסתכל על משהו פשוט או אפילו להתגלגל משלך. אם אתה רוצה מסגרת בניית תבנית חזקה עם כלים רבים כדי לסייע לך כבקשתך מתפתחת אל העתיד, החכם עשוי בחירה טובה.
מדוע להשתמש בו?
אחת המטרות העיקרית של עיצוב Smartys הוא להקל על ההפרדה של קוד יישום ממצגת. בדרך כלל, את קוד היישום מכיל את הלוגיקה העסקית של היישום שלך, שנכתב ונשמר בקוד PHP. קוד זה מתוחזק על ידי מתכנתים. המצגת היא הדרך התוכן שלך מוצג למשתמש הקצה, אשר נכתב ונשמר בקבצי תבנית. התבניות נשמרות על ידי מעצבי תבנית.
בפונקציה הבסיסית ביותר שלה, את קוד היישום אוסף תוכן, מקצה אותו למנוע התבנית ומציגה אותו. התוכן יכול להיות משהו כמו הכותרת, התגים, הסופר וגוף של כתבה בעיתון. קוד היישום אין דאגה כיצד תוכן זה יוצג בתבנית. מעצב התבנית הוא אחראי למצגת. הם לערוך את קבצי התבנית, הוספת סימון ולהבאתו לסיום. זה בדרך כלל כרוך בדברים כמו תגי HTML, גיליונות סגנון מדורג וכלים אחרים המסופקים על ידי מנוע התבנית.
פרדיגמה זו משרתת מספר מטרות:
) מעצבים לא יכולים לשבור את קוד יישום. הם יכולים להתעסק עם התבניות כולם רוצים, אבל הקוד נשאר ללא פגע. הקוד יהיה הדוק יותר, בטוח יותר וקל יותר לתחזוקה.
) שגיאות בתבניות מוגבלות לשגרת הטיפול בשגיאות Smartys, מה שהופך אותם כפשוט ואינטואיטיבית ככל האפשר למעצב.
) עם מצגת על שכבה משלו, מעצבים יכולים לשנות או לעצב מחדש לחלוטין את זה מהתחלה, כל זאת ללא התערבות מהמתכנת.
מתכנתים) לא להתעסק עם תבניות. הם יכולים ללכת על שמירת קוד היישום, שינוי תוכן הדרך הוא רכש, מה שהופך את הכללים עסקיים חדשים, וכו 'מבלי להפריע את שכבת המצגת.
תבניות) הן ייצוג קרוב של מה הפלט הסופי יהיה, שהוא גישה אינטואיטיבית. לא אכפת לי מעצבים כיצד התוכן הגיע לתבנית. אם יש לך נתונים חיצוניים בתבנית כמו משפט SQL, זה מפותח את הסיכון של שבירת קוד יישום על ידי מחיקה או שינוי בשוגג על ידי המעצב.
) אתה לא פותח את השרת שלך לביצוע של קוד PHP השרירותי. יש החכם תכונות אבטחה רבות שנבנו במעצבים כל כך לא תפר ביטחון, אם מכוון או מקרי. הם יכולים לעשות רק את מה שהם מוגבלים בתבניות.
למרות שקוד יישום מופרד ממצגת, זה לא בהכרח אומר היגיון שמופרד. קוד היישום כמובן יש היגיון, אבל ייתכן שיש לי תבניות היגיון המבוסס על המצב שזה רק להצגה. לדוגמא, אם המעצב רוצה להחליף צבעי שולחן שורה או אותיות רישיות כמה שהוקצה תוכן, שהם יכולים. זהו היגיון מצגת, משהו מתכנת לא צריך להיות מודאג עם. כמה פעמים הייתה לך כמה מצגת מוצג בעמודה אחת ואז אתה רוצה את זה בשתיים או שלוש עמודות, כך קוד היישום צריך להסתגל ללהכיל את זה? גישה טובה יותר היא להקצות את התוכן במערך אחד אחד ולתת לתבנית להתמודד המצגת. זה יפשט את הבקשה שלך ולשמור התבניות שלך גמישים. החכם מספק כלים להתמודד עם סוג זה של מצב.
זה לא אומר שחכם מונע ממך לשים היגיון יישום בתבנית, אתה צריך שתהיה לי קצת משמעת עצמית. הנה דוגמא של הטבעת היגיון עסקי בתבנית (זה נכון, להימנע מלעשות את זה אם זה בכלל אפשרי):
{אם smarty.session.user $ ו( "עורך" $ user_type EQ או $ user_type EQ "מנהל")}
עריכה
{/} אם
בדיקות ההיגיון אם המשתמש מחובר והם גם עורך או מנהל, אז מותר להם לערוך את זה כל כך בתיבת הסימון לערוך מופיעה. זה היגיון ששייך בקוד היישום. התבנית לא אכפת מה יש אישורי משתמש זה, זה פשוט צריך לדעת אם תיבת העריכה מוצגת או לא! אז בואו נסתכל על גישה מתאימה יותר:
{אם edit_flag $}
עריכה
{/} אם
זה תלוי בי מתכנת היישום להקצות edit_flag $, פשוט וקל להבנה משתנה בתבנית. בדרך זו התבנית היא כבר לא מסתמכת על מבנה נתונים הבסיסי שלך. אם הפורמט של מבנה נתוני פגישה לא משתנה, שום דבר לא צריך להיות מותאם בתבנית.
עכשיו מאפשר להסתכל על כמה דברים שאתה יכול לעשות עם החכם. דבר אחד שהוא יכול לעשות הוא פונקציות מותאמות אישית. אלה הם תגים בתבנית שביצוע משימה מסוימת. לדוגמא:
{קובץ html_image = "masthead.gif"}
כאן יש לנו פונקציה שנקראת "html_image". פונקציה זו לוקחת את התמונה שניתנה בתכונה "קובץ" ועושה את כל העבודה הדרושה כדי לבוא עם קוד ה- HTML הבא:

פונקצית התמונה עשתה המטלה של להבין את הגובה ורוחב ואספקת דגל גבול ברירת מחדל. כמובן שאתה יכול פשוט להשתמש בתג HTML סטטי בתבנית במקום, אבל זה מדגים כיצד פונקציה מותאמת אישית יכולה להיות מנוצלת כדי לפשט משימות נפוצות מאוד. המעצב יכול להתמקד בעיצוב ופחות על הדברים הטכניים. יתר על כן, אם המעצב מחליט לרדת בתמונת התורן גודל שונה, התבנית לא צריכה כוונון.
html_image היא פונקציה שמגיעה עם החכם. אתה יכול גם לבצע פונקציות מותאמות אישית משלך. הנה עוד דוגמא של מה שעשוי להיראות כמו:
{סוג html_link = = טקסט "מאמר" id "abc123" = "האש מוציאה מלון"}
זה משתמש בפונקציה מותאמת אישית בשם "html_link". זה מגיע עם קוד ה- HTML הבא:
האש מוציאה מלון
מה זה נותן? לאחד, המעצב לא צריך להיות מודאג עם הפורמט של כתובת אתר למאמר. עם כתובות אתרים בקידוד קשיחים, מה קורה אם יום אחד מתכנת מחליט לנקות את הדברים, ומשנה את תחביר URL מ/display_article.php?id=abc123 ל/ ציור / abc123? אנחנו נצטרך לערוך כל תבנית עם כתובת מאמר. זוהי רק דוגמא נוספת לאופן תפקוד תבנית יכול לעשות תבניות קלה יותר לתחזוקה.
עכשיו לקצת על מתכנתים ותבניות. מוקדם יותר ציינו שיש מתכנת אין טיפול למה לעשות עם תבניות התוכן. ברמה רעיונית זה נכון, אבל בעולם האמיתי אתה לא הולך לצפות מעצב התבנית לצריך לבנות את כל התבניות מאין. אחרי הכל, את ההיגיון העסקי עושה לקבוע מה התוכן מוקצה לתבניות. אז, מתכנת יהיה בדרך כלל תבניות שלד התקנה למעצב להתחיל עם. זה בדרך כלל מכיל את רכיבי הגלם כגון תוכן משתנה ולולאות סעיף, ואולי כמה תגי סימון פשוט כדי שלא יתחיל עם התוכן בבלגן גדול. הנה דוגמא של תבנית שלד שלולאות באמצעות רשימה של מאמרים ומציג אותם בטבלה:
<שולחן>
{שם סעיף = אמנות לולאה = מאמר $}

{מאמר $ [אמנות] .headline}
{מאמר $ [אמנות] .date}
{מאמר $ [אמנות] .author}

{/} סעיף

הפלט עשוי להיראות משהו כזה:
<שולחן>

כיצד המערב ניצח
2 דצמבר 1999
ג'ון וויין


צוות מאבד, מאמן נסגר
2 פבואר 2002
ג'ון סמית


בישול גורמה
23 ינואר 1954
בטי קרוקר


עכשיו לכמה שאלות נפוצות:
למה תבניות שימוש בכלל? מה כל כך קשה על כתיבה במקום {כותרת $}?
מה שהופך את הדברים קלים יותר לקריאה לא היה מטרת עיצוב, אבל יותר של תופעת לוואי. יש שימוש בתבניות הטבות ענק, שרבים מהם כבר הוסברו לעיל. מכיוון שאנו נמצאים בסביבת תבנית בכל מקרה, {כותרת $} היא פחות זר מאשר כותרת $ <הד PHP?; ? >, במיוחד כאשר אתה מתחיל להסתכל על זה בדפים של תוכן ארוכים, כך שזה היה די ברור שתחביר פשוט מסייע להפוך תבניות קלה יותר לקריאה ולתחזוקה.
תבנית לקחת את הזמן כדי לנתח, מה שהופך את היישומים הרבה יותר איטיים.
זה אולי נכון במקרים מסוימים, אבל עם החכם אין זה איטי יותר מאשר ביצוע PHP סקריפט. בביצוע הראשון של תבנית, החכם ממיר את קבצי תבנית להסקריפטים PHP (נקרא קומפילציה תבנית.) לאחר מכן, סקריפט PHP פשוט כלל. כמה זה עם מאיץ PHP ואתה באמת יש לי סביבת בניית תבנית מהירה עם תקורה מינימאלית.
החכם הוא מסובך מדי, איך זה יכול להיות כל כך מהר?
הליבה של החכם היא די רזה שוקלת מה הוא מסוגל. רוב הפונקציונליות שלה טמון בתוספים. ארכיטקטורת התוסף מתוכננת כך שרק את התוספים הנדרשים נטענים על פי דרישה. עם מסגרת זו, אפילו מאות הוספה של תוספים חדשים לא ישפיעו על ביצועים. זה עושה החכם מהיר, ניתן להרחבה וגמישה.
החכם גם יש לו תכונות מטמון שיכול באופן דינמי לרענן ולשמור על חלקים מהדף הוציא מן המסתור בטעמך. מטמון מאחסן את הפלט של תבניות הידור, חוסך את הצורך לבצע אותם בכל קריאה.
כל הדיבורים האלה על מאיצים, איך החכם לרוץ בלי אחד?
למעשה הוא פועל די טוב בלעדיו. החכם אינו דורש מאיץ, אבל תבנית קבצים עצמם ינצלו אחד, משהו שהוא ייחודי לחכם (AFAIK). אם אין לך מאיץ, ביצוע תבנית הוא לא מהיר כמו אבל לא איטי בכל אמצעי שכן הם אינם מנותחים! אתה גם לשמור את כל יתרונות ותכונות של החכם האחרים. כמו כן, מאז מאיצים זמינים באופן חופשי אין באמת תירוץ לא להשתמש באחד. הם יעזרו ביצועים עם כל יישומי PHP, באמצעות החכם או לא.
איך זה יכול להיות קל יותר לתחזוקה?
לא ניתן להסביר כמה דברים, אבל רק חוו. היתרון של הפרדת היגיון היישום מהצגת לא יכול להדגיש מספיק. החכם יש גם כמה תכונות טיפול בשגיאות נחמדה ומשתנים מובנים קונסולת ניפוי, כך שתוכל לראות את היררכית התבנית והוקצו במבט חטוף. הוספת תכונות מותאמות אישית לחכם היא קלה כמו להפיל אותם בספריית התוסף ולהזכיר אותם בתבנית.
תגי התבנית אינם מבוסס XML, העורך שלי לא אוהבים את זה.
מפרידי {} הם רק ברירת מחדל, שהם קלים להבחין בין תגי HTML. אם אתה לא אוהב אותם, לשנות את המפרידים שלך או אולי משהו יותר XMLish כמו ישנם גם הרבה תרומות של משתמש Dreamweaver וכדומה, נותן להם מבט באזור תרומות.
זה החכם על קצה מזלג, אני מקווה שאתה יכול להוסיף אותו לארסנל של כלים לבניית יישומי אינטרנט שלך. באמת כדי ללמוד עוד, קרא את המדריך לעליון לתחתון, להצטרף לפורומים ולראות מה אנשים מדברים

תכונות :.

  • > מטמון: החכם מספק תכונות מטמון פרטניות למטמון חלקים של דף אינטרנט שניתנו או כל, או להשאיר חלקים הוציא מן המסתור. מתכנתים יכולים לרשום פונקציות תבנית כניתנות לשמירה או אי-cachable, דפים במטמון קבוצה ליחידות לוגיות לניהול קל יותר, וכו '.
  • קבצי תצורה: החכם יכול להקצות משתנה משך מקבצי תצורה. מעצבי תבנית יכולים לשמור על ערכים משותפים לכמה תבניות במקום אחד ללא התערבות מהמתכנת, וניתן בקלות משותפת משתני config בין חלקי תכנות והצגה של היישום.
  • אבטחה: תבניות אינן מכילות קוד PHP. לכן, מעצב תבנית לא שחרר עם הכח המלא של PHP, אבל רק קבוצת המשנה של פונקציונליות יועמד לרשותם מהמתכנת (קוד היישום.)
  • קלה לשימוש ולתחזוקה: מעצבי דף האינטרנט אינם עוסקים בתחביר קוד PHP, אבל במקום תחביר בניית תבנית קל לשימוש אינו שונה בהרבה מ- HTML רגיל. התבניות הן ייצוג קרוב מאוד של התוצר הסופי, באופן דרמטי לקצר את מחזור העיצוב.
  • מכפילי משתנים: התוכן של משתנים שהוקצו בקלות יכול להיות מותאם בתצוגה-זמן עם מכפילי, כגון הצגה בכל המקרה העליון,, עיצוב תאריכים, מקצץ גושי טקסט, הוספת רווחים בין תווים, וכו 'שוב-נמלט html , זה נעשה ללא התערבות מהמתכנת.

  • פונקציות תבנית
  • : פונקציות רבות זמינות למעצב התבנית להתמודד עם משימות כגון יצירת קטעי קוד ה- HTML (רשימות נפתחות, שולחנות, חלונות קופצים, וכו '), הצגת תוכן מתבניות אחרות ב- קו, לולאה מעל מערכים של תוכן , עיצוב טקסט לפלט דואר אלקטרוני, רכיבה על אופניים למרות צבעים, וכו '.
  • מסננים:. יש מתכנת שליטה מלאה בפלט תבנית ותוכן תבנית נערך מראש עם מסננים, פוסט-מסננים ופלט-מסננים
  • משאבים:. יכולות להיות משך תבניות ממספר גדול של מקורות על ידי יצירת מפעילי משאב חדשים, ולאחר מכן להשתמש בהם בתבניות
  • תוספים: כמעט כל היבט של החכם נשלט באמצעות תוספים. הם בדרך כלל קלים כמו להפיל אותם לספריית התוסף ולאחר מכן להזכיר אותם בתבנית או משתמשים בהם בקוד היישום. תרומות של משתמש בקהילה רבות זמינות גם. (עיין בסעיף התוספים של הפורום וויקי.)
  • הרחבות: ידידותי לקהילה רבות תרמה תוספות זמינות כגון עימוד, טופס אישור, בגלילה תפריטים למטה, קוטפי תאריך Calander, וכו 'כלים אלה מסייעים להאיץ את מחזור הפיתוח, אין צורך מחדש להמציא את גלגל הקוד או באגים שהוא כבר יציב ומוכן לפריסה. (ראה סעיף תוספות של הפורום וויקי.)
  • Debugging:. החכם מגיע עם
  • מובנה באגים קונסולה כך מעצב התבנית יכול לראות את כל המשתנים שהוקצו והמתכנת יכול לחקור מהירויות תבנית טיוח
  • ליקוט:. החכם הידור תבניות לקוד PHP מאחורי הקלעים, ביטול ניתוח של תבניות זמן ריצה
  • ביצועים: החכם מבצע טוב מאוד, למרות ערכת התכונות העצומה שלה. רוב היכולות של החכם לשקר בתוספים הנטענים על פי דרישה. החכם מגיע עם כלים מצגת רבים, מזעור קוד היישום שלך וכתוצאה מכך פחות פיתוח / פריסת יישומים מהר יותר, מועדת לטעויות. תבניות החכם לקבל הידור ל- PHP קבצים פנימי (פעם אחת), ומבטל סריקות קובץ תבנית יקרות ומינוף המהירות של מאיצי אופ-קוד PHP.

מה חדש בהודעה זו:

  • לחזור שינויי גישת סופר גלובליים, ובמקום להסתמך על USE_SUPER_GLOBALS ל אבטחה

מה חדש בגרסה 2.6.23:

  • מרכאות בודדות אחורית רצועה ממשוואות {} מתמטיקה (mohrt)
  • שגיאה לזרוק כאשר תבנית קיימת אך לא קריא (mohrt)

מה חדש בגרסה 2.6.22:

    • שחרור זה מטפל בבעיה נתקלה עם החכם 2.6 שחרור .21 ובאג מנוע PCRE בPHP 5.2. שרשור שיטה הוסר כדי למנוע את הבאג. שרשור שיטה יופיע מחדש בחכם 3.

  • תוכנות אחרות של יזם New Digital Group, Inc.

    Smarty

    13 Apr 15

    תגובות ל Smarty

    תגובות לא נמצא
    להוסיף הערה
    הפעל את התמונות!