2016-06-27 13 views
0

こんにちは私はローカル環境で完全に動作するlaravel 5アプリを持っています。laravel 5アプリでメールを送信できません

1/1 FatalErrorException in AstAnalyzer.php line 125: 
    Cannot instantiate interface PhpParser\Parser 

Path to file: /vendor/jeremeamia/SuperClosure/src/Analyzer/AstAnalyzer.php line 125 

今、私は地元で同じ機能をテストしていして働いているので、私はそれを得ることはありません。しかし、生産メールに、私は以下の例外を取得代わりに送ら取得されていません。アプリの他のすべてのパスは、これ以外で動作しています。以下は

は関数である。

public function update_password(Request $request, $id) 
    { 
     $this->validate($request, [ 
      'new_password' => 'required|confirmed|min:6', 
      'new_password_confirmation' => 'required', 
     ]); 

     $user = $this->user->get_user_by_id($id); 
     $password = $request->get('new_password'); 
     $this->user->save_password($password, $id); 

     // Send an email informing user that we have updated his password. 
     Mail::queue('emails.password_update', ['user' => $user, 'password' => $password], function($message) use ($user){ 
      $message->to($user->email, $user->name)->subject('Account Password Updated'); 
     }); 
     $target_location = 'users/'. $id. '/profile'; 
     flash()->success('Password Updated Successfully'); 
     return redirect($target_location); 
    } 
+0

新しいPHPParserのバージョンと古いSuperClosureのバージョンがあるようです。だからコンポーザー更新はこの問題を修正できるはずです –

+0

ありがとう@RavishaHesh、私はコマンドを発射させて見てください –

+0

こんにちは@RavishaHesh、私は作曲家の最新バージョンをダウンロードし、 'コンポーザーアップデート'を実行したが、まだエラーを取得しています。何が問題なのか。サーバー上の他のアプリケーションが電子メールを正常に送信しており、ローカルサーバー上の同じアプリケーションが正常に電子メールを送信していることには注意してください。何が問題なの?私はすべてのアプリケーションファイルを再アップロードしましたが、変更はありません。助けを歓迎 –

答えて

0

私はようやく私の問題を解決しました。私は、nikic/php-parserの最後のバージョンと同様に最新のバージョンjeremeamia/superclosureをインストールしたcomposer updateを実行しましたが、何とかして、ニックのパッケージで正式に使用していたclass Parserは、今やインターフェイスになりました。 class Multipleは現在このインターフェイスを実装していました。したがって、jeremeamiaのパッケージのAstAnalyzer.phpでは、その変更は行われず、代わりにuse PhpParser\Parser as CodeParser;が使用されました。これは、バインディングが行われない限り、インタフェースがインスタンス化できないため論理的です。迅速な修正として、以前のバージョンのnikic/php-parserを使用しました。

+0

スーパークロージャの最新バージョンは正しい実装を使用しています(https://github.com/jeremeamia/super_closure/blob/master/src/Analyzer/AstAnalyzer.php#L136)。だから、私はあなたに作曲家の更新を依頼しました。 –

+0

私はあなたが尋ねたようにしましたが、問題は続きました。 –

+0

laravelは、新しいsuper-closureバージョンを取得するために、vendorフォルダ内のcomposer.jsonを更新しないことがあります。 –

関連する問題