Laravel: Kontrolcüler (Controllers)

Giriş

Tüm isteklerin değerlendirmesini tek bir routes.php dosyasında yapmak yerine, bu davranışları kontrolcü 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 kontrolcü sınıf var. Tüm laravel kontrolcüleri varsayılan Laravel yüklemesine dahil olan temel sınıftan genişletilir.

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

Şimdi, bir istek belirtilen yönlendirme 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, kontrolcü 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ünü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:

Kontrolcü Yönlendirmelerinin İsimlendirilmesi

Kontrolcü yönledirmelerinde isim belirtebilirsiniz.

Kontrolcü yönlendirmenize bir isim atadıktan sonra, işlevleri 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. Kontrolcü kullanılabilir her kaynak işlemi için bir metod içerir.

Kaynak yönlendiriciyi kontrolcüye atayabilirsiniz.

Tek bir yönlendirme tanımlaması, fotoğ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ımlayabilirsiniz.

Kaynak Yönlendirmelerinin İsimlendirilmesi

Varsayılan olarak yüm kaynak kontrolcüleri bir yönlendirme 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ğı fotoğrafa iliştirilmiş bir çok yorum içerebilir. İç 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şılabilecek iç içe kaynak oluşturur.

Bir cevap yazın

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