2016-05-26 11 views
2

私はLaravelアプリケーションを共有ホスティングに配備し、env変数に問題が発生しました。プロバイダは、セキュリティ上の理由により、接頭辞が「PHP_」の変数のみを許可します。これらの変数の接頭辞を設定することは可能ですか、それともLaravelに追加することは可能でしょうか?今の私が点灯し、\財団の\ helpers.phpファイルのメソッドENV()を変更して、コメントを追加:Laravel .env - 可変接頭辞

$value = getenv($key); 
    if ($value === false) { 
     $value = getenv("PHP_" . $key); 
     if ($value === false) 
      return value($default); 
    } 

それは動作しますが、それは作曲の更新後に上書きされます。私はこれが他のホスティングプロバイダーにとっても共通のアプローチであるかどうかは分かりません。他のホスティングプロバイダにとってLaravelに追加することが有用なのであれば、私は確信していません。

+0

フレームワークの 'env'ヘルパーを修正するのではなく、' helpers.php'ファイルを作成し、([作曲の自動読み込み、それを持っている] https://getcomposer.org/doc/04-schema.md#ファイル)を作成します。 –

答えて

3

独自のhelpers.phpファイルを作成し、そこでgetenv()関数をオーバーライドすることができます。ヘルパーファイルを最初にロードする限り、Laravelはそれ自身を登録しません。すべてのヘルパーはif (! function_exists('function_name'))でラップされているためです。

Laravelのhelpers.phpファイルの関数を無効にする方法については、このスレッドを参照してください。

https://laracasts.com/discuss/channels/general-discussion/override-functions-in-supporthelpersphp