The whole if/is_array/isset thing is necessary to allow administrators to overwrite your settings in the typo3conf/LocalConfiguration.php file as the configuration of your extension is loaded afterwards. Thus, it would overwrite any previous configuration settings if you don't check first if they exist.
There are four settings you can use to configure your cache in the TYPO3 caching framework:
- frontend : What type of data is accepted
- backend : Where is the data stored
- options : Additional configuration settings for the back-end
- groups : The cache groups your extension cache belongs to
There's the choice between two cache front-ends and several cache back-ends. A complete list of both including their options is available in the TYPO3 cache front-end/back-end article. The groups setting can be either pages, system, all or a combination thereof. Normally, you should use only one cache group and the group all is the default value if you don't specify one.
Warning: If you use the default database back-end, you should be aware that the default lifetime of cached entries is only ONE HOUR if you don't set it to a different value or to unlimited ("0") like in the example above. Don't forget to set up the "Caching framework garbage collection" scheduler task to clean up old entries. Otherwise, your cache tables will grow infinitely!