Nedir?

T.C. Merkez Bankası tarafından http://www.tcmb.gov.tr/kurlar/today.xml adresinde yayınlanan güncel döviz kurlarını çeken açık kaynaklı bir PHP kütüphanesidir.

Ne İşe Yarar?

Bu kütüphane ile günlük döviz kurları otomatik olarak çekilmektedir. TCMB sitesinde yayınlanan tüm kurlar için mevcut “Alış”, “Satış”, “Efektif Alış” ve “Efektif Satış” değerlerine ulaşabilir ve projenizde kolaylıkla kullanabilirsiniz.

Nasıl Kullanılır?

Teknomavi\Tcmb composer ile kurulabilir.
Projenizdeki composer.json dosyasında require bölümüne “teknomavi/tcmb”: “dev-master”  eklemeniz ve composer update komutunu çalıştırmanız yeterlidir. Composer kurulumu/kullanımı hakkında bilgiye ihtiyacınız varsa bu bağlantıdaki dökümanı incelebilirsiniz.

Eğer kütüphaneyi composer desteklemeyen bir projede kullanacaksanız dağıtımları buradan inceleyebilir ve güncel sürümünü indirebilirsiniz.

Kullanım Örnekleri:

Kütüphanenin en temel kullanım şekli aşağıdadır. Bu örnek her çağrıldığında TCMB üzerindeki güncel kurları çekmektedir.

include "../vendor/autoload.php";
use Teknomavi\Tcmb\Doviz;

$doviz = new Doviz();
echo " USD Alış:" . $doviz->kurAlis("USD");
echo " USD Satış:" . $doviz->kurSatis("USD");
echo " EURO Efektif Alış:" . $doviz->kurAlis("EUR", Doviz::TYPE_EFEKTIFALIS);
echo " EURO Efektif Satış:" . $doviz->kurSatis("EUR", Doviz::TYPE_EFEKTIFSATIS);

Kütüphanenin Her Seferinde TCMB Üzerinden Data Çekmesi Nasıl Engellenir?

TCMB Sitesinden çekilen veriler, sınıfı oluştururken vereceğiniz bir Doctrine\Common\Cache\CacheProvider  üzerinde tutulabilir. Bu sayede performans artışı sağlanabilir. Doctrine Cache hakkında detaylı bilgiye buradan ulaşabilirsiniz.

use Teknomavi\Tcmb\Doviz;

// Doctrine Memcache Init
$memcache = new Memcache();
$memcache->connect('localhost', 11211);
$cacheDriver = new \Doctrine\Common\Cache\MemcacheCache();
$cacheDriver->setMemcache($memcache);

// Doviz Kütüphanesi
$doviz = new Doviz($cacheDriver);
echo " USD Alış:" . $doviz->kurAlis("USD");
echo " USD Satış:" . $doviz->kurSatis("EUR");
echo " EURO Efektif Alış:" . $doviz->kurAlis("EUR", Doviz::TYPE_EFEKTIFALIS);
echo " EURO Efektif Satış:" . $doviz->kurSatis("EUR", Doviz::TYPE_EFEKTIFSATIS);

Doctrine\Common\Cache\CacheProvider harici bir önbellek yapısı kullanıyorum. Ne yapabilirim?

Bu durumda sınıfın oluşturduğu data değişkenini, kütüphane içindeki getData()  fonksiyonu kendiniz saklayıp, tekrar kullanacağınızda setData($data)  fonksiyonu ile sınıfa tekrar verebilirsiniz.

use Teknomavi\Tcmb\Doviz;

// Doviz Kütüphanesi
$doviz = new Doviz();

// Cache Kodları Başladı
$fileName = dirname(__FILE__) . "/data.json";
if (file_exists($fileName)) {
    $data       = json_decode(file_get_contents($fileName), true);
    $cacheValid = $doviz->setData($data);
} else {
    $cacheValid = false;
}
if (!$cacheValid) {
    file_put_contents($fileName, json_encode($doviz->getData()));
}
// Cache Kodları Bitti
echo " USD Alış:" . $doviz->kurAlis("USD");
echo " USD Satış:" . $doviz->kurSatis("USD");
echo " EURO Efektif Alış:" . $doviz->kurAlis("EUR", \Teknomavi\Tcmb\Doviz::TYPE_EFEKTIFALIS);
echo " EURO Efektif Satış:" . $doviz->kurSatis("EUR", \Teknomavi\Tcmb\Doviz::TYPE_EFEKTIFSATIS);

 

 

Fork me on GitHub