インターフェースを用いた簡単な画面出力(Laravel4.2)
簡単なサンプルソースを参考に画面出力をしようと思ってますが、
下記のエラーがでているところです。
Argument 1 passed to {closure}() must be an instance of App\Services\Messenger\Messenger, string given
クロージャの第一引数がオブジェクト型ではないということで、
おこられているようなのですが、
どこを修正すればよいかご教授願えないでしょうか。
■コントローラー
●Messenger.php
<?php // app/Services/Messenger/Messenger.php
namespace app\Services\Messenger;
interface Messenger {
public function send($message);
}
●MailMessenger.php
<?php // app/Services/Messenger/MailMessenger.php
namespace app\Services\Messenger;
class MailMessenger implements Messenger {
public function send($message) {
// ここで、メールでメッセージを送る
return "メールで $message を送りました。";
}
}
●BikeMessenger.php
<?php // app/Services/Messenger/BikeMessenger.php
namespace app\Services\Messenger;
class BikeMessenger implements Messenger {
public function send($message) {
// ここで、バイクに乗ってメッセージを届ける
return "バイク便で $message を届けました。";
}
}
■ルーター
// app/Http/routes.php
use app\Services\Messenger\Messenger;
Route::get('send_message/{message}', function(Messenger $messenger, $message){
return $messenger->send($message);
});
以上、よろしくお願いいたします。