13 Ocak 2017 Cuma

PHP 7 ile Gelen Yenilikler

Merhaba Webkolog takipçileri!

Bugün sizlere PHP dünyasında devrim niteliğinde değişiklikler getiren PHP 7 sürümünü ve beraberinde getirdiği yenilikleri anlatacağım. PHP 7, sadece performans artışıyla değil, aynı zamanda geliştirici deneyimini iyileştiren birçok yeni özellik ve önemli değişikliklerle geldi. Hazırsanız, bu heyecan verici dünyaya birlikte dalalım!

PHP 7 ile Gelen Başlıca Yenilikler

PHP 7'nin en dikkat çekici özelliklerinden biri, şüphesiz ki performans artışı. Önceki sürümlere göre neredeyse iki kat daha hızlı çalışabilen PHP 7, web uygulamalarınızın çok daha seri yanıt vermesini sağlıyor. Ancak yenilikler sadece performansla sınırlı değil. İşte diğer önemli eklentiler:

  • Skaler Tip Bildirimleri ve Geri Dönüş Tipi Bildirimleri: Artık fonksiyon parametreleri ve geri dönüş değerleri için int, float, string ve bool gibi skaler tipleri belirtebiliyoruz. Bu, kodumuzun daha okunaklı, hatasız ve bakımı kolay olmasını sağlıyor.
  • 
    function sumOfInts(int $a, int $b): int {
        return $a + $b;
    }
    
    echo sumOfInts(5, 10); // Çıktı: 15
    
  • Null Birleştirme Operatörü (??): Bir değişkenin tanımlı olup olmadığını ve null olup olmadığını kontrol etmek için daha kısa ve temiz bir yol sunar.
  • 
    $username = $_GET['user'] ?? 'Misafir';
    echo $username;
    
  • Uzay Gemisi Operatörü (<=>): Üç yönlü karşılaştırma yapar. Sol operand sağdan küçükse -1, eşitse 0, büyükse 1 döndürür. Özellikle sıralama işlemlerinde oldukça kullanışlıdır.
  • 
    echo 1 <=> 1; // 0
    echo 1 <=> 2; // -1
    echo 2 <=> 1; // 1
    
  • Anonim Sınıflar: Tek kullanımlık basit nesneler oluşturmak için hızlı bir yol sunar.
  • 
    $app = new class {
        public function greet() {
            return "Merhaba Dünya!";
        }
    };
    
    echo $app->greet();
    
  • try...catch (Throwable $t) Desteği: PHP 7 ile birlikte, Exception ve Error arayüzlerini uygulayan Throwable arayüzü tanıtıldı. Bu sayede, hem hataları (Errors) hem de istisnaları (Exceptions) tek bir catch bloğunda yakalayabiliriz.
  • 
    try {
        // Bazı işlemler...
        throw new Error("Bu bir hata!");
    } catch (Throwable $t) {
        echo "Yakalanan hata: " . $t->getMessage();
    }
    
  • Çoklu catch Blokları (catch (ArithmeticError | Exception $e)): Artık tek bir catch bloğunda birden fazla istisna veya hata türünü virgülle ayırarak belirtebiliriz. Bu, kod tekrarını azaltarak daha temiz hata yönetimi sağlar.
  • 
    try {
        $result = 10 / 0; // Bir ArithmeticError fırlatır
    } catch (ArithmeticError | Exception $e) {
        echo "Bir hata oluştu: " . $e->getMessage();
    }
    
  • Küresel Basit Değişkenlerde Süslü Parantez Kuralı: Daha tutarlı bir değişken erişimi için küresel kapsamdaki basit değişkenlerde süslü parantez kullanımı belirli durumlarda zorunlu hale getirildi. Bu, potansiyel belirsizlikleri ortadan kaldırır.
  • Sabit Değişkenlerde Dizi Kullanımı: Artık const anahtar kelimesiyle sabit bir dizi tanımlayabiliyoruz. Bu, yapılandırma değerlerini veya değişmez veri kümelerini tanımlamak için oldukça faydalı.
  • 
    const MY_COLORS = ['red', 'green', 'blue'];
    echo MY_COLORS[0]; // Çıktı: red
    

Kullanımdan Kaldırılan Özellikler ve Fonksiyonlar

PHP 7 ile birlikte bazı eski ve güvenlik zafiyetleri olan veya daha iyi alternatifleri bulunan özellikler de kaldırıldı. Bu, dilin daha modern ve güvenli bir yapıya bürünmesini sağlıyor.

Kaldırılan Özellikler:

  • List() fonksiyonundaki tersten sıralama özelliği kaldırıldı.

Kaldırılan Fonksiyonlar:

  • ereg ailesi fonksiyonları (PCRE fonksiyonları ile değiştirildi).
  • mssql uzantısı.
  • mysql uzantısı (MySQLi veya PDO ile değiştirildi).
  • sybase_ct uzantısı.

Bu kaldırmalar, uygulamalarınızın daha güncel ve güvenli veritabanı sürücülerini kullanmasını teşvik ediyor.

Değişken Söz Dizimi Davranışları

PHP 7, bazı karmaşık değişken söz dizimi durumlarında davranışları daha tutarlı hale getirdi. Bu değişiklikler, özellikle dinamik değişken isimleri veya iç içe dizi/nesne erişimlerinde kendini gösteriyor. Aşağıdaki tablo, PHP 5 ve PHP 7 arasındaki farklı yorumlamaları özetliyor:

İFADE PHP 5 YORUMU PHP 7 YORUMU
$foo['bar']['baz'] ${$foo['bar']['baz']} ($$foo)['bar']['baz']
$foo->$bar['baz'] $foo->{$bar['baz']} ($foo->$bar)['baz']
$foo->$bar['baz']() $foo->{$bar['baz']}() ($foo->$bar)['baz']()
Foo::$bar['baz']() Foo::{$bar['baz']}() (Foo::$bar)['baz']()

Gördüğünüz gibi, PHP 7 bu tür karmaşık ifadelerde soldan sağa doğru bir değerlendirme sırası benimsiyor. Bu, kodunuzun beklendiği gibi çalışmasını sağlayarak hataları azaltmaya yardımcı oluyor.

PHP 7 ile gelen bu yenilikler ve geliştirmeler, dili daha modern, hızlı ve güvenli hale getirdi. Eğer hala eski bir PHP sürümü kullanıyorsanız, bir an önce PHP 7 veya üstüne geçmenizi şiddetle tavsiye ederim. Bu, hem uygulamalarınızın performansını artıracak hem de daha iyi bir geliştirme deneyimi sunacaktır.

Umarım bu makale, PHP 7'nin sunduğu harikaları anlamanıza yardımcı olmuştur. Kodlamaya devam edin!

Webkolog'u takipte kalın!

Hepinize bol kodlu ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder