2016-08-24 19 views
0

ラチェットをウェブソケットに使用しています。一般的に動作しますが、私のExampleController Laravels Authの中で使いたいと思います。それは簡単なはずですが、これは動作しません:ラベール5.2とラチェットクラスが見つかりません

<?php namespace Annotation\Http\Controllers; 
use Auth; 
use Ratchet\MessageComponentInterface; 
use Ratchet\ConnectionInterface; 

class ExampleController extends Controller implements MessageComponentInterface { 

    public function onOpen(ConnectionInterface $conn) { 
     echo Auth::id(); 

    //etc. 
     echo "New Connection! ({$conn->resourceId})"; 
    } 

} 

私は(laravelのルートディレクトリにあります)のWebSocket-server.phpというの私のコントローラを初期化するとき、私はいつも、以下のファイルを、クラスAuth見つからない例外を取得:

<?php 
require __DIR__.'/vendor/autoload.php'; 

use Ratchet\Server\IoServer; 
use Annotation\Http\Controllers\CollaborativeController; 

$server = IoServer::factory(
    new ExampleController(), 
    8080 
); 
$server->run(); 

通常のコントローラとしてExampleControllerをルートとして使用すると、Authクラスが検出されます。 (認証ヘルパーやlaravelに関連するものも使用できません)

これはどうしてですか? Laravelはまだ初期化されていないか、パスを追加する必要がありますか?

答えて

0

auth関数はauthenticatorインスタンスを返します。あなたは便宜上認証ファサードの代わりにそれを使用することができます:あなたがミドルウェアをロードしたい場合は

echo auth()->user()->id; 
+0

これは動作しません、ヘルパークラス理由とIOCがロードされていませんlaravels。 – Marco

0

があなたのserver.phpというに次の行を追加します。 Authはミドルウェアであり、初期化もロードもされていません。

require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php'; (set a proper path to your bootstrap)

関連する問題