Laravel'de kontrolcüler (controllers), uygulamanızın iş mantığını yöneten sınıflardır. Kontrolcüler, gelen istekleri alır, işler ve sonuç olarak bir yanıt oluşturur. Bu, uygulamanızın farklı bileşenleri arasında kodu organize etmenize ve yönetmenize olanak tanır. İşte Laravel kontrolcülerinin temel özellikleri:
-
Kontrolcü Oluşturma: Laravel'de bir kontrolcü oluşturmak için, terminalde
php artisan make:controller ControllerName
komutunu kullanabilirsiniz. Bu komut,app/Http/Controllers
dizininde yeni bir kontrolcü sınıfı oluşturur.php artisan make:controller UserController
-
Kontrolcü Metotları: Bir kontrolcü sınıfı, iş mantığını yönetmek için bir veya daha fazla metoda sahip olabilir. Bu metotlar, çoğunlukla HTTP isteklerini işler ve sonuç olarak bir yanıt oluşturur. Örneğin:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; class UserController extends Controller { public function index( ) { // Kullanıcıları listele } public function show( $id ) { // Belirli bir kullanıcıyı göster } public function store(Request $request ) { // Yeni kullanıcı oluştur } public function update(Request $request, $id ) { // Belirli bir kullanıcıyı güncelle } public function destroy( $id ) { // Belirli bir kullanıcıyı sil } }
-
Middleware Kullanımı: Laravel, kontrolcülerde middleware'leri kullanmanıza olanak tanır. Middleware'ler, gelen istekleri işlemek ve bu istekleri filtrelemek için kullanılır. Örneğin, bir kullanıcının belirli bir işleme erişim izni olup olmadığını kontrol etmek için middleware'ler kullanılabilir.
-
Dependency Injection: Laravel'de kontrolcülere bağımlılık enjeksiyonu yapılabilir. Yani, kontrolcü metotlarına bağımlılıkların (örneğin, servis sınıfları, veritabanı işlemleri vb.) otomatik olarak enjekte edilmesini sağlayabilirsiniz. Bu, kodunuzu daha test edilebilir ve bakımı daha kolay hale getirir.
Kontrolcüler, Laravel uygulamanızdaki iş mantığını organize etmek ve HTTP isteklerini işlemek için temel bir yapı sağlar. İsteklerinizi işlemek ve yanıtlar oluşturmak için kontrolcülerden yararlanarak, Laravel uygulamanızı modüler ve düzenli bir şekilde geliştirebilirsiniz.