CodeBlanks Logo Icon CodeBlanks

Çok seviyeli namespace

PHP kursu · İleri seviye · Ders 31/92

Alt\Modül\Sınıf biçiminde çok seviyeli namespace yapısını öğrenirsin.

Çok seviyeli namespace

Namespace'leri alt seviyelere bölerek bir hiyerarşi kurabilirsin: App\Models\User, App\Services\Auth\Login. Burada App vendor (sağlayıcı) önek, Models ve Services alt seviyelerdir.

Her \ bir seviye ayracıdır. PHP bunları bir ağaç olarak görür: App kök, Models ve Services alt dallardır. Bu yapı büyük projelerde düzeni korur.

Vendor prefix neden önemli?

PSR-4 standardında vendor prefix genellikle üretici veya proje adıdır: Symfony\..., Laravel\..., Monolog\.... Bu, farklı kütüphanelerin namespace'lerinin çakışmasını önler.

Kendi projende de App\... veya MyCompany\Project\... gibi özgün bir prefix seçmek iyi bir alışkanlıktır. Prefix ne kadar özgünse çakışma riski o kadar azdır.

Uygulama Çok seviyeli namespace ve sınıf tanımla

namespace App\Services\Auth; tanımla. İçinde Login sınıfı ve public static function attempt($user) metodu olsun; metod "Giriş: " ön ekiyle kullanıcı adını yazdırsın. Sonra Login::attempt("Ayşe") çağır ve __NAMESPACE__ yazdır.

Örnek çözümü göster
" . $user . "\n"; } } ekle. Login::attempt("Ayşe"); ve echo __NAMESPACE__ . "\n"; çağır.
Örnek çözüm:
<?php

namespace App\Services\Auth;

class Login {
    public static function attempt($user) {
        echo "Giriş: " . $user . "\n";
    }
}

Login::attempt("Ayşe");
echo __NAMESPACE__ . "\n";

Kendini test et

  1. Çok seviyeli namespace bildirimini tamamla

    <?php
    ____ App\Models\Repository\UserRepository;
    
    $info = ["table" => "users"];
    class UserRepository {}
    
    Cevabı göster
    <?php
    namespace App\Models\Repository\UserRepository;
    
    $info = ["table" => "users"];
    class UserRepository {}
    
  2. Çok seviyeli namespace kavramlarını eşleştir

    App
    Sağlayıcı ön eki
    \
    Seviye ayracı
    App\Models\User
    Üç seviyeli ad
    App\Services\Auth
    Dört seviyeli ad
  3. App\Models\User adında App nedir?

    • Bir sınıf adı
    • Vendor (sağlayıcı) ön eki
    • Bir fonksiyon adı
    • Bir değişken adı
    Cevabı göster

    Vendor (sağlayıcı) ön eki — Doğru. App vendor ön ekidir; projenin kök kimliğini belirler.

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