回答:
あなたが探している関数は、ビューキャッシュプラグインのcache_flushだと思います。
cache_flush
Drupal 6と7だけですか?私はDrupalの8のためのビューモジュールでそれを見ていないよ
クリアするビューの名前がわかっている場合は、次のような関数を呼び出して、そのビューに固有のキャッシュをクリアできます。
/**
* Function to invalidate selected views caches to enable the action forms to work
*/
function mymodule_invalidate_views_cache($view_name) {
cache_clear_all('ctools_export:views_view:' . $view_name, 'cache_views', TRUE);
cache_clear_all($view_name, 'cache_views_data', TRUE);
}
これは、ビューキャッシュが有効になっている(コンテンツキャッシュを使用している)ときに、構成フォームを持つVBOアクションが機能できるようにするために必要でした。これを2回呼び出しました。1回は関数mymodule_myaction_form()で、もう1回は関数mymodule_myaction_submit()で呼び出しました。
ビューコンテンツキャッシュの使用を検討してください。
通常、関連コンテンツが追加または更新されたときにビューのキャッシュを自動的にクリアするために使用されますが、キャッシュセグメントを監視するためのフレームワークを提供します。私はこれを行っていませんが、開発者向けドキュメントを入手できます。
プロジェクトキャッシュアクションを見てください。それはまさにあなたが望むものを行います。状況に応じてルールを使用できる場合は、カスタムコードを作成する必要さえありません。モジュールをそのまま使用して、特定のビューのキャッシュをクリアするルールを設定するだけです。それ以外の場合は、ビューキャッシュをプログラムでクリアするためのガイドとしてどのように機能するかの内部を確認してください。
余計に推測するのではなく、ワニスのようなリバースプロキシキャッシングシステムを検討しましたか?これらは驚くべきパフォーマンスを提供し、ビューやノードなどのdbキャッシングをやや意味のないものにします(多くのログインユーザーがいて、それらのためにこのキャッシングが必要な場合を除きます)。