コントローラーからキャッシュをクリアしたい。コマンドをサービスとして定義し、それを呼び出します。
clear_cache_command_service:
class: Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand
calls:
- [setContainer, ["@service_container"] ]
私のコントローラーには、コマンドを選択するためのフォームがあり、キャッシュクリアコマンドが選択されると実行されます。
$clearCacheCommand = $this->container->get('clear_cache_command_service');
$clearCacheCommand->run(new ArrayInput(array()), new ConsoleOutput());
ただし、キャッシュもウォームアップするため、これはしばらく実行されます(実際にはキャッシュもウォームアップしたいです)。それもタイムアウトするので、私もそれをする必要がありset_time_limit
ます。
ブラウザーで応答を返し、サーバーでコマンドを実行して終了させる方法はありますか? クライアントが完了するのを待ち続けたくありません。