כיצד להכליל סקריפטים ממקורות שונים?
באפליקציות מורכבות כדאי מאוד להפריד את הקוד לחלקים שניתן לנהל ביתר קלות. החלקים השונים של הקוד יימצאו בקבצים שונים של PHP, ומכאן הצורך לקשר בין החלקים השונים של הקוד. לשם כך, נשתמש ב-4 ההצהרות הבאות:
require
include
require_once
include_once
כדי להדגים את פעולתם, ניצור את שני הקבצים הבאים, שמממשים את העיקרון החשוב מאוד של הפרדת הלוגיקה מהתצוגה.
1. קובץ index.php שיכיל את הלוגיקה.
2. קובץ תבנית, index_tmplt.php, שיכיל את ה-HTML.
את שני הקבצים נשמור באותה התיקייה.
קובץ index.php יכיל מערך עם דגמים של מכוניות, ולוגיקה שבוחרת 2 מכוניות באקראי מתוך המערך $cars.
<?php
$cars = array("KIA", "Subaru", "Renault", "Tata", "Talbut");
$rand_car = array_rand($cars, 2);
$car1 = $cars[$rand_car[0]];
$car2 = $cars[$rand_car[1]];
?>
בקובץ index_tmplt.php נשבץ לתוך ה-HTML את המכוניות שנבחרו באקראי בסקריפט index.php, וכדי להכליל את הסקריפט index.php נשתמש ב-include:
<?php
include "index.php";
?>
<!doctype html>
<html>
<head>
</head>
<body>
<p>
You may drive <?=$car1?> or <?=$car2?>.
</p>
</body>
</html>
שוב, כדי לכלול את הקובץ index.php בקובץ index_tmplt.php השתמשנו בהצהרת include הבאה:
include "index.php";
במידה ואנו מנסים להכליל קובץ שלא קיים, include, תייצר הודעת שגיאה, אולם הסקריפט ימשיך לרוץ. require, לעומת זאת, ייצר הודעת שגיאה חמורה, ולא יאפשר את המשך הריצה של הסקריפט.
include_once ו-require_once פועלים אף הם באופן דומה, ובהבדל אחד, שהצהרות אילו מוודאות שהקבצים שהם אחראים לכלול, מוכללים פעם אחת בלבד. נזדקק לזה בסקריפטים ארוכים ומורכבים יותר. שימו לב, ש-require_once הוא תובעני מאוד מבחינת משאבי המערכת, ואם אתם בוחרים להשתמש בו עדיף לעשות זאת במידה הקטנה ביותר האפשרית.
תוכלו לקרוא על מקרה לדוגמה שבו נהוג לחלק את קוד ה-PHP לקבצים שונים במדריך הפרדת לוגיקה מתצוגה.
כיצד ננווט בין תיקיות?
ראינו שניתן לקשר בין שני קבצים באותה תיקייה באופן פשוט למדי, אבל מה בנוגע לקישור בין קבצים שנמצאים בתיקיות שונות? לצורך זה, נשתמש בנוטציה (שיטת כתיבה מוסכמת) "/..", שפירושה תעלה תיקייה אחת.
לדוגמה, אם מבנה התיקיות הוא זה:
תיקיית www מכילה את הקובץ index.php, ואת התיקייה template, שכוללת את הקובץ index_template.php. כדי לפנות ל-index_template.php מקובץ index.php נשתמש בנוטציה:
include "template/index_template.php";
אולם, אם נרצה לכלול את index.php בקובץ index_template.php עלינו להשתמש בנוטציה:
include "../index.php";
במילים, עלה תיקייה אחת, ואז לך לקובץ index.php.
במידה ונרצה לעלות שני תיקיות בהיררכית הקבצים:
include "../../index.php";
שלוש תיקיות:
include "../../../index.php";
אהבתם? לא אהבתם? דרגו!
0 הצבעות, ממוצע 0 מתוך 5 כוכבים
המדריכים באתר עוסקים בנושאי תכנות ופיתוח אישי. הקוד שמוצג משמש להדגמה ולצרכי לימוד. התוכן והקוד המוצגים באתר נבדקו בקפידה ונמצאו תקינים. אבל ייתכן ששימוש במערכות שונות, דוגמת דפדפן או מערכת הפעלה שונה ולאור השינויים הטכנולוגיים התכופים בעולם שבו אנו חיים יגרום לתוצאות שונות מהמצופה. בכל מקרה, אין בעל האתר נושא באחריות לכל שיבוש או שימוש לא אחראי בתכנים הלימודיים באתר.
למרות האמור לעיל, ומתוך רצון טוב, אם נתקלת בקשיים ביישום הקוד באתר מפאת מה שנראה לך כשגיאה או כחוסר עקביות נא להשאיר תגובה עם פירוט הבעיה באזור התגובות בתחתית המדריכים. זה יכול לעזור למשתמשים אחרים שנתקלו באותה בעיה ואם אני רואה שהבעיה עקרונית אני עשוי לערוך התאמה במדריך או להסיר אותו כדי להימנע מהטעיית הציבור.
שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.
המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?
השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.