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

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

HOLD 03-07-10 14:45

מחפש ב-php משתנה כללי
 
אני מחפש משתנה מקביל למשתנה ה-Application ב-asp,
אחד שאני יכול לפנות אליו מכל עמוד, מכל משתמש, שהוא זהה לכולם.

למה אני צריך אותו? אני רוצה לעשות שאם הוא קיים, האתר ננעל אוטומטית,
חשבתי שזאת אחלה אופצייה למקרים של תקלות באתר\בעיות אבטחה\שיפוצים.

מה אתם חושבים על הרעיון? ומה הדרך הכי יעילה לבצע אותו?

תודה.

RS324 03-07-10 14:48

$GLOBALS
מכיל את כל המשתנים שיש לך בכלל
אתה יכול לעשות
$GLOBALS['myvar'] = 'myvalue';

למרות שהיית ממליץ לך לבנות איזה מחלקה של settings ומשם לקחת את מה שאתה צריך.

HOLD 03-07-10 15:23

ציטוט:

נכתב במקור על ידי RS324 (פרסם 769748)
$GLOBALS
מכיל את כל המשתנים שיש לך בכלל
אתה יכול לעשות
$GLOBALS['myvar'] = 'myvalue';

למרות שהיית ממליץ לך לבנות איזה מחלקה של settings ומשם לקחת את מה שאתה צריך.

תודה.
תוכל בבקשה לפרט?

RS324 03-07-10 15:47

ציטוט:

נכתב במקור על ידי HOLD (פרסם 769755)
תודה.
תוכל בבקשה לפרט?

כתבתי את זה עכשיו אז לא בדקתי
אבל תנסה משהו בסגנון הזה :

PHP קוד:

class Settings
{

    protected static 
$settings = array();
    public function 
__construct()
    {
        
// you can load pre-defined settings from db or something here
    
}
    
    public function 
listSettings()
    {
        return 
self::$settings;
    }
    
    public function 
__get($SettingName)
    {
        if (isset(
self::$settings[$SettingName]))
        {
            return 
self::$settings[$SettingName];
        }
        return 
null;
    }
    public function 
__set($key,$value)
    {
        
self::$settings[$key] = $value;
        return 
$settings[$key];
    }
    
}

$_Settings = new Settings();

$Settings->webURL 'www.websupport.co.il';
$Settings->adminName 'rs324';



print 
'my website url is : '.$Settings->webURL;

print 
'all settings :<pre>';
print_r($Settings->listSettings());
print 
'</pre>'

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

Shay Ben Moshe 03-07-10 16:05

RS324 מה שכתבת זה משהו שיהיה נגיד בתוך כל בקשה.
בASP.NET המשתנה Application הוא כמו SESSION רק שמשותף לכל המשתתפים.

HOLD, הדרך היחידה לעשות את זה בPHP זה דרך קובץ או דרך DATABASE..

RS324 03-07-10 16:31

ציטוט:

נכתב במקור על ידי Shay Falador (פרסם 769767)
RS324 מה שכתבת זה משהו שיהיה נגיד בתוך כל בקשה.
בASP.NET המשתנה Application הוא כמו SESSION רק שמשותף לכל המשתתפים.

HOLD, הדרך היחידה לעשות את זה בPHP זה דרך קובץ או דרך DATABASE..

גם אם תכתוב ישירות ל GLOBALS זה יהיה בכל בקשה
כתבתי לו את המחלקה הבסיסית
הוא יכול להרחיב אותה ולכתוב את ההגדרות לקובץ ולייבא אותו דרך המחלקה
יש המון אפשרויות לעשות דברים....

עריכה
שים לב מה כתבתי בתוך ה construct

Shay Ben Moshe 03-07-10 23:06

RS324 סבבה מה שכתבת בבנאי אבל GLOBALS הוא לכל בקשה בפני עצמה.
_SESSION עובר בין דפים שונים אבל לאותו משתמש.
הוא מחפש משהו שעובר בין דפים שונים לכל המשתמשים, זה לא מובנה בPHP, תשתמש בקובץ חיצוני או DB נורמאלי.


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

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