CodeBlanks Logo Icon CodeBlanks

namespace tanımlama

PHP kursu · İleri seviye · Ders 27/92

namespace anahtar kelimesiyle kodu paketlemeyi öğrenirsin.

namespace ne işe yarar?

Bazı projelerde aynı isimli sınıflar çakışır: iki kütüphane de User tanımlamış olabilir. namespace bu sorunu çözer; sınıfları paketlere ayırır. namespace App; yazdığında User sınıfı aslında App\User adını taşır.

Bildirim PHP açılış etiketinden hemen sonra, dosyadaki ilk ifade olarak yazılır. Tüm sınıf, fonksiyon ve sabitler bu namespace'e dahil olur. \ ile seviyeleri ayırırsın: App\Models\User.

namespace bildirimi nasıl yazılır?

Bir dosyada namespace App\Models; yazdığında, PHP bu dosyadaki tüm sınıfları App\Models paketine koyar. Bildirimden önce sadece PHP açılış etiketi ve declare ifadesi bulunabilir; başka kod olamaz.

__NAMESPACE__ sabiti mevcut namespace'in adını dize olarak verir. Bu, hata ayıklarken veya dinamik sınıf adı üretirken işe yarar.

Uygulama namespace ve sınıf tanımla

namespace App\Utils; tanımla. İçinde Helper sınıfı ve public static function greet($name) metodu olsun; metod "Merhaba, " ön ekiyle adı yazdırsın. Sonra Helper::greet("Ayşe") çağır ve __NAMESPACE__ yazdır.

Örnek çözümü göster
:greet("Ayşe"); ve echo __NAMESPACE__ . "\n"; çağır.
Örnek çözüm:
<?php
namespace App\Utils;

class Helper {
    public static function greet($name) {
        echo "Merhaba, " . $name . "!\n";
    }
}

Helper::greet("Ayşe");
echo __NAMESPACE__ . "\n";

Kendini test et

  1. namespace ne işe yarar?

    • Kodu daha hızlı çalıştırır
    • Aynı adlı sınıfların çakışmasını önler
    • Veritabanı bağlantısını yönetir
    • Otomatik hata yakalamayı sağlar
    Cevabı göster

    Aynı adlı sınıfların çakışmasını önler — Doğru. namespace aynı isimli sınıfları farklı paketlere ayırır.

  2. namespace bildirimini tamamla

    <?php
    ____ App\Services\UserService;
    
    class UserService {
        public array $info = ["name" => "default"];
    }
    
    Cevabı göster
    <?php
    namespace App\Services\UserService;
    
    class UserService {
        public array $info = ["name" => "default"];
    }
    
  3. namespace kavramlarını eşleştir

    namespace
    Kodu paketler
    __NAMESPACE__
    Mevcut adı verir
    \
    Seviye ayracı
    ;
    Bildirimi bitirir

İleri seviye bölümündeki tüm dersler