it-swarm.com.de

Verwendung von Cache-Aufrufen in Joomla 4

Aus der Dokumentation Ich verwende diesen Teil, um einen großen Datenblock zu speichern

if (empty($families)) {
  $cache = Factory::getCache();
  $families = $cache->call( array( 'JFormFieldFamily', 'getFamilyList' ) );
} 

Ich arbeite perfekt an meinem Joomla 3.9.6, aber meine Erweiterung in Joomla 4 wirft dies auf

Warning: call_user_func_array() expects parameter 1 to be a valid callback,
class 'Joomla\CMS\Cache\Cache' does not have a method 'call' in
site\libraries\src\Cache\CacheController.php on line 74

Blick in die Dokumentation für Joomla\CMS\Cache\Cache

$families = $cache->call( array( 'JFormFieldFamily', 'getFamilyList' ) );

wird

$families = $cache->get( array( 'JFormFieldFamily', 'getFamilyList' ) );

und funktioniert einwandfrei mit Joomla 3.9/4.

Muss ich die Methode $cache->store() verwenden?

2
thednp

Die call -Methode wurde für Joomla 4.0 als entfernt markiert, da es sich lediglich um einen Wrapper für get() handelt.

Sie müssen den Cache nicht manuell speichern, da dies innerhalb der Methode get() erfolgt:

https://github.com/joomla/joomla-cms/blob/4.0-dev/libraries/src/Cache/Controller/CallbackController.php#L139

2
Lodder