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?

Michal Przybylowicz
sumber
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();"
jorok
sumber
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