DAVID מלאן: בואו לשפר את הקורס אתר בית עוד קצת על ידי הכללת פונקציות אלה, renderHeader וrenderFooter, ל, בפשטות, להבהיר כי אחרי הכל, הם היו כמעט זהים, למעט לשמות שלהם. איך לעשות את זה? גם על גבי קובץ זה פשוט, מתחת למקום בי אנו דורשים helpers.php, בואו נקרא פונקציה חדשה, לדקלם, אשר ראשון ויכוח, נניח, יהיה שם של תבנית, קובץ שאמור להיות מחובר לחשמל לשם. בינתיים, הארגומנט השני יקבע תישאר מערך אסוציאטיבי, בזה מקרה מערך המכיל מפתח עבור כותרת שהערך שלו הוא כאן CS50. בואו נסתכל עכשיו על helpers.php. בhelpers.php, אנחנו עכשיו, של כמובן, יש רק אחד הפונקציה המוגדרת, לעבד. לעבד לוקח עכשיו שני טיעונים, אשר אנחנו קוראים לתבנית ונתונים, האחרון של ברירת מחדל שערך עדיין מערך ריק. אבל בגרסה זו של לדקלם, הודעה כי עכשיו אני מכריז על משתנה מקומי בשם הנתיב ולהקצות לו את הערך של תבנית, אשר, למשל, עלול להיות ציטוט, "כותרת" סוף ציטוט, ו לצרף לזה מחרוזת. PHP. במילים אחרות, בואו נניח לעת עתה שאם התבנית שלנו נקראת כותרת, אז התבנית שתיושם בקובץ שנקרא, בפשטות, header.php. בינתיים, בואו נעשיתי את בדיקת שפיות מהירה. אם הנתיב שקיים, שאנחנו יכולים לבדוק בדרך של קובץ בשם file_exists, אז בואו לחלץ את מערך אסוציאטיבי נקרא הנתונים כך ש יש לנו משתנים מקומיים אחד או יותר בהיקפה, ולאחר מכן בואו דורש כי נתיב. בינתיים, helpers.php נראה די פשוט אהבתי את זה, בדיוק כמו קודם. אבל אם אנחנו עכשיו מסתכלים אחורה על index.php, תבחין כי בתחתית כי קובץ, שאנחנו יכולים באופן דומה קוראים לדקלם, עובר כבשלה כותרת תחתונה טיעון יחיד. במקרה זה, אנחנו לא צריכים לעבור ב מערך אסוציאטיבי משום תבנית תחתונה, כזכור, היא בדיוק את זה. אבל עכשיו יש לנו ללא ספק אפילו עיצוב נקי, כי יש לנו בוטל חלק אחר שלנו קוד מיותר ואוחד רק תפקיד אחד, לעבד.