Ad alanları (Namespaces)

PHP'de Ad alanları (Namespaces), değişken, fonksiyon ve sınıf isimlerinin benzersiz bir şekilde belirtilmesini sağlayan bir mekanizmadır. Ad alanları, özellikle büyük ve karmaşık projelerde, farklı kod bloklarının birbirleriyle çakışmasını önlemek için kullanılır.

Bir ad alanı tanımlamak için namespace anahtar kelimesi kullanılır. Örneğin, myNamespace adında bir ad alanı tanımlamak için aşağıdaki gibi bir kod yazabiliriz:

namespace myNamespace;

Bu tanımlama, o andan itibaren yazılan kodların myNamespace ad alanı içinde yer alacağını belirtir. Örneğin, myFunction() adında bir fonksiyon myNamespace ad alanı içinde tanımlanacaksa şöyle yazılabilir:

namespace myNamespace;

function myFunction() {
  // Fonksiyon kodları
}

Bu fonksiyona myNamespace\myFunction() şeklinde erişilebilir.

Ayrıca, birden fazla ad alanı da tanımlanabilir. Örneğin:

namespace myNamespace;

function myFunction() {
  // Fonksiyon kodları
}

namespace myOtherNamespace;

class myClass {
  // Sınıf kodları
}

Yukarıdaki örnekte, önce myNamespace ad alanı içinde myFunction() fonksiyonu tanımlanır, ardından myOtherNamespace ad alanı içinde myClass sınıfı tanımlanır.

Ad alanlarını kullanarak, farklı kod bloklarında aynı isimleri kullanabiliriz. Örneğin:

namespace myNamespace;

function myFunction() {
  echo "myNamespace\myFunction()";
}

namespace myOtherNamespace;

function myFunction() {
  echo "myOtherNamespace\myFunction()";
}

// Çıktı: myNamespace\myFunction()
myNamespace\myFunction();

// Çıktı: myOtherNamespace\myFunction()
myOtherNamespace\myFunction();

Yukarıdaki örnekte, myNamespace ve myOtherNamespace ad alanlarında aynı isimli myFunction() fonksiyonları tanımlanmıştır. Fonksiyonlara ad alanları ile erişilerek ilgili çıktılar alınmıştır.

Ad alanlarının kullanımı, kodun okunabilirliğini artırır ve çakışmaları önler. Ancak, ad alanlarının fazla kullanımı, kodu karmaşıklaştırabilir ve okunabilirliği azaltabilir. Doğru bir kullanım, kodun anlaşılabilirliğini artırabilir ve bakımını kolaylaştırabilir.

Last updated

Was this helpful?