PHP'de File Cache Nasıl Yapılır

Bu yazıda eski blog adresimdeki olan ve GitHub'da paylaştığım bir sınıfım ile alakalı. Bu sınıfı 14 Nisan 2015 tarihinde yazıp GitHub adresime yüklemişim ve üzerinden neredeyse 4 yıl geçmiş. Zaman çok çabuk geçtiğini bunları görünce anlıyorum. Şimdi sorabilirsiniz, neden 4 yıl önceki paylaştığın bir sınıfı yıl olmuş 2019 paylaşıyorsun. Çünkü halen kullanan kişiler olduğunu biliyorum ve PHP 8 bile gelse hiç yarı yolda bırakmayacağını biliyorum. Mazimizi canlandırdığımıza göre sınıfı anlatayım biraz.

sCache Sınıf Kullanımı
Cache ayarları opsiyoneldir, boş bırakılırsa sabit(default) değerler geçerli sayılacaktır. Comment şeklinde default değerler verilmiştir. Daha ne yapayım söyle :)
/*  settings();

sCache::settings(array(
'_path' => 'cache',
'_name' => 'default',
'_extension' => 'scache'
));
*/

// Örnek
sCache::settings(array(
'_path' => 'cache',
'_name' => 'cache',
'_extension' => '.selco'
));

Şimdi cache tanımlamasını göstereyim, belirlediğimiz anahtar ile daha sonradan istediğimizi veriye ulaşabileceğiz.
/*  setCache();

sCache::setCache($key, $data, $writing = FALSE);
NOT: Daha önce tanımlanmış bir cache üstüne yazmak için $writing değeri TRUE yapınız.
*/

// Örnek
try {

$boolean = sCache::setCache('test', 'test içerik');
echo ($boolean) ? 'cache tanımlandı.' : 'cache tanımlanamadı.';

} catch (Exception $e )
{
echo $e->getMessage(); // Hata oluşursa ekrana yaz.
}

Tanımlanan cache kaydına ulaşmak ise şöyle olmaktadır. Unutulmamalı ki setCache() içerisinde belirlediğimiz anahtarımız ile ulaşacağız.
/*  getCache();

sCache::getCache($key);
*/

// Örnek
try {

$string = sCache::getCache('test');
echo $string;

} catch (Exception $e )
{
echo $e->getMessage(); // Hata oluşursa ekrana yaz.
}

Bazen cache okumak yerine nerede olduğunu merak ederiz, yani ben öyle olduğum için onuda eklemiştim. Onu tespit etmeyi de böyle yapıyoruz.
/*  getCacheDir();

sCache::getCacheDir($key);
*/

// Örnek
try {

$string = sCache::getCacheDir('test');
echo $string;

} catch (Exception $e )
{
echo $e->getMessage(); // Hata oluşursa ekrana yaz.
}

Bazen manuel şekilde yada istemsizce bir cache dosyamız silinmiş olabilir, tabi onunda kontrolünü şöyle yapıyoruz.
/*  isCached();

sCache::isCached($key);
*/

// Örnek
try {

$boolean = sCache::isCached('test');
echo ($boolean) ? 'Cache var' : 'Cache yok';

} catch (Exception $e )
{
echo $e->getMessage(); // Hata oluşursa ekrana yaz.
}

Şimdi cache ile bir işimiz kalmadı ve ftp de boş bir alan kaplamasın istiyorsak onu da ahanda böyle yapıyoruz.
*  destroyCache();

sCache::destroyCache($key);
*/

// Örnek
try {

$boolean = sCache::destroyCache('test');
echo ($boolean) ? 'Cache silindi' : 'Cache silinemedi.';

} catch (Exception $e )
{
echo $e->getMessage(); // Hata oluşursa ekrana yaz.
}

Ben bu sınıfı kullanmak istemiyorum, nalet olsun senin sınıfınıda deyip tüm cache kayıtlarını silmek için şöyle bir kullanımı var.
/*  destroyAllCaches();

sCache::destroyAllCaches();
*/

// Örnek
try {

$boolean = sCache::destroyAllCaches();
echo ($boolean) ? 'Tüm kayıtlar silindi.' : 'Kayıtlar silinemedi.';

} catch (Exception $e )
{
echo $e->getMessage(); // Hata oluşursa ekrana yaz.
}

Gerekli olan şeylerin hepsini belirttim. Kullanıp kullanmamanız size kalmış fakat ben olsam kullanırdım. Bu sınıfı GitHub adresimden veyahut verdiğim eklenti indirme yerinden edinebilirsiniz.