drush eval을 통해 모듈의 .inc 파일 내에서 함수를 호출 할 수 있습니까?


12

Drush를 통해 실행 해야하는 기능이 포함 된 추가 (.inc) 파일이있는 모듈이 있습니다. 실행할 수 있다는 것을 알고 drush eval있지만 해당 기능을 위해 시도하면 다음 오류가 발생합니다.

PHP 치명적 오류 : /usr/share/php/drush/commands/core/core.drush.inc(1037)에서 정의되지 않은 함수 my_module_my_function ()을 호출합니다. 1 행의 eval () 코드

이 명령은 작동합니다 (기능은 .module 파일에 있습니다).

drush eval 'my_module_cron();'

이 명령은 작동하지 않습니다 (이 기능은 .inc 파일에 있습니다).

drush eval 'my_module_my_function();'

모듈에서 기능을 이동하는 것 외에 다른 해결 방법이 있습니까?


inc 파일이 모듈 파일에 포함 / 필요합니까? 또는 .info 파일에 있습니까? drupal이 .info 파일의 inc 파일에 대해 알고 있거나 .module 파일에 포함 / 필요한 한 작동합니다.
Beebee

답변:


18

다른 곳에서와 같이 module_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를 사용하고 있으며 어떤 명령을 실행하고 있습니까?
루비

신경 쓰지 마. 나는 안팎에서 같은 유형의 따옴표를 사용하고있었습니다. drush eval 'module_load_include('...
mbomb007
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.