PHP 8’de kategoriler (categories), kodun daha iyi organize edilmesini sağlayan önemli yapılardır. Ancak, "kategori" terimi PHP dilinde yerleşik bir özellik olarak bulunmamaktadır. Muhtemelen PHP'de kullanılan "Namespace" (ad alanları) ya da "Trait" (özellik) gibi yapılarla karıştırılıyor olabilir. Bu yüzden hem namespace hem de trait gibi yapıların PHP 8’de nasıl kullanıldığını aşağıda açıklayayım:
1. Namespace (Ad Alanları):
-
Amaç: Sınıflar, fonksiyonlar ve sabitlerin isimlendirme çakışmalarını önlemek.
-
Kullanım: Birden fazla sınıfın aynı isimde olabileceği büyük projelerde, sınıfları farklı ad alanları (namespace) içinde tanımlayarak çakışmaların önüne geçilir.
<?php namespace ProjeKategoriler; class Urun { public function __construct( ) { echo "Bu bir ürün kategorisidir."; } } ?>
-
Kullanım Örneği:
<?php require 'Urun.php'; use ProjeKategorilerUrun; $urun = new Urun(); // Bu bir ürün kategorisidir. ?>
-
Kullanım Örneği:
2. Trait (Özellikler):
-
Amaç: Birden fazla sınıf arasında kod tekrarını önlemek.
-
Kullanım: Aynı fonksiyonların birden fazla sınıfta kullanılmasını sağlamak için, trait kullanılır. Bu, çoklu kalıtımın bir alternatifi olarak işlev görür.
<?php trait Kategori { public function kategoriBilgisi( ) { return "Bu bir kategori bilgisi."; } } class Urun { use Kategori; } class Hizmet { use Kategori; } $urun = new Urun(); echo $urun->kategoriBilgisi(); // Bu bir kategori bilgisi. $hizmet = new Hizmet(); echo $hizmet->kategoriBilgisi(); // Bu bir kategori bilgisi. ?>
PHP 8 ile gelen yenilikler bu yapılarla daha esnek ve güçlü kod yazmayı mümkün kılmaktadır.