Yönlendirme (Routing)

CoreDB yönlendirme (Routing) yapısı kontrolcü sınıfların (Controller) isim uzayları ve sınıf isimleri üzerine kurulmuştur.

Site kök yolu için belirlenen kontrolcü sınıf ismi "App\Controller\MainpageController" dır. Bu sınıf CoreDB kurulumu ile birlikte gelmektedir ve anasayfayı oluşturur.

CoreDB ile birlikte gelen kontrolcü sınıflar Kernel/Src/Contoller dizini ve Src\Controller isim uzayı altındadır.

Bir sayfa oluşturulurken öncelikli olarak App\ isim uzayı değerlendirilir.

Bu durumda eğer ki profil sayfasının (/profile) çalışma yapısı değiştirilmek istenirse App\Controller\ProfileController sınıfının oluşturulması yeterlidir.

Örnek olarak kontrolcü sınıf isimleri ve yönlendirici tarafından kabul edilen yol eşleşmeleri aşağıdaki tabloada gözlemlenebilir.

 

Kontrolcü sınıf Yol (Path)
App\MainpageController /
App\ProfileController /profile
App\LoginController /login
App\RegisterController /register
App\BlogController /blog
App\AdminController /admin
App\Admin\BlogsController /admin/blogs
App\Admin\Blogs\InsertController /admin/blogs/insert

 

Önemli notlar

  1. Kontrolcü sınıf isimler "Controller" ifadesi ile bitmeli.
  2. "Controller" ifadesinden önceki isim kısmı yol (url) oluşturmak için kullanılır.
  3. En üst dizini işaret eden bir istek yapıldığında istenen urlye ait kontrolcü sınıf bulunamaz ise "404" hata sayfası gösterilir. Örnek: /bulunmayansayfa
  4. Alt dizinlerden bir istek yapıldığında yola ait kontrolcü sınıf tam olarak bulunamasa da bulunan son kontrolcü sınıf çalıştırılır.
    • Örnek: /admin/bulunmayansayfa yolu istenmiş ise ve App\Controller\Admin\BulunmayansayfaController sınıfı tanımlanmamış ise App\Controller\AdminController kontrolcüsü kullanılarak sayfa yüklenir.
  5. Src\Controller içinde tanımlı herhangi bir sınıf App\Controller altında tanımlanarak değiştirilebilir.
    • Örnek: Src\Controller\LoginController sınıfının çalışma yapısını değiştirmek için App\Controller\LoginController sınıfı tanımlanabilir. Yeni yapılan sınıfta istenilen çalışma mantığı yazılarak /login sayfasının çalışma mantığı değiştirilebilir.