Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel Alt Alan Adı Rotalarında Kök Alan Adı URL’leri Oluşturma: UrlGenerator’ı Kopyala
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel Alt Alan Adı Rotalarında Kök Alan Adı URL’leri Oluşturma: UrlGenerator’ı Kopyala

Yazılım

Laravel Alt Alan Adı Rotalarında Kök Alan Adı URL’leri Oluşturma: UrlGenerator’ı Kopyala

teknomers
Son güncelleme: 21 Nisan 2026 23:27
teknomers
Paylaş
Paylaş

Bu makale, Laravel subdomain yönlendirmelerinde URL oluşturmanın pratik bir yolunu ele alıyor.


Sorun

Bir subdomain altında bir rota kaydedildiğinde:

Route::middleware([])->domain('foo.com')->group(function () {
            Route::get('/test', function () {
                return [
                    'current' => url('test'),  // returns https://foo.com/test
                ];
            });
        });
        

Bu bağlamda, hem url() hem de route() subdomain ile URL’ler üretir. Ancak, eğer ana siteye (app.url) bir URL ihtiyacınız varsa, bunun üstesinden gelmeniz gerekir.


Neden Doğrudan Değiştiremiyorsunuz?

app(UrlGenerator::class) kodu, konteynerden bir singleton döner. Bunun kökenini değiştirmek, istekteki tüm url() çağrılarını etkiler — middleware, cevaplar, her şey. Bu istenmeyen bir yan etkidir.


Çözüm: Clone ve useOrigin Kullan

Route::get('/test', function () {
            // Bir kopyasını klonla — orijinal singleton değiştirilmeden kalır
            $urlGenerator = clone app(UrlGenerator::class);

            // Klonun kökenini app.url (ana site) olarak ayarla
            $urlGenerator->useOrigin(config('app.url'));

            return [
                'origin'  => $urlGenerator->to(),  // https://localhost/test (ana site)
                'current' => url(),                 // https://foo.com/test (subdomain, değiştirilmeden)
            ];
        });
        

Çıktı:

{
          "origin":  "https://localhost/test",
          "current": "https://foo.com/test"
        }
        

clone, iki UrlGenerator örneğini bağımsız hale getirir. useOrigin() yalnızca klonlanmış kopyayı etkiler. Global url() yardımcıları tamamen etkilenmez.


Testte Doğrulama

Test yazarken doğrudan çıktıyı kontrol etmek için dump() kullanabilirsiniz:

it(, function () {
            Route::middleware([])->domain()->group(function () {
                Route::get(, function () {
                    $urlGenerator = clone app(UrlGenerator::class);
                    $urlGenerator->useOrigin(config());

                    return [
                        => $urlGenerator->to(),
                        => url(),
                    ];
                })->name();
            });

            $response = getJson();

            $response->assertJson([
                => ,
                => ,
            ]);
        });
        


Gerçek Dünya Kullanım Senaryoları

E-posta Gönderimi: Kullanıcı tenant.app.com üzerinde, ancak e-postadaki bağlantılar app.com adresine yönlendirilmelidir.

// Bir subdomain kontrolöründe
        public function sendWelcomeEmail(User $user): void
        {
            $urlGenerator = clone app(UrlGenerator::class);
            $urlGenerator->useOrigin(config());

            $loginUrl = $urlGenerator->route();  // https://app.com/login, subdomain yok

            Mail::to($user)->send(new WelcomeMail($loginUrl));
        }
        

API yanıtları ile kanonik bağlantılar: Çoklu kiracı mimarisinde, API yanıtlarında kanonik URL’ler veya yönlendirme bağlantıları ana siteyi işaret etmelidir, kiracının subdomainini değil.


useOrigin Ne Yapar?

useOrigin(), URL oluştururken kullanılan şemayı ve ana makineyi ayarlayan bir UrlGenerator yöntemidir. Route’un domain kısıtlamasını değiştirmez — yalnızca sonuçtaki URL dizesinin köken kısmını değiştirir.

// Etkisi içsel olarak buna benzer
        public function useOrigin(string $origin): static
        {
            [$this->forceScheme,$host] = explode(,$origin);
            $this->forceRootUrl($origin);
            return $this;
        }
        

clone, bu değişikliğin yalnızca o bir örnekte yaşamasını sağlar. Alan dışına çıktığında, değişiklik kaybolur. Global durum kirliliği yoktur.


Özet

Bir subdomain rotasında bir kök alan URL’sine ihtiyacınız olduğunda, clone app(UrlGenerator::class) ardından useOrigin() en temiz yaklaşımdır. Geçici yapılandırma değişiklikleri yok, URL::forceRootUrl() (bu global), manuel dize birleştirme yok.


Kaynaklar

Kaynak: Orijinal Makale

Contents
  • Sorun
  • Neden Doğrudan Değiştiremiyorsunuz?
  • Çözüm: Clone ve useOrigin Kullan
  • Testte Doğrulama
  • Gerçek Dünya Kullanım Senaryoları
  • useOrigin Ne Yapar?
  • Özet
  • Kaynaklar
PHP Geliştirici Haritası 2026: Temel PHP’den AI Destekli Backend’e
Atomik Sorgu Oluşumu (AQC) Tasarım Deseni: Pratik CRUD Uygulama Kılavuzu
Apple iOS 14’ü Tanıttı!
Laravel için LLM Gözlemlenebilirliği – Langfuse ile her AI çağrısını takip et
Laravel için Dinamik Alan Düzeyi Güvenliği
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Diablo 4’te Kin Lordu ile Sırt Sırta Çarpışma Deneyimi
Sonraki Makale Lenovo Legion 5i oyun laptopu: 32GB RAM, RTX 5070, 1,599$

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Corgi, Y Combinator Destekli Sigorta Teknoloji Girişi, Açık Kaynağı Çalmadığını Açıkladı
Genel
2026 Prime Day İndiriminde Fellow Espresso Series 1’de 200 Dolar Tasarruf!
Genel
Acil Uyarı: Rus Hackerlar Signal Yedek Anahtarlarını Hedef Alıyor
Siber Güvenlik
Prime Day’de 36 Saat Sonrasında Aldığım Tek Şey Bu!
Liste
TP-Link’in 8-port 2.5G Ethernet switch’i 50 dolarla harika fırsat!
Donanım
Prime Günü’nde İhtiyacınız Olmasa da Kesinlikle İsteyeceğiniz 100 Dolar Altındaki Gadget’lar
Liste
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?