Yönlendirme Nesnesi

  • Tarih : 19.01.2020 11:53
  • Son Güncelleme : 22.05.2025 14:11

Yönlendirme nesnesi: SEO uyumlu url haritalaması yapmak, kontrolcülerin başka bir kontrolcü gibi davranması ve Apache Rewrite modülüne ait diğer tüm regex özelliklerini gerçekleştiren nesnedir.

Nesne Sabitleri

Name Info Type Visibility
$rules Yönlendirme kurallarını tutar. Array Static

Nesne Özellikleri (Metotlar)

Yönlendirme nesnesi toplam 3 adet metoda sahiptir. Bu sayıya yapıcı metot dahildir.

  1. __construct
  2. set
  3. get

 

1. __construct

Varsayılan olarak tanımlanmış kuralları nesne başlatılmadan önce getirmek ve kontrol etmek için kullanılan metottur. Geriye herhangi bir değer döndürmez. $rules sabitine tanımlanan yönlendirme kurallarını alır ve işler. Varsayılan olarak yönlendirme eklemek için uygulama anadizinizden aşağıdaki dosyaya ekleyin.

App/Http/Rewrite.php

Bu dosyada tanımlanmış olan yapıcı metoda kurallarınızı tanımlayabilirsiniz. Aşağıda ki set metodunun aldığı parametreler burada da geçerlidir. Tarayıcıdan urunler kısmına tıklandığında products kontrolcüsünün çalışması için aşağıdaki kodu dosya içinde yer alan yapıcı metoda tanımlayın.

self::$rules[] = ["/^urunler([\/]+)?$/", "products/index"];

Dosyanızın tam hali aşağıdakine benzer olmalıdır.

<?php

namespace App\Http;

use Ataworks\Http\Rewrite as BaseRewrite;

class Rewrite extends BaseRewrite
{
    public function __construct()
    {
       self::$rules[] = ["/^urunler([\/]+)?$/", "products/index"];
    }
}

 

2. set

Yeni bir kural eklemek için kullanılan metottur. Geriye herhangi bir değer döndürmez. Metodun aldığı parametreler aşağıda listelenmiştir.

Name Info Type Constrait
$regex Kural koşulunu belirtir. String Evet
$value Kuralın geçerli olması durumunda yönlendirilecek adresi belirtir. ( String Evet

Örnek kod:

$class->set("/^hakkimizda$", "pages/view/about");

Yukarıdaki kod bloğu adres satırından hakkimizda linkine tıklandığında pages kontrolcüsünün view metoduna about parametresini gönderir. Bu metot Standart Regex kullanımıyla aynıdır. Eşleşen regexi tanımlanmış olan(ikinci parametre) kontrolcüye yönlendirir.

Örnek kod:

$class->set("/^([a-zA-Z0-9-]+).html$", "posts/view/$");

Yukarıdaki kod blogu ise sonu .html ile biten herhangi bir linke tıklandığında posts kontrolcüsünün view metoduna .html öncesinde yer alan değeri gönderir. Örneğin tarayıcıdan lorem-ipsum.html linkine tıklandığında post/view/lorem-ipsum rotası çalışır.

 

3. get

Tüm kuralları getirmeye yarayan metottur. Bu metot sınıf içerisinden kullanılmaktadır. Geriye Array veri döndürür.

Yukarıdaki set metodu gönderilen kuralı $rules sabitine eklemektedir. Bu metot aslında $rules sabitini geri döndürür.