CodeBlanks Logo Icon CodeBlanks

alias (takma ad)

PHP kursu · İleri seviye · Ders 29/92

use ... as ile uzun sınıf adlarına takma ad vermeyi öğrenirsin.

use ... as ile takma ad

Uzun sınıf adlarını kısaltmak için use App\Services\AccountService as AccountSvc; yazabilirsin. Bundan sonra new AccountSvc() yazman yeterli olur; kodun daha okunaklı hale gelir.

as anahtar kelimesi sınıfa farklı bir kısa ad verir. Gerçek sınıf adı değişmez; yalnızca bu dosyadaki kullanım kısaltılır ve sadeleşir.

Ne zaman alias gerekir?

Aynı dosyada iki farklı namespace'den aynı kısa adlı sınıfa ihtiyaç duyarsan alias şarttır. Örneğin App\Models\User ve App\Auth\User aynı dosyada gerekliyse, birini as UserModel, diğerini as UserAuth olarak içe aktarırsın.

Aksi halde PHP çakışma hatası verir ve dosya çalışmaz; alias bu durumu temiz biçimde çözer.

Uygulama alias ile sınıfı kısa adıyla kullan

App\Controller namespace'i içinde App\Services\AccountService sınıfını AccountSvc takma adıyla içe aktar. new AccountSvc() oluştur ve $svc->owner() metodunun döndürdüğü değeri 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\Services\AccountService as AccountSvc; yaz. $svc = new AccountSvc(); ile oluştur, echo $svc->owner() . "\n"; ile yazdır.
Örnek çözüm:
<?php

namespace App\Services {
    class AccountService {
        public function owner(): string {
            return "Ayşe";
        }
    }
}

namespace App\Controller {
    use App\Services\AccountService as AccountSvc;
    $svc = new AccountSvc();
    echo $svc->owner() . "\n";
}

Kendini test et

  1. use App\Services\User as UserSvc; ne yapar?

    • User sınıfını siler
    • Yeni bir UserSvc sınıfı oluşturur
    • User sınıfını UserSvc adıyla içe aktarır
    • User sınıfının bir kopyasını üretir
    Cevabı göster

    User sınıfını UserSvc adıyla içe aktarır — Doğru. as anahtarıyla User sınıfı UserSvc adıyla içe aktarılır.

  2. alias bildirimini tamamla

    <?php
    namespace App\Controller;
    
    ____ App\Services\AccountService as AccountSvc;
    
    $cfg = ["alias" => "AccountSvc"];
    $svc = new AccountSvc();
    
    Cevabı göster
    <?php
    namespace App\Controller;
    
    use App\Services\AccountService as AccountSvc;
    
    $cfg = ["alias" => "AccountSvc"];
    $svc = new AccountSvc();
    
  3. alias kavramlarını eşleştir

    use ... as
    Takma ad verir
    App\Auth\User as UserAuth
    İkinci User'a ad verir
    new UserAuth()
    Kısa adla örnekler
    as
    Alias anahtarı

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