הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 26-04-11, 00:50   # 11
link
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 34
הודעות: 191

link לא מחובר  

אני בעקרון חושב על מצב שבו יש מחלקה כללית עם משתנה מחלקה, נניח $std כמו בipb בזמנו. ב$std הזה יש משתנה SQL, ויש שם משתנה של שפה ועוד כל מיני. נניח ויש מפתח חיצוני למערכת שרוצה לגשת למשתנה $std->sql לתוך מחלקה שהוא יצר כרגע. הפתרון הרגיל שאני מכיר הולך ככה:

PHP קוד:
class new_class
{
    function 
some_action()
    {
        global 
$std;

        
$std->sql->bla(...);
    }

עכשיו, מה שאני רציתי לעשות עם ההורשה הוא פשוט לעשות $this->sql, שפשוט מבוסס על המחלקה הקודמת. לזה אני מתכוון לאינטראקציה בין מחלוקות.ניסיתי גם האופורטור parent:: אבל הוא גם לא צלח, לפחות בקטע של משתני מחלקה.
  Reply With Quote
ישן 26-04-11, 02:44   # 12
בניה
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נחושה
הודעות: 3,434

בניה לא מחובר  

אחת מהשיטות לשתף אובייקטים בין כל הקוד שלך זו מחלקה שכל התוכן שלה(או רובו) סטטים.
אני אתן דוגמא למה שעשיתי באתר שלי(misron)
המערכת שלי רחוקה מלהיות מושלמת מבחינת התכנון שלה אבל אפשר ללמוד ממנה את העקרון.
PHP קוד:
class Misron {
    
    static public 
$conf = array();
    
    static public 
$browser 'default';
    
    static public 
$page_start_mtime;
    
    static public 
$page_end_mtime;
    
    static public 
$db;
    
}

Misron::$db = new DB();

//now i want to use the db within a function :
function myfunc() {
    
$res Misron::$DB->query();
    
print_r($res->fetchAll());

  Reply With Quote
ישן 26-04-11, 08:57   # 13
link
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 34
הודעות: 191

link לא מחובר  

כן, זה גם מה שאני עשיתי. אבל נגיד, במערכת שאני מתכנן יש לי מחלקה ואני עשיתי גם מודל. ז"א, מתכנת חיצוני יוכל לכתוב "תוספים".
אני רוצה, במידה והוא ירצה להסתמך על המחלקה של הSQL והמחלקה המרכזית של המערכת שהוא לא יצטרך להסתמך על משתנים שיישמתי אותם למחלקה, קרי $std. אלא פשוט יעשה הורשה של המחלקה הראשית למחלקה החדשה. אבל לא משנה, הבנתי מניסיון וגם מהנושא הזה שלא אפשרי.

פתרון נוסף זה לעשות כזה דבר:
PHP קוד:
$new_model = new model_class(&$std); 
למרות שהוא לא המועדף עלי, כי שוב יש שימוש במשתנה של מחלקה. נראה לי שאפשר די לסגור את הנושא הזה, אני כבר טוחנים את זה מכל כיוון כבר.

תודה רבה על העזרה לכל מי שהשתתף בדיון הקולח הזה
  Reply With Quote
ישן 26-04-11, 12:53   # 14
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

תקרא על Design pattern שנקרא Singleton.
יכול להיות שגם Dependency injection יעזור לך.
בהצלחה.
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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