क्या ड्रॉवर के माध्यम से मॉड्यूल की .inc फ़ाइल के अंदर एक फ़ंक्शन को कॉल करना संभव है?


12

मेरे पास अतिरिक्त (.inc) फ़ाइलों के साथ एक मॉड्यूल है जिसमें फ़ंक्शंस हैं जिन्हें मुझे ड्रश के माध्यम से चलाने की आवश्यकता है। मुझे पता है कि इसे चलाना संभव है drush eval, लेकिन जब मैं इसे उन कार्यों के लिए करने की कोशिश करता हूं तो मुझे निम्नलिखित त्रुटि मिलती है:

PHP घातक त्रुटि: अपरिभाषित फ़ंक्शन पर कॉल करें my_module_my_function () /usr/share/php/drush/commands/core/core.drush.inc(1037 में): eval () लाइन 1 पर d कोड

यह कमांड काम करता है (फ़ंक्शन .module फ़ाइल में है)।

drush eval 'my_module_cron();'

यह कमांड काम नहीं करता है (फ़ंक्शन .inc फ़ाइल में है)।

drush eval 'my_module_my_function();'

क्या मॉड्यूल में फ़ंक्शन को स्थानांतरित करने के अलावा कोई वर्कअराउंड है?


मॉड्यूल फ़ाइल पर आपकी इंक फ़ाइल शामिल / आवश्यक है? या आपके .info फ़ाइल में? यह तब तक काम करना चाहिए जब तक ड्रूपल .info फ़ाइल से inc फ़ाइल के बारे में जानता है या यह आपकी .module फ़ाइल में शामिल / आवश्यक है।
बीबी

जवाबों:


18

आप अपने eval कोड में mod_load_include () जोड़ सकते हैं जैसे आप कहीं और भी होंगे।

ऐशे ही:

drush eval "module_load_include('inc', 'my_module', 'INCLUDE_FILE_NAME_WITHOUT_EXTENSION'); my_module_my_function();"

.installफाइलों के लिए भी काम करता है , उदाहरण के लिए:drush eval "module_load_include('install', 'my_module', 'my_module); my_module_install();"
tanius

यह मेरे लिए काम नहीं करता है। Division by zero core.drush.inc(1168) : eval()'d code:1जब मैं बुलाता हूं तो मुझे मिल जाता है module_load_include
mbomb007

@ mbomb007: ड्रश का कौन सा संस्करण उपयोग कर रहे हैं और आप जो कमांड चला रहे हैं, वह क्या है?
रॉबी

कोई बात नहीं। मैं एक ही प्रकार के उद्धरणों का उपयोग अंदर और बाहर दोनों कर रहा था। drush eval 'module_load_include('...
mbomb007
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.