PHP code example of webarchitect609 / bitrix-cache

1. Go to this page and download the library: Download webarchitect609/bitrix-cache library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

webarchitect609 / bitrix-cache example snippets


     

    use WebArch\BitrixCache\Cache;
    
    $result = Cache::create()
                   ->callback(
                       function () {
                           /**
                            * Результат выполнения кода здесь
                            * кешируется на 1 час.
                            */
                           return date(DATE_ISO8601);
                       }
                   );
    

    use WebArch\BitrixCache\Cache;
    
    $result = Cache::create()
                   ->setPath('/myPath')
                   ->setKey('myKey')
                   ->setTTL(60)
                   ->callback(
                       function () {
                           /**
                            * Результат выполнения этого
                            * замыкания кешируется.
                            */
                           return date(DATE_ISO8601);
                       }
                   );
    

    use WebArch\BitrixCache\Cache;
    
    Cache::create()
         ->setPath('/myPath')
         ->delete('myKey');
    

    use WebArch\BitrixCache\Cache;
    
    $result = Cache::create()
                   ->setPath('/myPath')
                   ->addTag('myTag')
                   ->addIblockTag(1)
                   ->callback(
                       function () {
                           return date(DATE_ISO8601);
                       }
                   );
    

    use WebArch\BitrixCache\Cache;
    
    $cache = Cache::create();
    $result = $cache->callback(
                        function () use($cache) {
                            $cache->addTag('closureTag');

                            return date(DATE_ISO8601);
                        }
                    );
    

    use WebArch\BitrixCache\Cache;
    
    Cache::create()
         ->clearByTag('myTag'); 
    

    use WebArch\BitrixCache\Cache;
    
    $result = Cache::create()
                   ->setBaseDir('myBaseDir')
                   ->setPath('/myPath')
                   ->setKey('myKey')
                   ->setTTL(60)
                   ->addIblockTag(2)
                   ->addTag('myTagOne')
                   ->addTag('myTagTwo')
                   ->clearTags()
                   ->addTag('TheOnlyTag')
                   ->callback(
                       function () {
                           return date(DATE_ISO8601);
                       }
                   );
    

    use WebArch\BitrixCache\Cache;
        
    $cache = Cache::create();
    $result = $cache->callback(
                        function () use ($cache) {
                            /**
                             * Например, API вернул ответ, что товар не найден.
                             */
                            $productNotFound = true;
                            if($productNotFound){
                                $cache->abort();
                            }

                            return date(DATE_ISO8601);
                        }
                    );
    

    use WebArch\BitrixCache\Cache;
   
    $result = Cache::create()
                   ->setTTLInterval(new DateInterval('P1MT15M'))
                   ->callback(
                       function () {
                           return date(DATE_ISO8601);
                       }
                   );
    

    use WebArch\BitrixCache\Cache;
    
    Cache::create()
         ->setExpirationTime(new DateTimeImmutable('2020-12-30T23:59:59', new DateTimeZone('+03:00')))
         ->set('myKey', 'someValue');
    

    use WebArch\BitrixCache\Cache;
    
    $cache = Cache::create()
                 ->setBaseDir('myBaseDir')
                 ->setPath('/myPath');
    
    $cache->set('myKey', 'myValue', 86400);
    $result = $cache->get('myKey', 'defaultValue');
    $cache->delete('myKey');
    $cache->clear();
    $cache->setMultiple(
       [
           'key1' => 'value1',
           'key2' => 'value2',
       ]
    );
    $multipleResult = $cache->getMultiple(['key1', 'key2', 'key3'], 'defaultValueForMissingMultiple');
    $cache->deleteMultiple(['key1', 'key2', 'key3', 'key4']);
    /**
    * Внимание! Этот метод можно использовать только для прогрева кеша. См. примечание к методу.
    */
    $cache->has('key2');
    

    use \WebArch\BitrixCache\AntiStampedeCacheAdapter;
    
    $path = '/some/path';
    $defaultLifetime = 60;
    $baseDir = 'someBaseDir';
    $cacheAdapter = new AntiStampedeCacheAdapter($path, $defaultLifetime, $baseDir);
    

    use \WebArch\BitrixCache\AntiStampedeCacheAdapter;
    use \WebArch\BitrixCache\CacheItem;
    
    /** @var AntiStampedeCacheAdapter $cacheAdapter */
    $cacheAdapter->get(
        'myKey',
        function (CacheItem $cacheItem) {
            $cacheItem->expiresAfter(3600);
            
            return date(DATE_ISO8601);
        }
    );