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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   קריאה ויישום של מחלקה מתוך קובץ (https://hosts.co.il/forums/showthread.php?t=75032)

Shillo 31-05-09 21:36

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

יש איזושהי פקודה או פקודות שיכולות לעזור לי במקרה הזה?
אשמח לעזרה, תודה.


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

בניה 31-05-09 21:42

תקרא על include/require
http://il2.php.net/manual/en/function.include.php

Shillo 31-05-09 21:45

כשאני חושב על זה באמת למה לא חשבתי על זה, אני ניסיתי משהו אחר, עם serialize וכו', אבל לא משנה.
יכול להיות ששכחתי מה רציתי לעשות, אם אני אזכר אני אכתוב.
בינתיים זה נראה לי אחלה.

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

intercooler3819 01-06-09 15:56

אני תומך בשיתוף פתרונות...
נניצן אומר/ת:
הנה
נניצן אומר/ת:
עובד
נניצן אומר/ת:
הקוד של הקובץ אחד:
נניצן אומר/ת:
PHP קוד:

<?php

$content 
file_get_contents('./aaaa.php');

$content str_ireplace("<?php"""$content);
$content str_ireplace("<?"""$content);
$content str_ireplace("?>"""$content);

$classname preg_replace("#.+class\s+([a-zA-Z0-9\-\_]+)\s+\{.+#is""$1"$content);

eval(
$content);

eval(
'$var = new '.$classname.';');

var_dump($var);

// eof

נניצן אומר/ת:
הקוד של הקובץ השני:
נניצן אומר/ת:
PHP קוד:

<?php

/**
* @author SUPER DUPER
* @copyright 2009
*/

    
class Foo
    
{
        var 
$u 's';
        var 
$s 12;
    }

// eof

נניצן אומר/ת:
לאחד קראתי
נניצן אומר/ת:
aaaaa.php
נניצן אומר/ת:
לשני
נניצן אומר/ת:
aaaa.php

Shillo 01-06-09 17:48

תודה רבה ניצן.

בניה 02-06-09 11:07

מאיפה הקבצים עם המחלקות מגיעים?
אין לך שליטה עליהם?

Shillo 02-06-09 17:01

ציטוט:

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

ניצן הצליח לפתור לי את הבעיה.

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

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

בניה 02-06-09 17:29

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

Shillo 02-06-09 17:46

ציטוט:

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

כי במקרה כזה אני חייב לדעת מה שם המחלקה.

בניה 02-06-09 19:43

ציטוט:

נכתב במקור על ידי Shillo (פרסם 718510)
כי במקרה כזה אני חייב לדעת מה שם המחלקה.

אם זה קובץ PHP שאתה יוצר-לפני הגדרת המחלקה גם תכניס לאיזה משתנה את השם שלה, או תעשה את השם של ההקובץ כמו השם של המחלקה.


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


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

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