2010-06-11 7 views
19

मैं मशीन के सर्वरनाम को प्राप्त करने का एक आसान तरीका खोज रहा हूं जहां सिम्फनी सिम्फनी में चलता है (ताकि मेरा ऐप किसी भिन्न सर्वरनाम के साथ मेजबान पर उपयोग होने पर अनुकूलित हो), लेकिन मुझे कोई नहीं मिला। मैंने app.yml में एक चर बनाया है और मैं इसे लाता हूं, लेकिन मुझे अभी भी आश्चर्य है कि ऐसा करने का कोई आसान तरीका नहीं है। आप यह कैसे कर रहे हैं? मैं विभिन्न परियोजनाओं पर सिम्फनी 1.2 और 1.4 का उपयोग कर रहा हूं।क्या सिम्फनी में सर्वर नाम प्राप्त करने का कोई आसान तरीका है?

+2

क्या आप gethostname() का उपयोग नहीं कर सकते? http://php.net/manual/en/function.gethostname.php – mamoo

+0

क्षमा करें, मैं वास्तव में होस्टनाम नहीं चाहता हूं, लेकिन सर्वरनाम (मैंने अपनी पोस्ट संपादित की है) – greg0ire

उत्तर

39

मुझे लगता है कि मैं कुछ पाया:

$this->getRequest()->getHost() 

यह काम करने के लिए लगता है ... यह केवल यह वहाँ काम करेंगे पाठ्यक्रम का अनुरोध है, इसलिए यह सार्वभौमिक नहीं है।

+1

एक सहयोगी ने मुझे अभी बताया कि हमें भरोसा नहीं करना चाहिए यह, क्योंकि कई जोखिम हैं। वह सोचता है कि वाईएमएल फ़ाइल में सेटिंग सबसे अच्छा समाधान है ... – greg0ire

+1

क्या आप जोखिमों पर विस्तार से बता सकते हैं? :-) – Flukey

+2

लीस दो परिस्थितियों में हैं जहां आप इस तरह के सिस्टम पर भरोसा नहीं करना चाहते हैं: - जब आप अपाचे का उपयोग नहीं करते हैं (उदाहरण के लिए cronjob के माध्यम से मेल भेजते समय) - जब आपके पास कई सर्वर हैं लेकिन आप चाहते हैं अपनी साइट को बढ़ावा देने के लिए उनमें से केवल एक का उपयोग करें। – greg0ire

2
नहीं

बहुत अच्छा, लेकिन मैं अपने सामने नियंत्रक फ़ाइल में $_SERVER["SERVER_NAME"] उपयोग करें, और का उपयोग करें कि पर्यावरण मैं सक्रिय करने कर रहा हूँ निर्धारित करने के लिए:

$env = "prod"; 
if (preg_match("/qahost\.tld$/", $_SERVER["SERVER_NAME"])) 
{ 
    $env = "qa"; 
} 
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', $env, false); 
sfContext::createInstance($configuration)->dispatch(); 

मैं उचित दृष्टिकोण को देखने के लिए दिलचस्पी होगी: -)