2014-05-18 4 views
6

मेरे आवेदन में, किसी फ़ाइल को किसी विशिष्ट निर्देशिका में स्थानांतरित करने के लिए मुझे नियंत्रक कार्रवाई में सार्वजनिक फ़ोल्डर पथ जानने की आवश्यकता है। मैंने इस प्रकार के समाधान को अलग पढ़ा लेकिन आसान नहीं मिला। मुझे पता है कि हम देख सकते हैं कि $this->basePath(); देखें सहायक का उपयोग करके हम आसानी से सार्वजनिक फ़ोल्डर पथ प्राप्त कर सकते हैं। मैं वास्तव में इसे नियंत्रक कार्रवाई में चाहता हूँ। कोई भी मुझे मार्गदर्शन कर सकता है कि मैं इसे कैसे प्राप्त कर सकता हूं। अग्रिम में धन्यवाद।ज़ेंड 2 :: आसानी से नियंत्रक कार्रवाई में सार्वजनिक फ़ोल्डर पथ या बेसपाथ() प्राप्त करना

उत्तर

12

index.php आप आवेदन रूट (composer.json, init_autoloader.php, आदि वाले फ़ोल्डर)

जब तक आप chdir बुलाया नहीं किया है के रूप में अपने आवेदन में कहीं आप getcwd() कॉल कर सकते हैं और यह हूँ करने के लिए वर्तमान में काम कर रहे dir सेट हमेशा अपने ऐप रूट पर पथ वापस करें।

के बाद से सार्वजनिक फ़ोल्डर कि के सापेक्ष है, आप का उपयोग कर पथ प्राप्त कर सकते हैं ...

$publicDir = getcwd() . '/public'; 
0

आप ZF2 में एक नियंत्रक के भीतर से देखने सहायकों इस्तेमाल कर सकते हैं के रूप में यह here और here दिखाया गया है। आप अपने मामले के लिए यह कोशिश कर सकते हैं:

$renderer = $this->serviceLocator->get('Zend\View\Renderer\RendererInterface'); 
$url = $renderer->basePath('the_ressource_you_want_to_get_from_public_folder'); 

इस आशा के लिए आप क्या देख रहे हैं नहीं है!

2

में अपने सार्वजनिक फ़ोल्डर संपादित आपकी फ़ाइल index.php नामित केवल दो पंक्तियों

जोड़ने
define('BASE_PATH', realpath(dirname(__DIR__))); 
define('PUBLIC_PATH', BASE_PATH.'/public'); 

आप जनता से एक फ़ाइल शामिल करना चाहते हैं आप की तरह

print_r(BASE_PATH); 
print_r(PUBLIC_PATH); 
0

अपने कोड में उपयोग कर सकते हैं फ़ोल्डर (index.php फ़ाइल के स्थान के साथ आजादी): include_one ("./public/your-file.php");

0

यदि आप सार्वजनिक फ़ोल्डर चाहते हैं तो इस प्रयास करना चाहिए:

$publicPath = $_SERVER['DOCUMENT_ROOT']; 

या यह कोशिश अगर आप basepath हैं:

$basePath = dirname($_SERVER['DOCUMENT_ROOT']); 
संबंधित मुद्दे