Bir modülün .inc dosyası içindeki bir işlevi drush eval ile çağırmak mümkün mü?


12

Drush ile çalıştırmam gereken işlevleri içeren ek (.inc) dosyaları olan bir modül var. Çalıştırmanın mümkün olduğunu biliyorum drush eval, ancak bu işlevler için yapmaya çalıştığımda aşağıdaki hatayı alıyorum:

PHP Önemli hata: /usr/share/php/drush/commands/core/core.drush.inc(1037) içindeki un_fodule_my_function () işlevine çağrı: 1. satırdaki eval ()

Bu komut çalışır (işlev .module dosyasındadır).

drush eval 'my_module_cron();'

Bu komut çalışmıyor (işlev .inc dosyasındadır).

drush eval 'my_module_my_function();'

Modüldeki işlevi taşımanın yanı sıra herhangi bir geçici çözüm var mı?


İnc dosyanız modül dosyasına dahil edilmiş / gerekli mi? veya .info dosyanızda? Bu, drupal bir .info dosyasından inc dosyası hakkında bilgi sahibi olduğu veya .module dosyanıza dahil edildiği / gerekli olduğu sürece çalışmalıdır.
Beebee

Yanıtlar:


18

Eval_ kodunuza başka herhangi bir yerde yaptığınız gibi module_load_include () öğesini ekleyebilirsiniz .

Bunun gibi:

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

Ayrıca .installdosyalar için de çalışır , örneğin:drush eval "module_load_include('install', 'my_module', 'my_module); my_module_install();"
tanius

Bu benim için işe yaramıyor. Aradığımda Division by zero core.drush.inc(1168) : eval()'d code:1anlıyorum module_load_include.
mbomb007

@ mbomb007: hangi drush sürümünü kullanıyorsunuz ve çalıştırdığınız komut nedir?
rooby

Boşver. İçeride ve dışarıda aynı türden alıntılar kullanıyordum. drush eval 'module_load_include('...
mbomb007
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.