APCu nedir neden kullanmalıyız

APCu, PHP için kullanılan paylaşımlı bellek tabanlı bir cache (önbellek) uzantısıdır. Açılımı Alternative PHP Cache – User Cache’tir.

APCu nedir?

APCu, PHP değişkenlerini RAM’de saklamanı sağlar. Böylece aynı veri her istek geldiğinde:

  • tekrar hesaplanmaz,
  • tekrar veritabanından çekilmez,
  • dosyadan tekrar okunmaz.

⚠️ Önemli:
APCu sadece user cache’tir.
Eskiden APC opcode cache de yapıyordu ama artık opcode cache işi OPcache’e aittir.

Neden kullanmalıyız?

1️⃣ Performans artışı

RAM’den okuma:

  • Veritabanından okumaya göre çok daha hızlıdır
  • Hesaplama maliyetini düşürür

Örnek:

  • Ayarlar
  • Feature flag’ler
  • Yetki listeleri
  • Sık kullanılan sorgu sonuçları

Daha az veritabanı yükü

Aynı veriye her request’te DB gitmek yerine:

  • İlkinde DB → APCu
  • Sonrakiler → direkt APCu

Bu da:

  • Daha az sorgu
  • Daha az latency
  • Daha iyi ölçeklenebilirlik

 Kullanımı çok basit

Redis / Memcached’e göre:

  • Ek servis kurmaya gerek yok
  • PHP extension olarak çalışır
  • Tek sunuculu sistemlerde çok idealdir

Session & küçük veriler için ideal

Şunlar için çok uygundur:

  • Küçük–orta boyutlu veriler
  • Sık okunan, nadir değişen bilgiler
  • Request bazlı shared data

Ne zaman APCu kullanmamalıyız?

Birden fazla sunucu varsa

  • APCu sunucuya özeldir
  • Load balancer arkasında tutarsızlık olur

Büyük veriler için

  • RAM’i hızla doldurur

Kalıcı veri için

  • Restart olunca cache silinir

Bu durumlarda:

  • Redis
  • Memcached
    daha doğru seçimdir.

PHP ile bir klasördeki .jpg dosyalarını .txt yazdırma

PHP ile bir klasördeki .jpg dosyalarını .txt yazdırma

 

<?php

// imageLarge klasörünün yolu
$klasor_yolu = 'imageLarge';

// Klasördeki tüm dosyaları alır
$dosyalar = scandir($klasor_yolu);

// .jpg uzantılı dosyaları filtreler
$jpg_dosyalari = array_filter($dosyalar, function($dosya) {
    return pathinfo($dosya, PATHINFO_EXTENSION) === 'jpg';
});

// Dosya adlarını bir txt dosyasına yazma
$dosya_adi = 'dosya_listesi.txt';
$dosya = fopen($dosya_adi, 'w');
foreach ($jpg_dosyalari as $dosya_adi) {
    fwrite($dosya, $dosya_adi . PHP_EOL);
}
fclose($dosya);

echo "Dosya adları $dosya_adi adlı dosyaya başarıyla yazıldı.";
?>

 

PHP – İşe yarar az kullanılan php functionları

  1. Fonksiyonlar ile Değişken Sayıda Parametre Kullanma:

Bir fonksiyona değişken sayıda parametre geçirmek için func_get_args() veya (splat operatörü) kullanılabilir.

function toplam(...$sayilar) {
    return array_sum($sayilar);
}

echo toplam(1, 2, 3, 4); // Çıktı: 10

 

  1. Null Coalescing Operatörü:

Null coalescing operatörü (??) null olmayan ilk değeri döndürür.

$ad = $_GET['ad'] ?? 'Misafir';

 

  1. Ternary Operatör (Üçlü Operatör):

Ternary operatör, kısa if-else ifadeleri oluşturmak için kullanılır.

$sonuc = ($sayi > 0) ? "Pozitif" : "Negatif";

 

  1. Foreach ile Anahtar ve Değerleri Kullanma:

Foreach döngüsünde anahtarları ve değerleri aynı anda kullanabilirsiniz.

$bilgiler = array("isim" => "Ahmet", "yas" => 30);

foreach ($bilgiler as $anahtar => $deger) {
    echo $anahtar . ": " . $deger . "<br>";
}

 

  1. Fonksiyonları Değişkenler Olarak Kullanma:

Fonksiyonları değişken olarak kullanabilirsiniz.

$funcName = function($a, $b) {
    return $a + $b;
};

echo $funcName(2, 3); // Çıktı: 5

 

  1. Yararlı İç Dahil Etme Fonksiyonları:

include_once(), require_once(), file_get_contents(), ve file_put_contents() gibi fonksiyonlar dosya işlemlerini ve içeriği yönetmek için kullanışlıdır.

$content = file_get_contents("dosya.txt");
file_put_contents("yeni_dosya.txt", $content);

 

Bu tür kod parçaları, PHP’nin güçlü ve esnek yapısını daha etkili bir şekilde kullanmanıza yardımcı olabilir.

 

PHP ile 1 den 10 kadar sayıların toplamı en az kodla

<?php
$toplam = 0;

for ($sayi = 1; $sayi <= 10; $sayi++) {
    $toplam += $sayi;
}

echo "1'den 10'a kadar olan sayıların toplamı: " . $toplam;
?>

En kısa kod:

<?php
$toplam = array_sum(range(1, 10));
echo "1'den 10'a kadar olan sayıların toplamı: " . $toplam;
?>

Bu kod, range() işlevini kullanarak 1 ile 10 arasındaki sayıları oluşturur ve array_sum() işlevini kullanarak bu sayıların toplamını hesaplar. Sonuç aynıdır: 1‘den 10’a kadar olan sayıların toplamı: 55

PHP – SEO uyumlu Fonksiyon (Tüm Dilleri destekler)

Aşağıdaki fonksiyon ile URL adreslerini seo uyumlu hale getire bilirsiniz. Türkiyede paylaşılan bir çok seo functionu çoğu dili desteklemediği için düzgün çalışmamaktadır. Bu function dil ayrımı yapmadan URL adresinizi seo şekline dönüştür.

function seo($s)
{
    $tr = array('ş', 'Ş', 'ı', 'I', 'İ', 'ğ', 'Ğ', 'ü', 'Ü', 'ö', 'Ö', 'Ç', 'ç', '(', ')', '/', ':', ',');
    $eng = array('s', 's', 'i', 'i', 'i', 'g', 'g', 'u', 'u', 'o', 'o', 'c', 'c', '', '', '-', '-', '');
    $s = str_replace($tr, $eng, $s);
    $s = strtolower($s);
    $s = preg_replace('/&amp;amp;amp;amp;amp;amp;amp;amp;.+?;/', '', $s);
    $s = preg_replace('/\s+/', '-', $s);
    $s = preg_replace('|-+|', '-', $s);
    $s = preg_replace('/#/', '', $s);
    $s = str_replace('.', '-', $s);
    $s = preg_replace('~-+~', '-', $s);
    $s = iconv('utf-8', 'us-ascii//TRANSLIT', $s);
    $s = preg_replace('~[^-\w]+~', '', $s);
    $s = preg_replace('~[^\pL\d]+~u', '-', $s);
    $s = trim($s, '-');
    return $s;
}