web-dev-qa-db-ja.com

Drupal 8でプログラム的にキャッシュをクリアする方法は?

Drupal 8サイトで作業しています。このサイトは機能していました。最近、別のマシンに移動しました。

次のようなエラーが表示されます。

Recoverable fatal error: Argument 1 passed to 

Drupal\Component\DependencyInjection\Container::__construct() must be of

 the type array, boolean given, called in [DRUPAL-

PATH]/core/lib/Drupal/Core/DrupalKernel.php on line 883 and defined in 

[DRUPAL-PATH]/core/lib/Drupal/Component/DependencyInjection/Container.php

 on line 119 #0 [DRUPAL-PATH]/core/includes/bootstrap.inc(550): 

_drupal_error_handler_real(4096, 'Argument 1 pass...', 

'/Applications/M...', 119, Array)

プログラムでキャッシュをクリアする必要があります。

5
Pupil

SQLによる

TRUNCATE `cache_bootstrap`;
TRUNCATE `cache_config`;
TRUNCATE `cache_container`;
TRUNCATE `cache_data`;
TRUNCATE `cache_default`;
TRUNCATE `cache_discovery`;
TRUNCATE `cache_dynamic_page_cache`;
TRUNCATE `cache_entity`;
TRUNCATE `cache_menu`;
TRUNCATE `cache_render`;
TRUNCATE `cache_rest`;
TRUNCATE `cachetags`;
TRUNCATE `cache_toolbar`;

Drushによる

drush cr all
4
vijay

以下をお試しください。

cache_clear_all() // For Drupal-7

drupal_flush_all_caches() // For Drupal-8
17

render cacheのような特定のキャッシュをクリアしたい場合は、次のコードを実行できます。

_\Drupal::service('cache.render')->invalidateAll()
_

すべてのキャッシュをクリアしたい場合は、以下を試してください。

_drupal_flush_all_caches()
_

次のサービスはCacheBackendInterfaceを実装し、すべてのキャッシュアイテムを無効としてマークするinvalidateAll()メソッドを持っています。

_cache.bootstrap
cache.config
cache.data
cache.default
cache.discovery
cache.entity
cache.menu
cache.render
cache.static
_
6
Malik Naik

このクラスをチェックしてください。

\Drush\Commands\core\CacheCommands

たとえば、

CacheCommands::clearCssJs();
0
Mykola Veriga