今、私のアプリケーションをLaravel 5.3から5.4にアップグレードしようとしています。 Mailjetのカスタムメールドライバを除いて、すべて正常に動作しました。カスタムメールドライバで共有からシングルトンへの切り替え
Mailjetドライバを登録するカスタムMailServiceProviderを設定しました。今すぐリンクしています(5.3とうまく機能しています)。
<?php
namespace App\Providers;
class MailServiceProvider extends \Illuminate\Mail\MailServiceProvider
{
public function registerSwiftTransport()
{
$this->app['swift.transport'] = $this->app->share(function ($app) {
return new \App\Mail\Transport\TransportManager($app);
});
}
}
Laravel 5.4では、サポートされていない共有機能です。 singleton()を使用することをお勧めします。だから私はサーバー的なものを試しました。
public function registerSwiftTransport()
{
$this->app->singleton('swift.transport', function ($app) {
return new \App\Mail\Transport\TransportManager($app);
});
}
をしかし、ここでHandleExceptions.phpはスペースが不足しているので、私は500エラーを取得する:私は作業溶液に非常に近くなった次のコードでと思います。
私はまた、アプリケーションの\プロバイダを\ \にファイルTransportManager.php私のカスタムを移動しようとしたと、このような戻りライン変更:ここで
return new \App\Providers\TransportManager($app);
それはクラスのアプリケーション\プロバイダーは、\ TransportManager 'が見つかりません」と言うが"しかし、はい、ファイルは正しいディレクトリにあります。
いくつかの簡単な手順で欠落している共有機能の問題を解決する方法や、メールドライブ全体のインストールを徹底的に考えなければならないと思いますか?
おかげ
トランスポートプロバイダの名前空間とは何ですか? – Paras
ええ、私はファイルを移動した後、App \ Providersに設定するのを忘れていました。しかし、私がそれをこのように変更すると、私も500エラーが発生します。 –