web-dev-qa-db-ja.com

実行時にサービス構成パラメーターを変更する

Laravel 5.2。mail /を使用してメールを送信しています。config.services.phpで次のように構成されています。

    'mailgun' => [
        'domain' => env('mailgun_domain','mydomain.com'),
        'secret' => env('mailgin_secret','my-secret-key-132152345423')
    ],

ただし、正しいサービスパラメータを使用するには、Mail :: sendを呼び出す前に、実行時にその設定を変更する必要があります。実行時に何度も変更する必要があります。

I 。envファイルでは構成できません。すべてのデータは、ユーザーがドメインとシークレットを設定したデータベースから取得されるためです。

21
Tiago Gouvêa

config() ヘルパーを使用して、実行時に動的に構成値を設定できます。

config(['services.mailgun' => $arrayWithNewSettings]);
37
Alexey Mezenin

あなたが この例 に従うと、あなたは正しい軌道に乗ると思います。

_\Illuminate\Mail\TransportManager.php_にはメソッドcreateMailgunDriver()があり、デフォルトでは変更できないハードな場所からサービスを取得しています。

独自のサービスプロバイダーを作成し、MailServiceProviderを拡張して独自のトランスポートをロールバックし、必要に応じてdbから設定をプルできるようにする必要があります。

0
Jared Eitnier