Symfony2 の構成を変更するスクリプトがあり、続行する前に新しい構成を認識する必要があります (具体的には dbal 接続を追加します)。スクリプトの実行中に構成を強制的にリロードする方法はありますか?
3 に答える
更新: 構成をリロードすることはできませんが、オンザフライでパラメーターを設定できます。2 番目の「更新」段落を参照してください。
Symfony2 でそれを行うことは実際には不可能です。
本番モードでは、すべて (構成も含む) がキャッシュされるため、キャッシュをクリアする必要があります。
app/console cache:clear --env=prod --no-debug
(たぶん、その後にapp/console cache:warmup --env=prod --no-debug
)
設定をリロードします。開発モードでは、 fromまたは Maybeをshutdown()
続けて 試すことができますが、これらすべてが実際に必要なわけではありません。boot()
Symfony\Component\HttpKernel\Kernel
loadClassCache
構成ファイルには正確にどのような変更が加えられていますか? おそらく、環境ごとに異なるファイルを使用するか、他の方法でそれらの変更を取得することを検討する必要があります (単純な Web サービスまたはコントローラー内から読み取られる静的ファイルを介して)。
更新:
コンテナー構成パラメーターをオンザフライで設定できることがわかりました
$container->setParameter('parameter', value);
Symfony2 のドキュメントを見てください。
私の答えはおそらく非常に遅く到着しますが、他の誰かに役立つ可能性があります.
「prod」環境の symfony キャッシュは「app/cache/prod/」フォルダーに保存され、多くのもの (「twig/」サブフォルダーの PHP で変換された Twig テンプレート、「annotations/」サブフォルダーの注釈、および... 構成パラメーター) が含まれます。 、 app*ProjectContainer.php ファイルなど)。
つまり、構成スクリプトが parameters.yml を変更するときに、appProdProjectContainer.php も削除できます。次のユーザーが Symfony アプリにアクセスすると、応答時間が少し長くなりますが、新しい構成パラメーターが考慮され、キャッシュされます。