Invalidate based on options passed to the global *_metadata functions
public invalidateByOptions ( array $options ) : void | ||
$options | array | Options passed to elgg_(delete|disable|enable)_metadata "guid" if given, invalidation will be limited to this entity |
return | void |
public function testDirectInvalidation() { $cache = new MetadataCache(ElggSession::getMock()); $cache->inject(1, ['foo1' => 'bar']); $cache->inject(2, []); $cache->invalidateByOptions(['guid' => 1]); $this->assertFalse($cache->isLoaded(1)); $this->assertTrue($cache->isLoaded(2)); $cache->invalidateByOptions([]); $this->assertFalse($cache->isLoaded(1)); $this->assertFalse($cache->isLoaded(2)); }
/** * Enables metadata based on $options. * * @warning Unlike elgg_get_metadata() this will not accept an empty options array! * * @warning In order to enable metadata, you must first use * {@link access_show_hidden_entities()}. * * @param array $options An options array. {@link elgg_get_metadata()} * @return bool|null true on success, false on failure, null if no metadata enabled. */ function enableAll(array $options) { if (!$options || !is_array($options)) { return false; } $this->cache->invalidateByOptions($options); $options['metastring_type'] = 'metadata'; return _elgg_batch_metastring_based_objects($options, 'elgg_batch_enable_callback'); }