Ana içeriğe atla

Drupal 7 - 8 database 'e özel variable tanımlama

10 dakika okuma süresi

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');

Ofislerimiz

Drupart Locations

Ofislerimiz

Drupart AR-GE

GOSB Teknopark Hi-Tech Bina 3.Kat B3 Gebze - KOCAELİ

+90 262 678 8872

+90 216 706 12 58 

[email protected]

Londra

151 West Green Road, London, England

+44 203 815 6478

[email protected]

Newark

112 Capitol Trail Suite, A437 Newark DE, 19711

+1 (740) 666 6255

[email protected]

Wiesbaden

Hinterbergstraße 27
65207 Wiesbaden
Deutschland

+49 (0) 6151 – 492 70 23

[email protected]