मैं के लिए एक वर्ग का उपयोग फिल के सुझाव के रूप में सत्र। यदि आप session_start() को मैन्युअल रूप से कॉल करते हैं तो आप PHP कोड कार्यान्वयन में अपना कोड बाध्य कर रहे हैं। session_start मेरे आह्वान के बाद के साथ अपने सत्र वर्ग द्वारा सुरक्षित है:
if (!isset($_SESSION))
{
// If we are run from the command line interface then we do not care
// about headers sent using the session_start.
if (PHP_SAPI === 'cli')
{
$_SESSION = array();
}
elseif (!headers_sent())
{
if (!session_start())
{
throw new Exception(__METHOD__ . 'session_start failed.');
}
}
else
{
throw new Exception(
__METHOD__ . 'Session started after headers sent.');
}
}
संपादित करें:
ऊपर कोड अपने सत्र वर्ग में जाना जाएगा (और शायद इसके निर्माता द्वारा किसी तरह से कहा जा)। कमांड लाइन PHP session_start को कॉल करने के बजाय एक सरणी बनाता है (जो कमांड लाइन पर काम नहीं करता है)।
कोड है कि सत्र चर मैं अपने परीक्षण में सत्र चर नकली पर निर्भर करता है परीक्षण जब:
$_SESSION = array('key1' => 'value you want', 'key2' => 'etc.');
यह आपको हर संभव सत्र सेटिंग कि आपको पृष्ठ पर प्राप्त होगा परीक्षण करने के लिए अनुमति देता है।
परीक्षण मूल्यों का निर्माण करने वाले कोड के साथ संबंधित कोड है जो उनके विचार में उन्हें बनाता है, इसलिए उनके अस्तित्व का मज़ाक करना मेरे लिए ठीक लगता है। इस तरह आप उन्हें संयोजित करने और परीक्षण के बीच सत्र मूल्यों को रखने के बजाय अलग-अलग इकाई का परीक्षण कर रहे हैं।
मैं एक समर्पित कक्षा में सत्र डेटा पहुंच लपेटता हूं और परीक्षण में नकली करता हूं। – Phil
सीआई सत्र असंगत कुकीज़ हैं, इसलिए हाँ, वे ब्राउज़र में काम करते हैं –
धन्यवाद फिल और डेमियन उत्तर के लिए .. @ फिल मैं यह कैसे करूँगा? तो माफ करना इस पर पूरी तरह से नोब है .. क्या मैं आपके साथ ठीक होने पर एक उदाहरण या प्रक्रियाओं के लिए पूछ सकता हूं .. thx –