Yönlendirme Nesnesi
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
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.