संक्षेप में: यह कोई बड़ा अंतर नहीं है और आप संदर्भ में जो भी सही महसूस कर सकते हैं उसका उपयोग कर सकते हैं। मैं JApplication/setUserState
के साथ रहूंगा क्योंकि मुझे लगता है कि कोड बेहतर आत्म व्याख्यात्मक है।
वास्तविक अंतर:
दोनों ही तरीकों से सत्र में निर्दिष्ट राज्य स्टोर करेगा। JApplication/setUserState
वास्तव में राज्य को स्टोर करने के लिए आंतरिक रूप से JSession/set
का उपयोग करेगा।
क्या JApplication/setUserState
अलग ढंग से करता है कि यह एक JRegistry में हर महत्वपूर्ण मूल्य जोड़ी की दुकान नहीं है। तो यह के बराबर है:
$session = JFactory::getSession();
$registry = $session->get('registry');
$registry->set('myvar', $myvarvalue);
तो एक JRegistry
का उपयोग कर की बात क्या है? यह बहुत ही कार्यात्मक रूप से JRegistryFormat
प्रदान किया गया है। आप दोनों पार्स करने के लिए इसका इस्तेमाल करते हैं और राज्य फ़ॉर्मेट कर सकते हैं:
$session = JFactory::getSession();
$registry = $session->get('registry');
$json = $registry->toString('JSON');
$xml = $registry->toString('XML');
यह भी उनका कहना है कि JApplication/setUserState
अपने राज्य का उपयोग "डिफ़ॉल्ट" नाम स्थान में खत्म हो जाएगा लायक है:
$app = JFactory::getApplication();
$app->setUserState('myvar', $myvarvalue);
// $_SESSION['default']['registry']->set('myvar', $myvarvalue)
स्रोत
2012-11-02 14:31:26
विस्तृत जवाब के लिए धन्यवाद ! मुझे लगता है कि मैं अब मतभेद/समानता को समझता हूं :) – TryHarder