ענייני require

black h0le

New member
ענייני require

יש לי מבנה תיקיות שכזה:

- folder_a
-- folder_b
--- folder_c

כלומר, בתוך התיקייה folder_a יש תיקייה folder_b, ובתוך התיקייה folder_b יש תיקייה folder_c.
בתיקייה folder_a יש לי קובץ functions.php.
בתוך התיקייה folder_b יש לי קובץ שנקרא functions.php, שבתוכו יש (בין היתר) פקודת:
require "../functions.php";

קבצים שבתוך התיקייה folder_a עושים require "functions.php" כלומר לקובץ פונקציות שבתיקייה שלהם.
קבצים שבתוך התיקייה folder_b עושים את אותה פקודה: require "functions.php", כלומר הם קוראים לקובץ שבתיקייה שלהם, ושהוא דורש את הקובץ שבתיקיית האב.
אני רוצה שגם קבצים שבתיקייה folder_c יוכלו לכלול את הקובץ פונקציות שנמצא בתיקייה folder_b, ע"י require "../functions.php", אבל אני מקבל שגיאה שהפונקציות מוגדרות פעמיים. לפי מה שאני מבין מזה - הקובץ מנסה לכלול את עצמו.

איך אפשר להתגבר על העניין הזה?
 

bnayal

New member
איזו פונקציה מוגדרת פעמיים?...

זה נשמע כאילו ב folder_c הקובץ שטוען את functions.php שנמצא בתיקייה b כבר מכיל פונקציה שקיימת בתיקייה a \ b. (מקווה שהבנת).
 

black h0le

New member
אין לי פונקציה שמוגדרת פעמיים

הכנתי דוגמא קטנה לבעיה בקובץ זיפ שהעלתי לפה:
http://www.MegaShare.com/4013225
תריץ את הקובץ test/a/b/do.php בדפדפן שלך, ותראה את הבעיה.
 

black h0le

New member
מה זה נקרא "עובד לי"? האם הדף

do.php שבתיקייה b יכול להשתמש בפונקציות שנמצאות בקובץ f.php בתיקייה הראשית?
 
תשתמש ב require_once לזה הוא נועד....

*** לא הורדתי/פתחתי את הזיפ שלך מטעמי בטיחות...
 

black h0le

New member
זה לא טוב

כי התוצאה של זה היא שקובץ הפונקציות שיושב "למעלה" לא נכלל בסקריפט, ואי אפשר להשתמש בפונקציות שבו.
 
אתה יודע שאפר להשתמש ב require_once יותר מ-1?

לדוגמא: בתיקיה 3 אתה רושם משהו בנוסח הזה (אגב, רק בתחילת הסקריפט)


<require_once("filder_1/funcSet_1.php");>
<require_once("filder_2/funcSet_2.php");>

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

black h0le

New member
כמובן שאפשר לכלול יותר מקובץ אחד...

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

black h0le

New member
יש מקום שאני יכול להעלות אליו את הזיפ

שכן תוכל להוריד אותו?
 
למעלה