डेवेल / php ड्रुपल से ड्रश कमांड निष्पादित करें


9

क्या कोई मुझे बता सकता है कि मैं डेवेल / php से ड्रश कमांड कैसे निष्पादित कर सकता हूं?

मैं devel / php से PHP कोड निष्पादित कर सकता हूं। लेकिन मैं नहीं जानता कि मैं कैसे devel / php से ड्रश कमांड निष्पादित कर सकता हूं। (जैसा कि हम जानते हैं कि "devel / php" URL devel मॉड्यूल से आता है)।

मैंने क्रोन उद्देश्य के लिए कुछ कस्टम ड्रश कमांड लिखा है। मैं कमांड लाइन से उन आदेशों को चलाने के लिए सक्षम कर सकते हैं।

> drush my-cmd or drush cc all or drush status , etc ... I can run it through command line.

डेवेल / php से चलाने के लिए नीचे दिए गए कुछ फ़ंक्शन की अपेक्षा करना

some_function("drush cc all");

जवाबों:


11

किसी ने एक ड्रुपल साइट के भीतर से शेल एक्सेस प्रदान करने के लिए एक मॉड्यूल बनाने की कोशिश की, लेकिन यह कभी भी पूरी तरह से डिबग नहीं किया गया था। Drupal Terminal प्रोजेक्ट देखें । शायद jQuery टर्मिनल में ऐसे एडवांस आ गए हैं जो किसी को फिर से पढ़ाने पर यह काम करवाना आसान बना सकते हैं।

यदि आप php से Drush को निष्पादित करना चाहते हैं, तो आमतौर पर इसके drush_invoke_process()बजाय इसका उपयोग करना बेहतर होता है exec("drush ...")

$values = drush_invoke_process("@site", "cc", array("all"), array("verbose"));

यदि आप केवल एक-बंद कमांड चला रहे हैं और आप कमांड परिणामों की परवाह नहीं करते हैं, तो exec("drush ...")ठीक है, हालांकि।


6

जैसा कि कालिदासन सुझाव देते हैं, आप कुछ करने के लिए निष्पादन () फ़ंक्शन का उपयोग कर सकते हैं:

exec("drush fra -y", $output); var_dump($output);

आम तौर पर, डिवेल इस कमांड को चलाएगा जहां settings.php स्थित है, अगर आपके पास एक कस्टम मल्टी-साइट आर्किटेक्चर है और आपको ड्रश कमांड को दूसरे रास्ते से चलाने की आवश्यकता है, तो आप चेन कमांड (उपयोग करके ";" सेमी कोलोन) कर सकते हैं। सही रास्ते पर पहुंचें और ड्रश कमांड चलाएं:

exec("cd {absolute or relative path to your settings.php site}; drush fra -y;", $output); var_dump($output);

कभी-कभी, डेवेल / php से ड्रश कमांड चलाना तब उपयोगी होता है, जब आपको ड्रम से फ़ंक्शंस को निष्पादित करने की आवश्यकता होती है, लेकिन आपके पास कमांड लाइन शेल या इसे चलाने की अनुमति नहीं है।

नोट: मैंने केवल एक उदाहरण के रूप में "ड्रश फ़्रा" का इस्तेमाल किया, इसे किसी अन्य ड्रश कमांड के साथ इस्तेमाल किया जा सकता है।


5

अंत में समाधान मिला। shell_exec ("ड्रश स्थिति") ठीक काम कर रहा है।

यहां छवि विवरण दर्ज करें


2

Drush एक कमांड लाइन शेल है और Drupal के लिए Unix स्क्रिप्टिंग इंटरफ़ेस है।

ड्रश कमांड को निष्पादित करने के लिए आपके पास शेल एक्सेस होना चाहिए


इसे devel / php से करने का एक तरीका है। मुझे आशा है कि आप निष्पादन का उपयोग जानते हैं ()। इसी तरह से हम devel / php के माध्यम से ड्रश कमांड को निष्पादित कर सकते हैं। मैं आपके उत्तर को स्वीकार नहीं कर सकता।
कालिदासन

shell_exec()
..और

@ sobi3ch डेवेल में php कोड का उपयोग करके साइट और डेटाबेस का बैकअप बनाना संभव है? कृपया स्क्रिप्ट साझा करें। इस पर विचार करना मेरे लिए एकमात्र विकल्प है। मैं backup_migrate मॉड्यूल स्थापित नहीं कर सकता।
उमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.