Laravel Controller Nedir?
Laravel Controller, MVC yapısında frontend ve backend arasında işlem gören katmandır. Bunu biraz açmak gerekirse; mesela kullanıcıların önyüzde etkileşimde oldukları bir form(üye giriş formu) ile bu formun veritabanında yapılacağı sorgular arasında işlem yapılan kısmıdır. Aslında bizim veritabanı işlemlerini ve/veya kullanıcıdan gelen verileri işleyeceğimiz bölümdür. Yaptığımız bu girişten sonra hemen Laravel Controller oluşturmaya başlayalım.
Artisan Kullanarak Controller Oluşturma
Bildiğiniz üzere Laravel sisteminde Artisan CLI (komut satırı arayüzü) bulunmaktadır. Bu arayüz bizi bir çok dertten kurtarır ve projelerimize hız kazandırır. Artisan arayüzünü kullanarak Controller, Model, Migration oluşturabiliriz. Artisan ile Laravel Controller oluşturmak için öncelikle komut satırı yardımı ile sistemimizde Laravel yapısının yüklü olduğu ana dizine erişiyoruz. Benim bilgisayarım için bu adres;
“C:\xampp\htdocs\laravel>”
Daha sonra aşağıda yer alan kod bloğunu yazıyoruz(ya da kopyala yapıştır yapıyoruz).
php artisan make:controller AdminController
Bu kod satırında sonra bulunan ‘AdminController’ bizim oluşturduğumuz Laravel Controller için belirlediğimiz ad olacaktır.
Yazımın başında da belirttiğim gibi controller ile veritabanı işlemlerini yapabiliyoruz. Burada (belki daha önceden de bildiğiniz) CRUD kavramından kısaca bahsetmem gerek. CRUD, ingilizce Create(Oluştur)-Read(Oku)-Update(Güncelle)-Delete/Destroy(Sil) kelimelerinin baş harflerinden oluşmuş bir kısaltmadır aslında. Daha önce kullandığımız artisan komutuna basit bir parametre ekleyerek CRUD için gerekli tüm fonksiyonları oluşturabiliriz. Yine Laravel yüklediğimiz anadizine geliyor ve aşağıdaki gibi daha önce yazdığımı kodun sonuna –resource ekliyoruz.(Önceki örneği çalıştırdıysanız Controller adı farklı olmalıdır)
php artisan make:controller PageController --resource
İki ekran görüntüsü arasındaki farkı görebilirsiniz. Temel olarak CRUD için gerekli tüm fonksiyonları tek bir satır ile oluşturduk. Bu fonksiyonları bira daha açıklamaya çalışayım. PageController ın Sayfa(Page) işlemleri için kullanıldığını varsayalım.
index() -> tüm sayfaları listeme için kullanılan fonksiyon,
create() -> yeni bir sayfa oluşturmak için kullanılacak formu oluşturan fonksiyon
store() -> yeni sayfanın veritabanına yazılmasını kontrol eden fonksiyon
edit() -> düzenlenecek sayfanın formunu oluşturan fonksiyon
update() -> düzenlenecek sayfanın işlemlerini yapan fonksiyon
destroy() -> sayfayı yok eden silinmesi için kullanılan fonksiyon
Temel olarak Laravel Controller yapısını tanımlamak ve Laravel ile gelen Artisan (CLI) komut satırı kullanarak controller oluşturmayı anlatmaya çalıştım. Daha fazla detaylı bilgi için laravel dökümanından yararlanabilirsiniz.