2015-02-07 3 views
1

this library을 사용하여 내 서버에 Nexmo SMS 서비스를 구현하고 있습니다. 그래서 같은 작곡가를 사용하여 라이브러리 요구 :치명적인 오류 : 'NexmoMessage'클래스를 찾을 수 없습니다.

"require" : { 
"prawnsalad/nexmo": "dev-master" 
} 

내가 here을 발견하고 지시 그렇게 같은 README에 포함 된 다음 :

require 'vendor/autoload.php'; 
use NexmoMessage; 
$phone = '123456789'; 
$sms = new NexmoMessage(NEXMO_KEY, NEXMO_SECRET);//defined in another file 
$sms->sendText($phone, 'from', "yo");//$phone is a valid number in actual case 

그러나 나는이 질문의 제목에 오류가 계속 . Composer가 라이브러리를 성공적으로 가져 왔고 NexmoMessage 클래스 및 생성자를 볼 수 있지만 어떤 이유로이 오류는 내가하는 일과 상관없이 계속 발생합니다. 이 문제가 라이브러리 문제 또는 Composer 사용 방법 때문인지 확실하지 않습니다. 나는 과거에 작곡가와 관련된 문제가 없었으므로 여기 왜 이런 일이 일어나고 있는지 궁금합니다. 감사합니다

답변

2

음, 그 라이브러리는 PSR-4를 지원한다는 것을 명시합니다. 즉, PHP 네임 스페이스를 절대적으로 사용해야한다는 것을 의미하지만, 그렇지 않습니다. 마지막 커밋은 8 개월 전 https://github.com/prawnsalad/Nexmo-PHP-lib/commit/8e422c4f8f43c52acb70ebd5f9e7c6ff81a1f352에서 자동 로딩을 위반했습니다. 그리고 아무도 오늘까지 알아 차리지 못했습니다.

소스 코드를 보면 쉽게 알 수 있습니다. 사용중인 네임 스페이스가 없습니다.

지금 가장 좋은 방법은이 문제를 해결하고 풀 요청을 보내는 것입니다. Github은 브라우저에서 파일을 편집 할 수 있습니다! 차선책은 문제를 만들고 저자에게 알려주는 것입니다.

+0

글쎄, 이미 지난 2 주간에 2 건의 문제가 있었는데 저항 할 수없고 풀 요청을 보냈습니다. 그것을 병합하는 것은 내가 할 수있는 일이 아니다. – Sven

+0

안녕 스벤, 팁 주셔서 감사합니다. psr-4에 대한 classmap을 바꾼 수정 사항은 무엇입니까? 실례지만 내 수정 사항을 어떻게 얻을 수 있습니까? 이 편지 병합을 쓰기 권한이있는 사람을 기다려야합니까? – ethan123

+0

예, 공식 소스의 코드를 원하면 병합을 기다려야합니다. 내 저장소를 다른 소스로 추가하고 즉시 "패치 1"브랜치를 요구할 수도 있지만 경고를받습니다. 일단 병합되면이 브랜치를 삭제할 것이고 packagist에도 추가하지 않을 것입니다 - 그래서 당신이 그것에 의지한다면 이것은 조금 위험합니다. – Sven

관련 문제