Apakah mungkin untuk memanggil fungsi di dalam file .inc dari modul melalui drush eval?


12

Saya memiliki modul dengan file (.inc) tambahan yang berisi fungsi yang perlu saya jalankan melalui Drush. Saya tahu ini mungkin untuk dijalankan drush eval, tetapi ketika saya mencoba melakukannya untuk fungsi-fungsi itu saya mendapatkan kesalahan berikut:

Kesalahan fatal PHP: Panggil ke fungsi my_module_my_function yang tidak terdefinisi () di /usr/share/php/drush/commands/core/core.drush.inc(1037): eval () kode d on line 1

Perintah ini berfungsi (fungsinya ada di file .module).

drush eval 'my_module_cron();'

Perintah ini tidak berfungsi (fungsinya ada di file .inc).

drush eval 'my_module_my_function();'

Apakah ada solusi, selain memindahkan fungsi dalam modul?


Apakah file inc Anda disertakan / diperlukan pada file modul? atau dalam file .info Anda? Ini harus berfungsi selama drupal tahu tentang file inc dari file .info atau disertakan / diperlukan dalam file .module Anda.
Beebee

Jawaban:


18

Anda bisa menambahkan module_load_include () ke kode eval Anda seperti di tempat lain.

Seperti ini:

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

Juga berfungsi untuk .installfile, misalnya:drush eval "module_load_include('install', 'my_module', 'my_module); my_module_install();"
tanius

Ini tidak berhasil untuk saya. Saya dapatkan Division by zero core.drush.inc(1168) : eval()'d code:1ketika saya menelepon module_load_include.
mbomb007

@ mbomb007: versi drush apa yang Anda gunakan dan apa perintah yang Anda jalankan?
rooby

Sudahlah. Saya menggunakan jenis kutipan yang sama baik di dalam maupun di luar. drush eval 'module_load_include('...
mbomb007
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.