2014-07-21 8 views
0

안녕하세요, 저는 kohana 3.3.1에서 일하고 있습니다. 이제 일반 텍스트 전자 메일을 보내려고 할 때 오류가 발생합니다. 정확한 오류가실패한 개봉 필요 ''

Fatal error: main() [function.require]: Failed opening required '' (include_path='.:/usr/local/altphp/lib/php:/home/gettrsm3/public_html/web/application/../Utilities:/home/gettrsm3/public_html/web/application/../Utilities/PHPUnit') in /home/gettrsm3/public_html/web/modules/Email/classes/Kohana/Email.php on line 449

email.php로 코드 (줄 448-450)

// Load Swiftmailer 
require Kohana::find_file('vendor/swiftmailer', 'lib/swift_required'); 

function swiftmailer_configurator() {...} 

그러나 swiftmailer 디렉토리 아래는 swift_required.php/lib 디렉토리 파일이 아래에 주어진다. 누구나 아이디어가 있습니까?

답변

0

Kohana::find_file은 Kohana "계단식 파일 시스템"구조에서 파일을 찾도록 특별히 설계되었습니다. 일반적으로 이것은 Kohana 응용 프로그램 자체의 일부인 파일에 적용됩니다. 파일의 경로를 정확히 알고있는 vendor 디렉토리에는 사용하면 안됩니다.

require MODPATH . 'MODULE_NAME/vendor/swiftmailer/lib/swift_required.php'; 

여기에 두 번째 옵션을 만들려면 좀 더 유연하고 정의 할 수있는 다음 vendor 물건 모듈에있는 경우,

require APPPATH . 'vendor/swiftmailer/lib/swift_required.php'; 

또는 대신

, 당신은이 작업을 수행해야 이 같은 모듈의 init.php에 새로운 일정 : 다음

define('MODPATH_EMAIL', realpath(dirname(__FILE__)).DIRECTORY_SEPARATOR); 

요 이 줄을 사용할 수 있습니다 :

require MODPATH_EMAIL . 'vendor/swiftmailer/lib/swift_required.php'; 

그러나 마지막으로 (그리고 가장 좋은 대안은) 자동 로딩을 사용하는 것입니다. Composer를 사용하여 vendor 디렉토리에 Swiftmailer를 설치했다면 다음과 같이하면됩니다 :

require 'vendor/autoload.php'; // Prefix this with anything else as necessary.