Laravel 5: Kontrolcüler (Controllers)

Giriş

Tüm isteklerin değerlendirmesini tek bir routes.php dosyasında yapmak yerine, bu davranışları kontrcü sınıflar kullanarak düzenlemek isteyebilirsiniz. Kontrolcüler tipik olarak app/Http/Controllers klasöründe saklanır.

Temel Kontrolcüler

Bu örnekte temel bir kontrlcü sınıf var. Tüm laravel kontrolcüleri varsayılan Laravel yüklemesine dahil olaran temel sınıftan genişletilir.

Kontrolcü işlemlerini şu şekilde yönlendirebiliriz.

Şimdi, bir istek belirtilen yöneldirme adresi ile eşleştiğinde, UserController sınıfındaki showProfile metodu icra edilir. tabiki, bu yönlendirme parametreleri metoda geçirilebilir.

Kontrolcüler & İsim Alanları (Namespace)

Önemli bir not olarak, kontolcü yönlendirmesi tanımlandığında tam isim alanı belirtmemize ihtiyacımız yoktur. App\Http\Controllers dan sonra galen sınıf kısmını tanımlamamız yeterli. Varsayılan olarak RouteServiceProvider, kök kontrolcüsünün ad alanının olduğu bir yönlendirici grubunun içinde routes.php dosyasını yükleyecektir.

Eğer iç içe veya App\Http\Controllers klasörünnün daha içlerine PHP ad alanları kullanarak organize etmeyi seçtiyseniz, basitçe App\Http\Controllers kök ad alanına göreceli sınıf isimleri kullanın. Yani kontrolcü sınıfınız App\Http\Controllers\Photos\AdminController ise şunun gibi bir yönlendirici kaydı yapın:

Konrolcü Yönlendirmelerinin İsimlerindirilmesi

Kontrolcü yölnedirmelerinde isim belirtebilirsiniz.

Kontrolcü yönlendirmenize bir isim atadıktan sonra, işevleri için kolay bir şekilde URL’lerini üretebilirsiniz. Bir kontrolcü işlevine URL üretmek için action yardımcı metodunu kullanın. App\Http\Controllers taban isminden sonraki parçayı kullanacağımızı tekrar hatırlatalım.

Ayrıca route yardımcısını da isim verilmiş kontrolcü için URL üretimi için kullanabilirsiniz.

Kontrolcü Ara Katmanı

Ara Katman (middleware) kontrolcünün yönlendirmesine atanabilir:

Ancak, kontrolcünüzün constructor metodunda belirtilmesi daha kullanışlıdır. Kontrolcü sınıfınızın belirli metodlarından ara katmanı kısıtlayabilirsiniz.

RESTful Kaynak Kontrolcüleri

Kaynak kontrolcüleri ile sancısız RESTful kontrolcüleri yaparlar. Örneğin, uygulamanızda saklanmış fotoğraflarla ilgili HTTP isteklerini işleyen bir kontrolcü üretmek isteyebilirsiniz. Artisan make:controller komutunu kullanarak bu şekilde hızlıca bir kontrolcü oluşturabilirsiniz.

Bu Artisan komutu app/Http/Controllers/PhotoController.php dosyasını üretecektir. Kontrocü kullanılabilir her kaynak işlemi için bir metod içerir.

Kaynak yönlendiriciyi kontrolcüye atayabilirsiniz.

Tek bir yönlendirme tanımlaması, fooğraf kaynağı üzerinde çeşitli RESTful işlemlerinin yapılması için bir çok yönlendirme oluşturur. Aynı şekilde, üretilen kontrolcü zaten gerekli metodlara sahiptir.

Kaynak Kontrolcü Tarafından Eylemlerin İşlenmesi

Verb Path Action Route Name
GET photo index photo.index
GET /photo/create create photo.create
POST photo store photo.store
GET /photo/{photo} show photo.show
GET /photo/{photo}/edit edit photo.edit
PUT/PATCH /photo/{photo} update photo.update
DELETE /photo/{photo} destroy photo.destroy

Kısmi Kaynak Yönlendirmeleri

Bir kaynak yönelendirmesini tanımladığınızda, eylemlerin alt kümesini yönlendirme üzerinde tanımlayabilrsiniz.

Kaynak Yönlendirmelerinin İsimlendirilmesi

Varsayılan olarak yüm kaynak kontrolcüleri bir yönlendrime ismine sahiptir; ancak, ayarlarınız için names dizisi geçirilerek bu isimler değiştirilebilir.

İç İçe Kaynaklar

Bazen iç içe kaynak tanımlamaya ihtiyacınız olabilir. Örneğin, bir fotoğraf kaynağı ftoğrafa iliştirilmiş bir çok yorum içarebilir. İç içine kaynak kontrolcüler için yönlendirici tanımlamalarınızda “nokta” belirteci kullanın.

Bu yönlendirme photos/{photos}/comments/{comments} şeklinde ulaşılabiliecek iç içe kaynak oluşturur.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir