Bu işlem genelde veriyi cachelemek( önbelleğe almak ) için kullanılır . Örneklemek gerekirse şöyle açıklayabiliriz , belli bir adresten bir json verisi çektiğini varsayalım her işlem sırasında adrese gidip aynı veriyi çekmesi gerekecektir , bu da sistemde uzun süreli bir yavaşlamaya dönüşecektir.

Burada yapmamız gereken işlem ilk çektiğimizde onu sistemimizde cahceleyip ardından cachelediğimiz veriyi kullanmak olacaktır.

Bu işlem Drupal 7 ve Drupal 8 için değişik şekillerde işlemektedir. 

Drupal 7 için ;

Veriyi günde bir kez çekeceğimiz için çektiğimiz günü ve çektiğimiz veriyi cacheleyip , ardından aynı günde isek tekrar çekmeyeceğiz.

    $today = date("m.d.y");
    
    if(variable_get('myvariablevaluecreated') != $today ){
      
      $newjson = file_get_contents("http://example/Test.json");
      
      variable_set('myvariablevalue', $newjson);
        
        variable_set('myvariablevaluecreated', date("m.d.y"));
        
      }
      $json = variable_get('frekanslistvariable');

 

variable_set('cachelenendegiskenadi' , 'merhabalar')  işlemi cachlenecek değişken e veriyi girmemizi sağlar.

variable_get('cachelenendegiskenadi')  işlemi cachlenen değişken e girdiğimiz veriyi çekmemizi sağlar.

Şimdi variable_get('cachelenendegiskenadi') şeklindeki kod u çalıştırıp ekrana bastığım takdirde "merhabalar" yazısını ekrana basacaktır.

Drupal 8 için ;

Drupal 8  drupal 7 ye nazaran daha fazla mvc yönelimli olduğu için , yapmamız gereken işlemler biraz daha karışık gelebilir.

Bu variable tanımlamasını bir module içinde kullandığımız farzedelim , 

Modul klasörümüzün içerisine 

moduladi.schema.yml dosyası oluşturup içini aşağıdaki şekilde dolduralım.

            
          moduladi.settings:

             type: mapping

                label: Degiskenlerimin ayarlari burada bulunmaktadir

                mapping:

                  ilkdegiskenim:

                    type: string

            

moduladi.settings.yml dosyası oluşturup içini aşağıdaki şekilde dolduralım.


ilkdegiskenim: 'Merhabalar ilk degisken icerigim'

Değişkenimizi tanımladık içerik girdik şimdi değişkenimizi çağıralım . 

$config = \Drupal::config('moduladi.settings'); $ilkdegiskenim = $config->get('ilkdegiskenim');

Kod u çalıştırıp ekrana bastığım takdirde "Merhabalar ilk degisken icerigim" yazısını ekrana basacaktır.

Şimdi bu değişkenimize yeni bir veri tanımlayalım .

$config = \Drupal::service('config.factory')->getEditable('moduladi.settings');
$config->set('ilkdegiskenim', 'ilkdegiskenimin icerigini degistirdim')
->save();

Değişkenimizin içeriğini ilkdegiskenimin icerigini degistirdim yazısı ile değiştirdik.

Bu veri veritabanında saklanmaktadır. min 64 kb max 16 GB şeklinde bulunmaktadır.

Veritabanınıza girdiğinizde `cache_variable` tablosunda eklediğiniz veriyi ve eklenme saatini görebilirsiniz. 

Eklenme saati EPOCH olarak tutulmaktadır.  

Epoch verisini aşağıdaki  şekilde çevrim yapabilirisiniz.

$epoch = 1344988800;
$dt = new DateTime("@$epoch");
echo $dt->format('Y-m-d H:i:s');