में अनुरोधों के बीच ऑब्जेक्ट्स को कैसे बनाए रखें मैं अतीत में रेल, मेरब, डीजेंगो और एएसपीएनटी एमवीसी अनुप्रयोगों का उपयोग कर रहा हूं। उनके पास क्या आम है (जो प्रश्न के लिए प्रासंगिक है) यह है कि उनके पास कोड है जो ढांचे को स्थापित करता है। इसका आमतौर पर ऑब्जेक्ट्स और राज्य बनाना होता है जो तब तक जारी रहता है जब तक कि वेब सर्वर का पुनर्नवीनीकरण न हो (जैसे रूटिंग सेट करना, या जांचना कि कौन से नियंत्रक उपलब्ध हैं आदि)।PHP
जहां तक मुझे पता है कि PHP एक सीजीआई स्क्रिप्ट की तरह है जो प्रत्येक बार चलने पर कुछ बाइटकोड में संकलित हो जाता है, और अनुरोध के बाद इसे छोड़ दिया जाता है। बेशक आप एक ही उपयोगकर्ता से अनुरोधों के बीच डेटा जारी रखने के लिए सत्र कर सकते हैं, और जैसा कि मैंने देखा है कि एपीसी जैसे एक्सटेंशन हैं, जिसके साथ आप सर्वर स्तर पर अनुरोधों के बीच वस्तुओं को जारी रख सकते हैं।
मेरा प्रश्न है: कैसे कोई एक PHP अनुप्रयोग बना सकता है जो रेल की तरह काम करता है और ऐसे? मेरा मतलब है कि पहले अनुरोध पर एक फ्रेमवर्क सेट अप करता है, फिर दूसरे और बाद के अनुरोधों पर पहले से सेट की गई वस्तुओं का उपयोग करें। क्या mod_php में कैशिंग सुविधा में कुछ बनाया गया है? (उदाहरण के लिए जो निष्पादित php अनुप्रयोगों के संकलित बाइटकोड को संग्रहीत करता है) या एपीसी या कुछ समान एक्सटेंशन का उपयोग इस समस्या को हल करने का एकमात्र तरीका है? आपको इसे कैसे करना होगा?
धन्यवाद।
संपादित करें: वैकल्पिक प्रश्न: यदि मैं एक बड़ा PHP अनुप्रयोग बनाता हूं जिसमें बहुत बड़ा सेट अप समय होता है, लेकिन मामूली चलने का समय (ऊपर वर्णित ढांचे में) तो मुझे पहले से सेट की गई चीज़ों को कैश करना चाहिए अप (इसका मतलब हो सकता है कि डेटाबेस कनेक्शन को छोड़कर बहुत सी चीजें हो सकती हैं, क्योंकि इसके लिए आपके पास पहले से ही PHP में लगातार कनेक्शन हैं)।
बड़े सेट अप समय को उचित ठहराने के लिए: यदि मैं PHP प्रतिबिंब का उपयोग कर रहा हूं यह जांचने के लिए कि कौन सी ऑब्जेक्ट उपलब्ध हैं और रनटाइम सेट करें। बहुत सारे प्रतिबिंब करना आमतौर पर धीमा होता है, लेकिन इसे केवल एक बार करना पड़ता है (और केवल तब ही मूल्यांकन करें जब स्रोत कोड संशोधित हो)।
EDIT2: ऐसा लगता है कि यह एपीसी है। तथ्य यह है कि यह बाइटकोड को स्वचालित रूप से कैश करता है यह जानना अच्छा होता है।
स्क्रिप्ट का प्री-संकलन केवल नौकरी का हिस्सा है। लेकिन अगर मैं इसे मूल रूप से देखता हूं तो मुझे PHP का उपयोग करके भी यह हिस्सा करना है, है ना? मेरा मतलब है उदाहरण के लिए mod_php यह मेरे लिए नहीं करेगा। – SztupY
कोड-कैशिंग पारदर्शी है। आप बस एपीसी स्थापित करते हैं और यह आपके बाइट-कोड को तब तक कैश करेगा जब तक आप इसे अक्षम नहीं करते। मेरे ऐप डेटा में मेरे उदाहरण में $ टेबल की तरह स्वचालित रूप से कैश नहीं किया जाएगा। आपको इसे स्वयं करना है। –
आप 'apc_fetch' को दबा रहे हैं क्यों? ** 'afc_fetch' संग्रहित चर या सफलता पर सरणी की सरणी देता है; विफलता पर गलत **। –