CodeBlanks Logo Icon CodeBlanks

use ile içe aktarma

PHP kursu · İleri seviye · Ders 28/92

use ile başka bir namespace'den sınıf içe aktarmayı öğrenirsin.

use ile içe aktarma

Başka bir namespace'deki sınıfı kullanmak için her seferinde tam ad yazmak yorucudur. use App\Models\User; satırıyla sınıfı içe aktarırsın; bundan sonra yalnızca User yazman yeterli olur.

use bildirimi namespace bildiriminden sonra, sınıf tanımlarından önce yazılır. Birden fazla sınıf içe aktarmak için her biri için ayrı bir use satırı yazarsın.

Tam ad vs kısa ad

use olmadan sınıfın tam adını her seferinde yazmalısın: new \App\Models\User(). Burada baştaki \ kök namespace'ten başla anlamına gelir; uzun adlar çabuk şişer ve okunurluğu düşürür.

use App\Models\User; yazdıktan sonra new User() yazabilirsin. İki biçim de aynı sınıfı çağırır; use yalnızca okunurluğu artırır ve tekrarı azaltır.

Uygulama use ile sınıfı içe aktar ve kullan

App\Service namespace'i içinde App\Models\User sınıfını use ile içe aktar. new User("Ayşe") oluştur ve $user->name özelliğini yazdır. Demo için aynı dosyada iki namespace süslü parantezli sözdizimiyle tanımlıdır.

Örnek çözümü göster
use App\Models\User; yaz. $user = new User("Ayşe"); ile oluştur, echo $user->name . "\n"; ile yazdır.
Örnek çözüm:
<?php

namespace App\Models {
    class User {
        public string $name;
        public function __construct(string $name) {
            $this->name = $name;
        }
    }
}

namespace App\Service {
    use App\Models\User;
    $user = new User("Ayşe");
    echo $user->name . "\n";
}

Kendini test et

  1. use bildirimini tamamla

    <?php
    namespace App\Service;
    
    ____ App\Models\User;
    
    $cfg = ["role" => "admin"];
    $user = new User();
    
    Cevabı göster
    <?php
    namespace App\Service;
    
    use App\Models\User;
    
    $cfg = ["role" => "admin"];
    $user = new User();
    
  2. use App\Models\User; ne yapar?

    • Yalnızca bu dosyada User adıyla kullanmanı sağlar
    • User sınıfını kalıcı olarak yeniden adlandırır
    • App\Models namespace'ini siler
    • Yeni bir User sınıfı oluşturur
    Cevabı göster

    Yalnızca bu dosyada User adıyla kullanmanı sağlar — Doğru. use ile User sınıfı bu dosyada kısa adıyla kullanılır.

  3. use kavramlarını eşleştir

    use ...;
    Sınıfı içe aktarır
    new User()
    Kısa adla örnekler
    \App\Models\User
    Tam yol
    use
    İçe aktarma anahtarı

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